首页 文章

Keras中的LSTM如何访问输入?

提问于
浏览
0

我对LSTM处理输入的方式有点困惑 . 众所周知,Keras中LSTM模型的输入格式为(batch_size,timesteps,input_dim) . 我的数据是时间序列数据,其中n个时间步长的每个序列被馈入以预测n个时间步长的值 . 然后,他们如何访问输入?他们处理序列中的每个步骤或同时访问所有步骤?当我检查每个LSTM层的参数数量时 . 它们具有4 * d *(n d),其中n是输入的维数,d是存储单元的数量 . 在我的情况下,我有d = 10,参数的数量是440(没有偏差) . 所以这意味着n = 1,所以看起来输入的维度为1 * 1 . 然后他们可以自由地访问所有这些 . 有人对此有一些想法吗?

1 回答

  • 1

    首先,想一下卷积层(它更容易) .

    它的参数仅取决于“过滤器大小”,“输入通道”和“过滤器数量” . 但从来没有在“图像的大小” .

    发生这种情况是因为它有点像“行走操作” . 在整个图像中应用相同的滤镜组 . 总操作随着图像的大小而增加,但仅定义过滤器的参数与图像大小无关 . (想象一下用于检测圆形的滤镜,此滤镜不需要更改以检测图像不同部分中的圆圈,尽管它适用于整个图像中的每个步骤) .

    所以:

    • 参数:滤波器数量滤波器大小²输入通道

    • 计算步骤:图像大小(考虑步幅,填充等)


    使用LSTM层,会发生类似的事情 . 这些参数与他们称之为"gates"的内容有关 . (Take a look here

    每次迭代都会应用“状态”和“门”来确定状态将如何变化 .

    但是,大门不依赖于时间 . 计算确实是时间迭代,但每次迭代都使用相同的门组 .

    与卷积层相比:

    • 参数:单元格数,数据维度

    • 计算步骤:时间步长

相关问题