gpt4 book ai didi

python - 在 Tensorflow NN 模型中将权重初始化为单位矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:54 28 4
gpt4 key购买 nike

我对 GitHub 上的一个模型中的神经网络工作相对较新,我注意到在将权重和偏差初始化为零后,将单位矩阵添加到偏差变量中。

 weights = tf.get_variable('weights', [256, K*K],
initializer=tf.constant_initializer(0.0),
dtype=tf.float32)
biases = tf.get_variable('biases', [K*K],
initializer=tf.constant_initializer(0.0),
dtype=tf.float32)
biases += tf.constant(np.eye(K).flatten(), dtype=tf.float32)
transform = tf.matmul(net, weights)
transform = tf.nn.bias_add(transform, biases)

这是该模型特有的还是常见的做法?如果是这样,将偏差初始化为单位矩阵的目的是什么?

存储库链接:Here论文链接:Here

最佳答案

将所有权重初始化为零实际上是一个非常糟糕的主意。如果这样做,神经网络的输出将始终为零,因为无论输入的值是多少,如果将其乘以零,输出都会为零。

对于神经网络,通常的做法是使用 -1 到 1 之间的随机噪声来初始化权重和偏差。

我个人使用Xavier initialization ,其目的是保持所有层中梯度的大小大致相同,从而提高收敛性。

关于python - 在 Tensorflow NN 模型中将权重初始化为单位矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53045466/

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