我有这个代码:
import tensorflow as tf
import numpy as np
data = np.random.randint(1000, size=10000)
x = tf.Variable(data, name='x')
y = tf.Variable(5*x*x-3*x+15, name='y')
model = tf.initialize_all_variables();
with tf.Session() as s:
s.run(model)
print (s.run(y))
我正在尝试实现与 tensorflow 变量相关的练习,但失败并出现以下错误:
Attempting to use uninitialized value x_20 [[Node: x_20/read = IdentityT=DT_INT64, _class=["loc:@x_20"], _device="/job:localhost/replica:0/task:0/cpu:0"]]
我也尝试用常量初始化 x,但仍然失败。我在这里缺少什么?
最佳答案
我认为你对 y
的定义有点有趣。
您的代码当前创建了一个变量 y
并将其初始化为 5*x*x-3*x+15
也许您只是想说 y
的值是根据 x
的值计算出来的:
y=5*x*x-3*x+15
如果您确实想使用 x
上的表达式的初始值初始化新变量 y
,那么您需要使用 x.initialized_value()
:
x = tf.Variable(data, name='x')
x0 = x.initialized_value()
y = tf.Variable(5*x0*x0-3*x0+15, name='y')
您获得的回溯来自这样一个事实:初始化操作在初始化 x
之前尝试初始化 y
。
.initialized_value()
方法强制执行该顺序。
关于Tensorflow基本示例-变量初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40160243/