Neural network Shai';生成的.prototxt文件中的数据层位置;s LSTM实现

Neural network Shai';生成的.prototxt文件中的数据层位置;s LSTM实现,neural-network,deep-learning,caffe,lstm,recurrent-neural-network,Neural Network,Deep Learning,Caffe,Lstm,Recurrent Neural Network,关于@Shai in提供的答案,其中caffe.NetSpec()用于及时显式展开LSTM单元进行训练 使用此代码实现,为什么“DummyData”层或用作输入的任何数据层出现在t0时间步长的末尾,即prototxt文件中的“t1/lstm/Mx”之前?我不明白 因此需要进行操作(剪切/粘贴)。的NetSpec及时展开网络。因此,对于每个时间步,都有一个LSTM单元,在时间步之间共享权重。 每个时间单位的“底部”(例如,t1/lstm/Mx)是输入X的不同时间步长 顺便说一下,我建议您使用dra

关于@Shai in提供的答案,其中
caffe.NetSpec()
用于及时显式展开LSTM单元进行训练

使用此代码实现,为什么
“DummyData”
层或用作输入的任何数据层出现在
t0
时间步长的末尾,即prototxt文件中的
“t1/lstm/Mx”
之前?我不明白

因此需要进行操作(剪切/粘贴)。

的NetSpec及时展开网络。因此,对于每个时间步,都有一个LSTM单元,在时间步之间共享权重。
每个时间单位的“底部”(例如,
t1/lstm/Mx
)是输入X的不同时间步长

顺便说一下,我建议您使用
draw_net.py
caffe实用程序来绘制生成的prototxt,并查看数据流和展开的LSTM单元的时间重复

以下是展开的网络的外观: 您可以看到三个LSTM单元的组件,以及
X
不同的时间切片,它们将进入每个时间展开的LSTM单元。

的NetSpec及时展开网络。因此,对于每个时间步,都有一个LSTM单元,在时间步之间共享权重。
每个时间单位的“底部”(例如,
t1/lstm/Mx
)是输入X的不同时间步长

顺便说一下,我建议您使用
draw_net.py
caffe实用程序来绘制生成的prototxt,并查看数据流和展开的LSTM单元的时间重复

以下是展开的网络的外观:
您可以看到三个LSTM单元的组件,以及
X
不同的时间片段,它们将进入每个时间展开的LSTM单元。

顺便说一句,我发布的代码中有一些拼写错误。我改正了,你现在可以再看一遍。我不是有意冒犯你的,如果可以这样理解我很抱歉!相反,我感谢您实现了LSTM,它工作得非常好!我使用了它并获得了很好的结果,我还使用这些函数堆叠了lstm,因为我发布的代码中有一些拼写错误。我改正了,你现在可以再看一遍。我不是有意冒犯你的,如果可以这样理解我很抱歉!相反,我感谢您实现了LSTM,它工作得非常好!我使用了它并取得了很好的效果,我还使用了这些函数堆叠了lstm。我关心的是生成的.prototxt文件。尽管MemoryData层是在展开阶段之前创建的,但它出现在t0时间步之后,就在“t1/lstm/Mx”之前。@FlorianMutel我假设数据
X
包含其中的所有时间步,因此在将不同的时间片送入lstm之前,存在一个时间
“Slice”
层。您可以忽略
X
并分别为每个时间步生成
DummyData
。您可以将
Slice1
Slice2
Slice3
分别想象为
t0/X
t1/X
t2/X
。我使用的是“bottom='nameOfLayer'”并切换到“ns.layer”,它更正了我的数据层的位置。谢谢你的时间和抽签trick@FlorianMutel很高兴我能提供帮助,我也很高兴得知这个LSTM实现为您工作。我关心的是生成的.prototxt文件。尽管MemoryData层是在展开阶段之前创建的,但它出现在t0时间步之后,就在“t1/lstm/Mx”之前。@FlorianMutel我假设数据
X
包含其中的所有时间步,因此在将不同的时间片送入lstm之前,存在一个时间
“Slice”
层。您可以忽略
X
并分别为每个时间步生成
DummyData
。您可以将
Slice1
Slice2
Slice3
分别想象为
t0/X
t1/X
t2/X
。我使用的是“bottom='nameOfLayer'”并切换到“ns.layer”,它更正了我的数据层的位置。谢谢你的时间和抽签trick@FlorianMutel很高兴我能帮上忙,我也很高兴得知这个LSTM实现为您工作。