我正致力于实施LSTM神经网络以进行序列分类。我想用以下参数设计一个网络:
n
单热矢量。我需要在CNTK中实现它,但我很难,因为它的文档编写得不是很好。有人可以帮我吗?
答案 0 :(得分:6)
有一个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)
答案 1 :(得分:2)
here您可以找到一种简单的方法,只需添加其他图层,如:
Sequential([
Recurrence(LSTM(hidden_dim), go_backwards=False),
Recurrence(LSTM(hidden_dim), go_backwards=False),
Dense(label_dim, activation=sigmoid)
])
训练,测试并应用它......
答案 2 :(得分:2)
CNTK发表hands-on tutorial语言理解有端到端的方法:
这个动手实验展示了如何实现循环网络来处理文本,用于插槽标记的Air Travel Information Services(ATIS)任务(将单个单词标记到各自的类,其中类作为标签提供)训练数据集)。我们将从单词的直接嵌入开始,然后是经常性的LSTM。然后,这将扩展为包括相邻单词并双向运行。最后,我们将把这个系统变成一个意图分类器。
答案 3 :(得分:1)
我不熟悉CNTK。但由于这个问题长期以来一直没有得到答复,我或许可以建议一些建议来帮助你实施? 我不确定你对这些架构有多么有经验;但在转移到CNTK(看似社区不太活跃)之前,我建议看看其他流行的知识库(如Theano,张量流等)。
例如,theano中的类似任务在此处给出:kyunghyuncho tutorials。只需为定义寻找“def lstm_layer”。 火炬示例可以在Karpathy's very popular tutorials
中找到希望这有点帮助..