tensorflow - 如何在 tensorflow 中随机初始化权重?

标签 tensorflow

在 tensorflow 中,我从教程中了解到可以用类似的东西初始化变量 sess.run(tf.global_variables_initializer())
但是我发现每次使用相同的输入数据集运行它时,损失值都以相同的值开始。

我认为这是因为初始化总是设置具有相同值的变量。 (可能为零)

我希望随机化权重的值。我已经尝试过搜索这个,但是如果初始化是在默认情况下使用零值或随机值完成的,tensorflow 文档并没有给出明确的答案。

如何指定初始化以设置随机值?

更新

我的网络首先是一堆 CNN 和池化层,如下所示:
``
conv1 = tf.layers.conv2d(inputs=input_layer, filters=32, kernel_size=[3,3], padding="same", activation=tf.nn.relu, name="conv_chad_1")

    pool1 = tf.layers.max_pooling2d(inputs=conv1,pool_size=[2,2],strides=2)

    conv2 = tf.layers.conv2d(inputs=pool1, filters=64, kernel_size=[3,3], padding="same", activation=tf.nn.relu, name="conv_chad_2")

    pool2 = tf.layers.max_pooling2d(inputs=conv2,pool_size=[2,2],strides=2, name="pool_chad_2")

``

AFAIK,权重是在这些预定义层内定义的。如何指定这些层来随机初始化它们的权重变量?

最佳答案

您应该提供更多信息。例如,您如何初始化图中的变量?为了在神经网络中初始化您的权重,您必须随机初始化它们(偏差可以全部初始化为零)。因此,您必须使用如下代码来定义它们并进行适当的初始化:

# initialize weights randomly from a Gaussian distribution
# step 1: create the initializer for weights
weight_initer = tf.truncated_normal_initializer(mean=0.0, stddev=0.01)
# step 2: create the weight variable with proper initialization
W = tf.get_variable(name="Weight", dtype=tf.float32, shape=[784, 200], initializer=weight_initer)

# initialize biases as zero
# step 1: create the initializer for biases
bias_initer =tf.constant(0., shape=[200], dtype=tf.float32)
# step 2: create the bias variable with proper initialization
b = tf.get_variable(name="Bias", dtype=tf.float32, initializer=bias_initer)

关于tensorflow - 如何在 tensorflow 中随机初始化权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50383462/

相关文章:

python - Tensorflow Dataset API 读取 csv 转换 tfrecords

python - 使用 GPU 与 CPU 计算损失的 tensorflow

python - Tensorflow tfrecords 不允许设置形状?

tensorflow - Keras 中的 KeyError : 'val_acc' on printing history. history.keys()

tensorflow - tf.data group_by_window() 无需首先迭代完整的数据集

python - 最大化 keras 模型的 MSE

amazon-web-services - 如何在 AWS Lambda 中使用 tensorflow 2.0?

python - 限制 TensorFlow 占位符的形状有何意义?

python - gcloud ml-engine 本地预测 RuntimeError : Bad magic number in . pyc 文件

python - tf.gradients 和 tf.train.RMSPropOptimizer(lr_rate).compute_gradients 有什么区别?