gpt4 book ai didi

tensorflow - 计算 GRU 层(Keras)的参数数量

转载 作者:行者123 更新时间:2023-12-05 00:45:25 28 4
gpt4 key购买 nike

为什么GRU层的参数个数是9600?

不应该是 ((16+32)*32 + 32) * 3 * 2 = 9,408 吗?

或者,重新排列,

32*(16 + 32 + 1)*3*2 = 9408

model = tf.keras.Sequential([
tf.keras.layers.Embedding(input_dim=4500, output_dim=16, input_length=200),
tf.keras.layers.Bidirectional(tf.keras.layers.GRU(32)),
tf.keras.layers.Dense(6, activation='relu'),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.compile(loss='binary_crossentropy',optimizer='adam',metrics=['accuracy'])
model.summary()

enter image description here

最佳答案

关键是当参数 reset_after=True 时,tensorflow 将分离输入和循环内核的偏差。在 GRUCell .你可以看一些source codeGRUCell如下:

if self.use_bias:
if not self.reset_after:
bias_shape = (3 * self.units,)
else:
# separate biases for input and recurrent kernels
# Note: the shape is intentionally different from CuDNNGRU biases
# `(2 * 3 * self.units,)`, so that we can distinguish the classes
# when loading and converting saved weights.
bias_shape = (2, 3 * self.units)

以复位门为例,我们一般看到如下公式。
enter image description here

但是如果我们设置 reset_after=True ,实际公式如下:
enter image description here

可以看到,默认参数 GRU reset_after=Truetensorflow2 .但是 GRU的默认参数是 reset_after=Falsetensorflow1.x .

所以一个 GRU的参数个数图层应该是 ((16+32)*32 + 32 + 32) * 3 * 2 = 9600tensorflow2 .

关于tensorflow - 计算 GRU 层(Keras)的参数数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318930/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com