session.run()与tensor.eval()都是tensorflow用来计算图的一一部分的方法,那么这两种方式有什么异同呢?
假设有一个tensor a,在使用a.eval时,等价于:sess.run(),其中,sess是当前默认会话。这这种情况下,以下两端代码是等价的:
a = tf.constant(5.0)
with tf.Session() as sess:
print(sess.run(a))
print(a.eval())
主要区别是,sess.run()可在相同的步骤中获取多个tensor(张量)的值:
a = tf.constant(5.0)
b = tf.constant(1.0)
tensor_zeros = tf.zeros(shape=[2,3],dtype='float32')
with tf.Session() as sess:
print(sess.run([a,b]))
print(a.eval(),b.eval())
eval不能处理对象列表数据。