在 Keras 中使用 LSTM 进行预测时,隐藏状态是否仍在调整?
When predicting with an LSTM in Keras, is the hidden state still adjusted?
当我第一次在 Keras 中用序列数据训练 LSTM 时——我的训练数据——
然后用model.predict()
以我的测试数据为输入进行预测,LSTM的隐藏状态还在调整吗?
神经网络的基本操作是获取一个输入(向量),该输入(向量)通过连接连接到输出,有时还连接到其他层,例如上下文层。这些连接被建模为矩阵并且强度各不相同,我们称这些 权重矩阵 .
这意味着当我们将数据输入网络时,我们唯一要做的就是将一个向量放入网络,将值与权重矩阵相乘,并将其称为输出。在特殊情况下,例如循环网络,我们甚至将一些值存储在其他向量中,并将该存储值与当前输入组合。
在训练期间,我们不仅将数据输入网络,我们还计算一个错误值,我们以一种巧妙的方式评估该值,以便它告诉我们应该如何更改权重矩阵,我们将输入(可能还有过去的输入)相乘对于循环层) with.
因此:是,当然,循环层的基本执行行为不会改变。我们只是不再更新权重了。
有些层在执行期间确实表现不同,因为它们被视为正则化器,即使网络训练更高效的方法,在执行期间被认为是不必要的。这些层的示例是 Noise
和 BatchNormalization
。几乎所有的神经网络层(包括循环层)都包含 drop-out,这是另一种形式的正则化,它会禁用层中随机百分比的连接。这也只在训练期间完成。
当我第一次在 Keras 中用序列数据训练 LSTM 时——我的训练数据——
然后用model.predict()
以我的测试数据为输入进行预测,LSTM的隐藏状态还在调整吗?
神经网络的基本操作是获取一个输入(向量),该输入(向量)通过连接连接到输出,有时还连接到其他层,例如上下文层。这些连接被建模为矩阵并且强度各不相同,我们称这些 权重矩阵 .
这意味着当我们将数据输入网络时,我们唯一要做的就是将一个向量放入网络,将值与权重矩阵相乘,并将其称为输出。在特殊情况下,例如循环网络,我们甚至将一些值存储在其他向量中,并将该存储值与当前输入组合。
在训练期间,我们不仅将数据输入网络,我们还计算一个错误值,我们以一种巧妙的方式评估该值,以便它告诉我们应该如何更改权重矩阵,我们将输入(可能还有过去的输入)相乘对于循环层) with.
因此:是,当然,循环层的基本执行行为不会改变。我们只是不再更新权重了。
有些层在执行期间确实表现不同,因为它们被视为正则化器,即使网络训练更高效的方法,在执行期间被认为是不必要的。这些层的示例是 Noise
和 BatchNormalization
。几乎所有的神经网络层(包括循环层)都包含 drop-out,这是另一种形式的正则化,它会禁用层中随机百分比的连接。这也只在训练期间完成。