【问题标题】:How to implement a sequence classification LSTM network in CNTK?如何在 CNTK 中实现一个序列分类 LSTM 网络?
【发布时间】:2016-07-27 13:23:43
【问题描述】:

我正在实施用于序列分类的 LSTM 神经网络。我想设计一个具有以下参数的网络:

  1. 输入:一系列n one-hot-vectors。
  2. 网络拓扑: 两层 LSTM 网络。
  3. 输出:给定序列属于某个类的概率(二元分类)。我只想考虑第二个 LSTM 层的最后一个输出。

我需要在 CNTK 中实现它,但我很挣扎,因为它的文档写得不是很好。有人可以帮我吗?

【问题讨论】:

    标签: machine-learning neural-network recurrent-neural-network lstm cntk


    【解决方案1】:

    sequence classification example 正好符合您的要求。

    唯一的区别是它只使​​用了一个 LSTM 层。您可以通过更改轻松更改此网络以使用多个层:

    LSTM_function = LSTMP_component_with_self_stabilization(
        embedding_function.output, LSTM_dim, cell_dim)[0]
    

    到:

    num_layers = 2 # for example
    encoder_output = embedding_function.output
    for i in range(0, num_layers):
        encoder_output = LSTMP_component_with_self_stabilization(encoder_output.output, LSTM_dim, cell_dim)
    

    但是,使用新的图层库会更好地为您服务。然后你可以简单地这样做:

    encoder_output = Stabilizer()(input_sequence)
    for i in range(0, num_layers):
        encoder_output = Recurrence(LSTM(hidden_dim)) (encoder_output.output)
    

    然后,要获得要放入密集输出层的最终输出,您可以首先执行以下操作:

    final_output = sequence.last(encoder_output)
    

    然后

    z = Dense(vocab_dim) (final_output)
    

    【讨论】:

      【解决方案2】:

      here你可以找到一个简单的方法,只需添加额外的层,如:

      Sequential([
              Recurrence(LSTM(hidden_dim), go_backwards=False),
              Recurrence(LSTM(hidden_dim), go_backwards=False),
              Dense(label_dim, activation=sigmoid)
          ])
      

      训练它、测试它并应用它......

      【讨论】:

        【解决方案3】:

        CNTK 发布了 hands-on tutorial 用于语言理解的端到端配方:

        这个动手实验展示了如何实现一个循环网络来处理文本,用于槽标记的Air Travel Information Services (ATIS) 任务(将单个单词标记到它们各自的类,其中类在训练中作为标签提供数据集)。我们将从直接嵌入单词开始,然后是循环 LSTM。然后,这将扩展到包括相邻单词并双向运行。最后,我们将把这个系统变成一个意图分类器。

        【讨论】:

          【解决方案4】:

          我不熟悉 CNTK。但是由于这个问题已经很久没有回答了,我也许可以提出一些建议来帮助您实施? 我不确定您对这些架构的经验如何;但在转向 CNTK(似乎社区不太活跃)之前,我建议查看其他流行的存储库(如 Theano、张量流等)

          例如,theano 中的类似任务在这里给出:kyunghyuncho tutorials。只需查找“def lstm_layer”的定义。 火炬示例可以在Karpathy's very popular tutorials

          中找到

          希望这会有所帮助..

          【讨论】:

            猜你喜欢
            • 2014-12-12
            • 2020-07-14
            • 2016-01-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-01-23
            • 1970-01-01
            • 2017-07-09
            相关资源
            最近更新 更多