Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sess.run()和";。eval();在张量流程序设计中_Python_Tensorflow_Machine Learning_Deep Learning_Data Science - Fatal编程技术网

Python sess.run()和";。eval();在张量流程序设计中

Python sess.run()和";。eval();在张量流程序设计中,python,tensorflow,machine-learning,deep-learning,data-science,Python,Tensorflow,Machine Learning,Deep Learning,Data Science,在Tensorflow编程中,有人能告诉我“.eval()”和“sess.run()”之间的区别吗。每个对象都做什么以及何时使用它们?会话对象封装了计算张量对象的环境 如果x是tf.Tensor对象,tf.Tensor.eval是tf.Session.run的缩写,其中sess是当前的tf.get\u default\u Session 您可以将会话设置为默认值,如下所示 x = tf.constant(5.0) y = tf.constant(6.0) z = x * y with tf.S

在Tensorflow编程中,有人能告诉我“.eval()”和“sess.run()”之间的区别吗。每个对象都做什么以及何时使用它们?

会话对象封装了计算张量对象的环境

如果
x
tf.Tensor
对象,
tf.Tensor.eval
tf.Session.run
的缩写,其中
sess
是当前的
tf.get\u default\u Session

您可以将会话设置为默认值,如下所示

x = tf.constant(5.0)
y = tf.constant(6.0)
z = x * y

with tf.Session() as sess:
  print(sess.run(z))   # 30.0
  print(z.eval())      # 30.0
最重要的区别是,您可以使用
sess.run
在下面相同的步骤中获取许多张量的值

print(sess.run([x,y])) # [5.0, 6.0]
print(sess.run(z))     # 30.0
其中as
eval
一次获取一个张量值,如下所示

print(x.eval()) # 5.0
print(z.eval()) # 3.0
TensorFlow计算定义了一个计算图,该图在如下计算之前没有数值

print(x) # Tensor("Const_1:0", shape=(), dtype=float32)

Tensorflow 2.x(>=2.0)
中,可以使用
tf.compat.v1.Session()
而不是
tf.Session()
Session对象封装评估Tensor对象的环境

如果
x
tf.Tensor
对象,
tf.Tensor.eval
tf.Session.run
的缩写,其中
sess
是当前的
tf.get\u default\u Session

您可以将会话设置为默认值,如下所示

x = tf.constant(5.0)
y = tf.constant(6.0)
z = x * y

with tf.Session() as sess:
  print(sess.run(z))   # 30.0
  print(z.eval())      # 30.0
最重要的区别是,您可以使用
sess.run
在下面相同的步骤中获取许多张量的值

print(sess.run([x,y])) # [5.0, 6.0]
print(sess.run(z))     # 30.0
其中as
eval
一次获取一个张量值,如下所示

print(x.eval()) # 5.0
print(z.eval()) # 3.0
TensorFlow计算定义了一个计算图,该图在如下计算之前没有数值

print(x) # Tensor("Const_1:0", shape=(), dtype=float32)

Tensorflow 2.x(>=2.0)
中,您可以使用
tf.compat.v1.Session()
而不是
tf.Session()

它的帮助是否已满?是的,这很有帮助。非常感谢。所以,如果我有张量,a&b,f=a+b,我可以做a.eval(),b.eval(),sess.run(f)和sess.run([a,b])。那是写的吗?是全套的吗?是的,这很有帮助。非常感谢。所以,如果我有张量,a&b,f=a+b,我可以做a.eval(),b.eval(),sess.run(f)和sess.run([a,b])。是这样写的吗?@Pranav Kaushik,如果答案回答了你的问题,请你接受并投票表决。感谢You@PranavKaushik,如果答案回答了你的问题,你能接受并投票吗。非常感谢。