没有合适的资源?快使用搜索试试~ 我知道了~
tensorflow实现在函数中用tf.Print输出中间值
8 下载量 149 浏览量
2020-09-18
01:32:26
上传
评论
收藏 107KB PDF 举报
温馨提示
试读
2页
今天小编就为大家分享一篇tensorflow实现在函数中用tf.Print输出中间值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
资源推荐
资源详情
资源评论
tensorflow实现在函数中用实现在函数中用tf.Print输出中间值输出中间值
今天小编就为大家分享一篇tensorflow实现在函数中用tf.Print输出中间值,具有很好的参考价值,希望对大家有
所帮助。一起跟随小编过来看看吧
tensorflow由于其基于静态图的模式,导致写代码的时候很难调试,除了用官方的调试工具外,最直接的方法就是把中间结果
输出出来查看,然而,直接用print函数只能输出tensor变量的形状,而不是数值,想要输出tensor的具体数值需要用tf.Print函
数。网上有很多关于这个函数使用方法的说明,这里简要介绍:
Print(
input_,
data,
message=None,
first_n=None,
summarize=None,
name=None
)
参数:
input_:通过这个操作的张量。 (流入的数据流)
data:计算 op 时要打印的张量列表。(用[ ]引起来的一串需要打印的东西,用逗号隔开)
message:一个字符串,错误消息的前缀。
first_n:只记录 first_n 次数。负数日志,这是默认的。
summarize:只打印每个张量的固定数目的条目。如果没有,则每个输入张量最多打印3个元素。
name:操作的名称(可选)
然而网上大部分资源都是介绍如何在主函数中先建立一个op,再开启一个Session执行sess.run(op)的方法,但是如果想要输
出函数中的中间值而该值又未传回主函数呢?这种情况下无法在函数中开启一个新的Session,但是仍然可以用tf.Print建立op
来实现。
import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
def test():
a=tf.constant(0)
for i in range(10):
a_print = tf.Print(a,['a_value: ',a])
a=a_print+1
return a
if __name__=='__main__':
with tf.Session() as sess:
sess.run(test())
运行结果:
a_print可以理解为在图中新增了一个节点,在后续代码中当有别的变量使用了a_print时(如上例a=a_print+1),就会有数据
从a_print节点上流过,就会输出值,而究竟会输出几次值呢?这其实并不是看下文中a_print被使用了几次,而是看数据流要
资源评论
weixin_38617604
- 粉丝: 4
- 资源: 895
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功