我是第一次接触tensorflow,并使用以下脚本获取TensorFlow值错误:
W = tf.Variable(10)
print(W.eval())
我也尝试过这种方式:
with Session() as sess: print(W.eval())
抛出统一化值变量的错误。
现在,当我声明W = tf.Variable(10)
时,它不会将其初始化为10吗?
发布于 2017-03-04 23:03:20
从文档中:
启动图形时,必须先显式初始化变量,然后才能运行使用其值的操作。您可以通过运行变量的初始化器op、从保存文件还原变量或简单地运行为变量赋值的
assign
Op来初始化变量。实际上,变量初始化器op只是一个assign
Op,它将变量的初始值分配给会话中的itself.Launch图的变量。使用tf.Session()作为sess:#运行变量初始化器。sess.run(w.initializer) # ...you现在可以运行使用‘w’值的操作...最常见的初始化模式是使用方便的函数global_variables_initializer()
将Op添加到初始化所有变量的图中。然后,在启动graph.Add后运行该Op来初始化全局变量。init_op = tf.global_variables_initializer() #在会话中启动图形。使用tf.Session()作为sess:#运行初始化全局变量的Op。sess.run(init_op) # ...you现在可以运行任何使用变量值的操作...
因此,您需要使用类似以下内容:
import tensorflow as tf
W = tf.Variable(10)
print('W: {0}'.format(W))
sess = tf.Session()
with sess.as_default():
sess.run(W.initializer)
print(W.eval())
仅供参考In TensorFlow, what is the difference between Session.run() and Tensor.eval()?
发布于 2017-03-04 23:02:44
您需要显式运行初始化器操作
sess.run(tf.variables_initializer(W))
在评估任何依赖于W的节点之前。
发布于 2018-02-17 14:04:38
另一个例子,
import tensorflow as tf
W = tf.Variable(tf.truncated_normal([700,10]))
sess = tf.Session()
with sess.as_default():
sess.run(W.initializer)
print(W.eval())
结果:
[[-0.3294761 0.6800459 1.33331 ... 1.42762 -1.3164878
1.4831722 ]
[-1.0402402 0.52254885 -1.344712 ... -0.30849338 0.15020785
1.6682776 ]
[-1.1791034 1.4859517 -1.7137778 ... 0.844212 1.5928217
-0.21043983]
...
[ 0.01982834 -1.1290654 0.33557415 ... 0.0510614 -0.6524679
0.16643837]
[-0.09969945 -0.10285325 -1.1134144 ... 1.2253191 0.13343143
-1.7491579 ]
[-1.9345136 0.63447094 1.1200713 ... 0.5357313 1.8579113
0.8549472 ]]
https://stackoverflow.com/questions/42597010
复制相似问题