Tensorflow变量不会初始化

时间:2017-08-06 22:35:28

标签: python tensorflow

我试图弄清楚为什么在下面的两种方法中,当我尝试在Tensorflow中初始化变量时,方法2会抛出错误

import tensorflow as tf
sess = tf.InteractiveSession()

方法1

此方法可以正常返回正确的输出

with tf.variable_scope('layer_1'):
    W1 = tf.get_variable(name="weights1", shape=[3, 10], initializer=tf.zeros_initializer())

sess.run(tf.global_variables_initializer())

print(sess.run(W1))

方法2

此方法会抛出错误。

with tf.variable_scope('layer_2'):
    W2 = tf.get_variable(tf.zeros(shape=[3, 10], name="weights2"))

sess.run(tf.global_variables_initializer())

print(sess.run(W2))

我收到的方法2的错误信息是:

TypeError: Expected float32, got 'layer_2/' of type 'str' instead.

1 个答案:

答案 0 :(得分:1)

tf.get_variable的第一个(位置)参数是变量的L2。所以你的第二个代码相当于

name

尝试使用tf.get_variable(name=tf.zeros(shape=[3, 10], name="weights2")) 作为变量的名称不起作用(我很惊讶它之前没有出错)。

您可能想要改为

tf.Tensor