请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

lstm实现,num_lstm_nodes与num_time_step含义理解、与实现x_size,h_size维度的理解

老师,您好,我还是有点疑惑。
7-17视频,text-rnn-pure-lstm.ipynb代码中
1)看到您在其他答疑下游解释"num_lstm_nodes的含义跟全连接层的num_units类似,就是LSTM内部状态向量的长度",这里的内部状态向量长度和定义的“num_time_steps”不是一个概念吧?假设num_lstm_nodes[0]=32,num_time_steps=50,是说当num_time_steps=1,第一个时间序列时,经过的第一层lstm内部就有32个神经元来计算它的输出?

2)关于lstm实现的x_size 与h_size 的理解还是有些困惑,需要请教下您。
图片描述
这里的x_size的第二个维度num_lstm_nodes[0]是lstm隐含状态的维度大小?

正在回答 回答被采纳积分+3

1回答

正十七 2019-11-24 22:41:02

对于第一个问题,Lstm内部的状态向量跟num_time_steps是两回事。在每一步,都会有一个内部向量。在不同的time step之间的参数共享,是循环网络的特性。

对于第二个问题,对于Lstm的每一步,都有两个输入,一个是上一步的隐含状态h,另一个是当前步的输入x。对于h, 它的长度是num_lstm_node[0],我们需要让它乘以一个num_lstm_node[0] x num_lstm_node[0]的矩阵,做线性变换得到一个新的长度为num_lstm_node[0]的向量。对于x,它的长度为embedding_len, 我们需要让它乘以一个embedding_len x num_lstm_node[0]的矩阵,做线性变换得到一个新的长度为num_lstm_node[0]的向量。然后把两个向量相加再加偏置,再去做激活函数。所以h_size就是num_lstm_node[0] x num_lstm_node[0]。

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信