当我们在Matlab中创建一个LSTM
层时,我们会指定numHiddenUnits
,例如layer = lstmLayer(numHiddenUnits)
。我对此有两个问题。
(1) : numHiddenUnits
是什么意思?
它是否代表LSTM
单元的数量?如果是,这些单元是串联还是并联(之间没有交互)?
遗憾的是,没有办法可视化(RNN)网络。我理解一个LSTM单元是如何工作的,但我不知道以下架构看起来是什么样子。
我的网络由这些层组成。
layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits) fullyConnectedLayer(numResponses) regressionLayer];
(2): 这个架构看起来是什么样的?
回答:
-
numHiddenUnits
是LSTM隐藏状态的维度。例如,如果你设置numHiddenUnits = 5
,那么LSTM的输出是一个5维向量。因此,它并不代表LSTM单元的数量。 -
这个教程将帮助你更好地理解你的模型。你的模型的工作原理是这样的:在每个时间步,LSTM接收一个输入并处理它,但在最后一个时间步之前不输出。在最后一个时间步,LSTM输出一个向量并将其发送到全连接层,然后给你回归值。如果只有最后一个LSTM单元将输出发送到全连接层,而不是所有单元,你的草图是可以的。
希望这对你有帮助