gpt4 book ai didi

python - Tensorflow 2.0 中如何通过 Xavier 规则进行权重初始化?

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:56 24 4
gpt4 key购买 nike

TF 2.0 碰巧摆脱了 contrib 库。因此,所有像 tf.contrib.conv2dtf.contrib.layers.variance_scaling_initializer 这样的好东西都不见了。也就是说,您认为在不使用 Keras(或使用一些 numpy hack 进行初始化)的情况下在 TF2.0 中进行 Xavier 初始化的最佳方法是什么?

也就是说,我坚持使用 tf.nn.conv2d 并且对于该功能,我是提供权重的人:

filters = tf.Variable(tf.zeros([3, 3, 32, 64]))
??? # something should happen hear, i guess
net = tf.nn.conv2d(input, filters)

注意:以防万一您使用的是 TF 的第一个版本,您可以使用:

filters = tf.get_variable("w", shape=[3,3, 32, 64],
initializer=tf.contrib.layers.xavier_initializer())
# no tf.contrib in 2.0, no tf.get_variable in 2.0

最佳答案

在 tensorflow 2.0 中,您有一个包 tf.initializer,其中包含您需要的所有类似 Keras 的初始化器。

Xavier 初始化器与 Glorot Uniform 初始化器相同。因此,要使用从该初始化程序中采样的值创建一个 (3,3) 变量,您可以:

shape = (3,3)
initializer = tf.initializers.GlorotUniform()
var = tf.Variable(initializer(shape=shape))

关于python - Tensorflow 2.0 中如何通过 Xavier 规则进行权重初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322754/

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