【问题标题】:Tensorflow basic example - Variables initializationTensorflow 基本示例 - 变量初始化
【发布时间】:2016-10-20 16:56:09
【问题描述】:

我有这个代码:

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 变量相关的练习,但失败并出现以下错误:

尝试使用未初始化的值 x_20 [[节点:x_20/read = IdentityT=DT_INT64, _class=["loc:@x_20"], _device="/job:localhost/replica:0/task:0/cpu:0"]]

我也尝试使用常量初始化 x,但仍然失败。我在这里错过了什么?

【问题讨论】:

    标签: tensorflow


    【解决方案1】:

    我觉得你对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() 方法强制执行顺序。

    见:https://www.tensorflow.org/versions/r0.11/how_tos/variables/index.html#initialization-from-another-variable

    【讨论】:

      【解决方案2】:

      为了解决这个问题,我必须为变量 x 提供一个常量值。 所以我改变了这一行:

      x = tf.Variable(data, name='x')
      

      到以下行:

      x = tf.constant(data, name='x')
      

      似乎必须为variable 赋予constant 值。

      【讨论】:

        猜你喜欢
        • 2019-01-23
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 2021-03-09
        • 2016-12-21
        • 2017-11-30
        • 1970-01-01
        • 2016-02-16
        相关资源
        最近更新 更多