Keras:在 RNN 中存储序列值而不用作下一层的输入
Keras: Store sequence values in RNN without using as inputs in the next layer
我想通过逐个序列的值来解释 RNN。可以使用 return_sequences 输出这些值。然而,这些值随后被用作下一层(例如,密集激活层)的输入。我只想输出最后一个值,但记录整个序列中的所有值以供解释。最简单的方法是什么?
创建两个具有相同层的模型,但在其中一个模型中,您仅使用 RNN 的最后一步为密集层提供数据:
inputs = Input(inputShape)
outs = RNN(..., return_sequences=True)(inputs)
modelSequence = Model(inputs,outs)
#take only the last step
outs = Lambda(lambda x: x[:,-1])(outs)
outs = Dense(...)(outs)
modelSingle = Model(inputs,outs)
像往常一样使用 modelSingle,fit(x_data,y_data)
进行训练。
使用 modelSequence.predict(x_data)
可以看到 RNN 在没有训练的情况下的结果。
我想通过逐个序列的值来解释 RNN。可以使用 return_sequences 输出这些值。然而,这些值随后被用作下一层(例如,密集激活层)的输入。我只想输出最后一个值,但记录整个序列中的所有值以供解释。最简单的方法是什么?
创建两个具有相同层的模型,但在其中一个模型中,您仅使用 RNN 的最后一步为密集层提供数据:
inputs = Input(inputShape)
outs = RNN(..., return_sequences=True)(inputs)
modelSequence = Model(inputs,outs)
#take only the last step
outs = Lambda(lambda x: x[:,-1])(outs)
outs = Dense(...)(outs)
modelSingle = Model(inputs,outs)
像往常一样使用 modelSingle,fit(x_data,y_data)
进行训练。
使用 modelSequence.predict(x_data)
可以看到 RNN 在没有训练的情况下的结果。