我一直在尝试计算 Keras 中 LSTM 单元的参数数量。我创建了两个模型,一个使用 LSTM,另一个使用 CuDNNLSTM。
模型的部分摘要如下
CuDNNLSTM 模型:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
embedding (Embedding) (None, None, 300) 192000
_________________________________________________________________
bidirectional (Bidirectional (None, None, 600) 1444800
LSTM模型
Layer (type) Output Shape Param #
=================================================================
embedding_1 (Embedding) (None, None, 300) 192000
_________________________________________________________________
bidirectional (Bidirectional (None, None, 600) 1442400
LSTM 中的参数数量遵循互联网上提供的 lstm 参数计算公式。然而,CuDNNLSTM 有 2400 个额外参数。
这些额外参数的原因是什么?
code
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
from tensorflow.compat.v1.keras.models import Sequential
from tensorflow.compat.v1.keras.layers import CuDNNLSTM, Bidirectional, Embedding, LSTM
model = Sequential()
model.add(Embedding(640, 300))
model.add(Bidirectional(<LSTM type>(300, return_sequences=True)))