Session.run 和Tensor.eval 的区别

Session.run()和Tensor.eval()的区别

代码示例

如果是 一个 Tensor t,在使用t.eval()时,等价于:tf.get_default_session().run(t).

import tensorflow as tf
import numpy as np
A=np.zeros([3])
B=np.zeros([3,1])
C=np.array([[1,11,22,3],
            [22,1,2,1],
            [11,12,2,121]] )
a=3
b=3
init=tf.global_variables_initializer()
with tf.Session() as sess:
    print(A)
    print(B)
    print("A的维度",tf.rank(A).eval())
    print("B的维度",tf.rank(B).eval())
    print("B的shape",tf.shape(B).eval())
    print("C的每列最大值索引",tf.argmax(C,axis=0).eval())
    print("C的每行最大值索引",tf.argmax(C,axis=1).eval())
    print(sess.run(tf.equal(a,b)))
    print(tf.equal(a,b).eval())
[0. 0. 0.]
[[0.]
 [0.]
 [0.]]
A的维度 1
B的维度 2
B的shape [3 1]
C的每列最大值索引 [1 2 0 2]
C的每行最大值索引 [2 0 3]
True
True

这其中最主要的区别就在于你可以使用sess.run()在同一步获取多个tensor中的值,

import tensorflow as tf
import numpy as np
A=np.zeros([3])
B=np.zeros([3,1])
C=np.array([[1,11,22,3],
            [22,1,2,1],
            [11,12,2,121]] )
a=3
b=3
init=tf.global_variables_initializer()
with tf.Session() as sess:
    print(A)
    print(B)
    print("A的维度",tf.rank(A).eval())
    print("B的维度",tf.rank(B).eval())
    print("B的shape",tf.shape(B).eval())
    print(sess.run([tf.rank(A),tf.rank(B),tf.shape(B)]))

[0. 0. 0.]
[[0.]
 [0.]
 [0.]]
A的维度 1
B的维度 2
B的shape [3 1]
[1, 2, array([3, 1])]

注意!!!这里sess.run([tf.rank(A),tf.rank(B),tf.shape(B)])

多了中括号[ ]

全部评论

相关推荐

面了这么多场试,总有公司总喜欢压力面一个小时面试+手撕,哪里不会就点哪里,说了不会不会还继续追着问不尊重求职者,稍微有些细节记不清了,就开始怀疑项目真实性以及人格让求职者开摄像头但是自己不开,说话声音还贼小,pardon几次就开始不耐烦的不知道这个算不算,手撕的时候,面试官人跑了。。。最后快结束才来
一纸丿繁华丶:你换位思考一下,自己在职场被领导push麻了,身心俱疲,现在有个机会让你放松一下,体验一把上位者的感觉,还能看着那些高学历人才、未来自己的竞争者,抓耳挠腮、手足无措的样子,没给你当场笑出来就不错了,理解一下面试官吧。
点赞 评论 收藏
分享
LemontreeN:有的兄弟有的我今天一天面了五场,4个二面一个hr面
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-19 17:02
鼠鼠深知pdd的强度很大,但是现在没有大厂offer,只有一些不知名小厂我是拒绝等秋招呢,还是接下?求大家帮忙判断一下!
水中水之下水道的鼠鼠:接了再说,不图转正的话混个实习经历也不错
投递拼多多集团-PDD等公司10个岗位 >
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务