如何在 Keras 摘要中显示所有 LSTM 状态?
How to display all LSTM states in Keras summary?
当使用 keras 功能时 model.summary()
它向我展示了我的模型的张量形状,这非常好!
不幸的是,当使用编码器 LSTM 时,使用 keras.layers.LSTM
构造函数和 属性 return_states=True
调用时,摘要不会以完整形式显示。它看起来像这样:
Layer (type) Output Shape Param # Connected to
==================================================================================================
input (InputLayer) (None, 34, 30) 0
__________________________________________________________________________________________________
encoder (LSTM) [(None, 34, 30), (No 7320 input[0][0]
__________________________________________________________________________________________________
lambda_8 (Lambda) (None, 34, 15) 0 encoder[0][0]
__________________________________________________________________________________________________
decoder (LSTM) (None, 34, 30) 5520 lambda_8[0][0]
encoder[0][1]
encoder[0][2]
==================================================================================================
Total params: 12,840
Trainable params: 12,840
Non-trainable params: 0
__________________________________________________________________________________________________
如您所见,编码器的输出形状被截断,只有三个形状中的第一个可见。有没有办法显示它,也许是修复甚至是解决方法? :)
找到解决方法:
print(encoder.output_shape)
>> [(None, 34, 30), (None, 30), (None, 30)]
当使用 keras 功能时 model.summary()
它向我展示了我的模型的张量形状,这非常好!
不幸的是,当使用编码器 LSTM 时,使用 keras.layers.LSTM
构造函数和 属性 return_states=True
调用时,摘要不会以完整形式显示。它看起来像这样:
Layer (type) Output Shape Param # Connected to
==================================================================================================
input (InputLayer) (None, 34, 30) 0
__________________________________________________________________________________________________
encoder (LSTM) [(None, 34, 30), (No 7320 input[0][0]
__________________________________________________________________________________________________
lambda_8 (Lambda) (None, 34, 15) 0 encoder[0][0]
__________________________________________________________________________________________________
decoder (LSTM) (None, 34, 30) 5520 lambda_8[0][0]
encoder[0][1]
encoder[0][2]
==================================================================================================
Total params: 12,840
Trainable params: 12,840
Non-trainable params: 0
__________________________________________________________________________________________________
如您所见,编码器的输出形状被截断,只有三个形状中的第一个可见。有没有办法显示它,也许是修复甚至是解决方法? :)
找到解决方法:
print(encoder.output_shape)
>> [(None, 34, 30), (None, 30), (None, 30)]