TensorFlow打印tensor值的实现方法

yipeiwu_com5年前Python基础

最近一直在用TF做CNN的图像分类,当softmax层得到预测结果后,我希望能够看到预测结果,以便和标签之间进行比较。特此补上,以便自己记忆。

我现在通过softmax层得到变量train_logits,如果我直接执行print(train_logits)时,得到的结果如下(因为我是134类分类,所以结果是(1,134)维):

这貌似什么都看不出来。

其实tensorflow提供输出中间值方法方便debug。

这个函数就是[tf.Print]。

tf.Print( 
input_, 
data, 
message=None, 
first_n=None, 
summarize=None, 
name=None 
)

参数:

input_: 通过此op的一个tensor.

data: 当此op被计算之后打印输出的tensor list。

message: 错误消息的前缀,是一个string。

first_n: 只记录first_n次. 总是记录负数;这是个缺省.

summarize: 对每个tensor只打印的条目数量。如果是None,对于每个输入tensor只打印3个元素。

name: op的名字.

返回值:

和input_相同的tensor.

将print(train_logits)修改为sess.run(tf.Print(train_logits,[train_logits]))后,得到的结果如下图:

发现值已经能够打印啦!但是只能输出3个条目,这是因为参数summarize默认只打印3个参数!

将sess.run(tf.Print(train_logits,[train_logits]))修改为sess.run(tf.Print(train_logits,[train_logits],summarize=134))后(我是134类分类),得到的结果如下图:

这样就能成功地打印tensor的中间结果了!以后调参、查看模型效果就直观多了!

以上这篇TensorFlow打印tensor值的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python线程之定位与销毁的实现

Python线程之定位与销毁的实现

背景 开工前我就觉得有什么不太对劲,感觉要背锅。这可不,上班第三天就捅锅了。 我们有个了不起的后台程序,可以动态加载模块,并以线程方式运行,通过这种形式实现插件的功能。而模块更新时候,后...

Python人脸识别第三方库face_recognition接口说明文档

1. 查找图像中出现的人脸 代码示例: #导入face_recognition模块 import face_recognition #将jpg文件加载到numpy数组中...

python练习程序批量修改文件名

复制代码 代码如下:# encoding:utf-8 ### 文件名如:# 下吧.mp3##import os,re fs=os.listdir('xb')for f in fs:&nb...

python将txt文件读入为np.array的方法

原文件: 7.8094,1.0804,5.7632,0.012269,0.008994,-0.003469,-0.79279,-0.064686,0.11635,0.68827,5....

值得收藏的10道python 面试题

值得收藏的10道python 面试题

Q1:PEP8是什么?Python之禅(import this)是什么? 这题是考察你对编码规范的认识,无论是自己写代码还是在团队中写代码,了解并遵循代码规范是很基础的要求。企业中在提交...