Tensorflow中的求值变量

Tensorflow中的求值变量,tensorflow,eval,Tensorflow,Eval,从中,我知道Tensor.eval()等于tf.get\u default\u session().run(t),但当我计算一个张量时,我遇到了错误。如果省略了标记为1的行,下面的代码将发出错误,为什么?然后我试图调用W.initializer的eval()方法来替换run(),但是W.initializer没有eval()方法,tf.constant(作为一个操作)确实有,为什么 def test_eval(): W = tf.constant(10) with tf.Sess

从中,我知道
Tensor.eval()
等于
tf.get\u default\u session().run(t)
,但当我计算一个张量时,我遇到了错误。如果省略了标记为1的行,下面的代码将发出错误,为什么?然后我试图调用
W.initializer
eval()
方法来替换
run()
,但是
W.initializer
没有
eval()
方法,
tf.constant
(作为一个操作)确实有,为什么

def test_eval():
    W = tf.constant(10)
    with tf.Session():
        print(W.eval())         # 10


def test_eval_Variable():
    W = tf.Variable(10)
    with tf.Session() as sess:
        print(sess.run(W.initializer))  # None <--- 1.
        print(W.eval())                 # 10


def test_eval_Variable_all():
    W = tf.Variable(10)
    with tf.Session():
        print(W.initializer.eval())  # error: object has no attribute 'eval'
        print(W.eval()) 
def test_eval():
W=tf.常数(10)
使用tf.Session():
打印(W.eval())#10
def test_eval_变量():
W=tf.变量(10)
使用tf.Session()作为sess:

打印(sess.run(W.initializer))#无

sess.run(带初始值设定项)

省略

答:正如错误所说

FailedPremissionError:尝试使用未初始化的值

您正在尝试计算未初始化的变量。因此,您需要初始化它。有比打电话更好的方法
sess.run(带初始值设定项)
无论如何

2.然后我尝试调用
W.initializer的eval()
方法来替换
run()
,但是
W.initializer
没有
eval()
方法,
tf.constant
(作为一个操作)确实有,为什么

def test_eval():
    W = tf.constant(10)
    with tf.Session():
        print(W.eval())         # 10


def test_eval_Variable():
    W = tf.Variable(10)
    with tf.Session() as sess:
        print(sess.run(W.initializer))  # None <--- 1.
        print(W.eval())                 # 10


def test_eval_Variable_all():
    W = tf.Variable(10)
    with tf.Session():
        print(W.initializer.eval())  # error: object has no attribute 'eval'
        print(W.eval()) 
回答:
eval()
是运算的函数,张量,但不是初始值设定项。没错,
初始值设定项
没有
eval()
函数

你应该做什么?

应该使用
tf.global\u variables\u initializer()
初始化变量

def initialize_properly():
    W = tf.Variable(10)
    with tf.Session() as sess:
        #This way
        tf.global_variables_initializer().run()

        print(W.eval()) 
        print(sess.run(W))

1。如果第行出现错误,下面的代码将发出错误

sess.run(带初始值设定项)

省略

答:正如错误所说

FailedPremissionError:尝试使用未初始化的值

您正在尝试计算未初始化的变量
。因此,您需要初始化它。有比打电话更好的方法
sess.run(带初始值设定项)
无论如何

2.然后我尝试调用
W.initializer的eval()
方法来替换
run()
,但是
W.initializer
没有
eval()
方法,
tf.constant
(作为一个操作)确实有,为什么

def test_eval():
    W = tf.constant(10)
    with tf.Session():
        print(W.eval())         # 10


def test_eval_Variable():
    W = tf.Variable(10)
    with tf.Session() as sess:
        print(sess.run(W.initializer))  # None <--- 1.
        print(W.eval())                 # 10


def test_eval_Variable_all():
    W = tf.Variable(10)
    with tf.Session():
        print(W.initializer.eval())  # error: object has no attribute 'eval'
        print(W.eval()) 
回答:
eval()
是运算的函数,张量,但不是初始值设定项。没错,
初始值设定项
没有
eval()
函数

你应该做什么?

应该使用
tf.global\u variables\u initializer()
初始化变量

def initialize_properly():
    W = tf.Variable(10)
    with tf.Session() as sess:
        #This way
        tf.global_variables_initializer().run()

        print(W.eval()) 
        print(sess.run(W))

我想,为什么他们不能被评估?我不完全确定,但说实话,评估一个初始值设定项对我来说没有意义。我想,为什么他们不能被评估?我不完全确定,但说实话,评估一个初始值设定项对我来说没有意义。