Tensorflow学习笔记:run()、Session.run()与eval()的区别

区别一:

①.eval():只能用于tf.Tensor类对象,也就是有输出的Operation。

②.run():只能用于没有输出的Operation。

③Session.run():既可以用于有输出的Operation,也可以用于没有输出的Operation。

所以我们训练的时候,对于优化器可以使用.run()和Session.run()。而对于predict可以使用.eval()和Session.run()。

通过代码说明:

import tensorflow as tf

a = tf.constant(2.0)
b = tf.constant(3.0)
c = tf.multiply(a, b)                      # 有输出Operation,结果属于tf.Tensor类

init = tf.global_variables_initializer()   # 无输出Operation
sess = tf.Session()

with sess.as_default():
    c.eval()       #  正确
    init.eval()    #  错误

    init.run()     #  正确
    sess.run(init) #  正确

    c.run()        #  错误
    sess.run(c)    #  正确

区别二:

使用Session.run()可以在同一步获取多个tensor中的值。

通过代码说明:

import tensorflow as tf

a = tf.constant(2.0)
b = tf.constant(3.0)
c = tf.multiply(a, b) 

sess = tf.Session()

with sess.as_default():
    a_ = a.eval()              #得到一个tensor的值
    b_ = b.eval()              #得到一个tensor的值
    a_, b_, c_ = sess.run([a,b,c])       #得到多个tensor的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值