tf.print() vs Python print vs tensor.eval()

2024-06-19

看来在Tensorflow中,至少有三种方法可以打印出张量的值。我一直在读here https://www.freecodecamp.org/news/debugging-tensorflow-a-starter-e6668ce72617/ and there https://jacobbuckman.com/post/graph-inspection/,但还是很困惑。

这些作者似乎将不同的用法总结为:

  • Python print:只能打印出张量的某些属性,例如它的形状,因为在计算图之外它只是一个操作。
  • tensor.eval(): 不确定它与tf.print()
  • tf.print():可以输出张量的实际值,但必须插入到图中的某个位置并被其他操作使用,否则它将是悬空的并且仍然不会打印。

我的困惑可能还在于我不确定我们可以在张量流计算图中访问多少Python功能,或者计算图“结束”和Python代码“开始”在哪里。例如

  1. 如果我在构造计算图的两行之间插入 Python 打印,当我调用sess.run()以后这条线会被调用吗?
  2. 如果我想在计算图中打印出多个张量值,我应该把这些语句放在哪里?
  3. 有什么区别tensor.eval() and tf.print()?我应该如何以不同的方式使用它们?

原生Pythonprint()第一次构建图时将调用语句。看一下这个:

a = tf.placeholder(shape=None, dtype=tf.int32)
b = tf.placeholder(shape=None, dtype=tf.int32)
print("a is ",a," while b is ",b)
c = tf.add(a, b)
with tf.Session() as sess:
    print(sess.run(c, feed_dict={a: 1, b: 2}))
    print(sess.run(c, feed_dict={a: 3, b: 1}))

通过执行此代码块,输出为:

# a is  Tensor("Placeholder:0", dtype=int32)  while b is  Tensor("Placeholder_1:0", dtype=int32)
# 3
# 4

另一方面,让我们看看tf.print():

a = tf.placeholder(shape=None, dtype=tf.int32)
b = tf.placeholder(shape=None, dtype=tf.int32)
print_op = tf.print("a is ",a," while b is ",b)
with tf.control_dependencies([print_op]):
    c = tf.add(a, b)

with tf.Session() as sess:
    print(sess.run(c, feed_dict={a: 1, b: 2}))
    print(sess.run(c, feed_dict={a: 3, b: 1}))

因此,根据下面的输出,我们可以看到,如果我们添加依赖项tf.printop 必须在任何时候运行c运行后,我们可以看到我们想要的输出:

# a is  1  while b is  2
# 3
# a is  3  while b is  1
# 4

最后,tensor.eval()sess.run(tensor)。然而,限制tensor.eval()是你可以运行它来评估单个张量,而tf.Session可用于评估多个张量sess.run([tensor1, tensor2])。如果你问我,我总是会使用sess.run(list_of_tensors),评估我想要的尽可能多的张量,并打印出它们的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tf.print() vs Python print vs tensor.eval() 的相关文章

  • 数据框应用不接受轴参数

    我有两个数据框 data and rules gt gt gt data gt gt gt rules vendor rule 0 googel 0 google 1 google 1 dell 2 googly 2 macbook 我正在
  • 在 Pycharm 中使用 scikit-learn 未解析的属性引用“predict()”

    当使用 scikit learn 中的决策树分类器时 docs http scikit learn org stable modules tree html展示您将存储分类器的变量重新分配给其自身的输出 调用fit method clf t
  • 根据 cron 规范计算下一个计划时间

    在给定当前时间和 cron 规范的情况下 计算事件下一次运行时间的有效方法是什么 我正在寻找 每分钟循环检查是否符合规范 以外的东西 规格示例可能是 每月1日 15日15 01 每小时整点的 10 20 30 40 50 分钟 Python
  • Python setup.py 运行 shell 脚本

    我需要在创建 Python 包时在 sdist 阶段运行我自己的脚本 我写了以下脚本 你知道更好的方法吗 您能否推荐更好的一个或链接到 setuptools 的官方文档 其中已解释了这一时刻 import subprocess import
  • Python 中的文字可以被覆盖吗?

    找不到更好的方式来表达标题 请随时更正 我对 Python 还很陌生 目前正在尝试该语言 我注意到所有内置类型都不能与其他成员一起扩展 例如 我想添加一个each方法到list类型 但那是不可能的 我意识到它是出于效率原因而设计的 并且大多
  • 使用 Python 请求通过 POST 请求发送图像

    我目前正在尝试使用 Python 3 5 和 Requests 库来发送 POST 请求 此 POST 将发送一个图像文件 这是示例代码 import requests url https api address files files o
  • Celery未注册任务KeyError

    我通过在终端中执行以下命令来启动工作程序 celery A cel test worker loglevel INFO concurrency 10 n worker1 h 然后我收到一条长循环错误消息 指出 celery 已收到未注册的任
  • 哪个 Python IDE 可以逐行运行我的脚本?

    我不会称自己为程序员 但我最近开始学习 Python 并且非常喜欢它 到目前为止 我主要将它用于小任务 脚本编写 文本处理 KML 生成和 ArcGIS 根据我使用 R 的经验 使用出色的 Notepad 和NppToR http sour
  • 我可以使用 Python 访问 ImageMagick API 吗?

    我需要使用图像魔术师 http www imagemagick org script index php因为 PIL 没有我正在寻找的可用图像功能量 但是 我想使用Python python 绑定 PythonMagick 自 2009 年
  • 没有实例的 Django Formset

    In this http docs djangoproject com en dev topics forms modelforms inline formsetsDjango Doc 解释了如何创建一个表单集 该表单集允许您编辑属于特定作
  • 在 Python 中使用带有 asyncio 的信号量

    我试图限制使用信号量同时运行的异步函数的数量 但我无法让它工作 我的代码归结为 import asyncio async def send i print f starting i await asyncio sleep 4 print f
  • Django-获取外键对象列表

    假设我有以下模型 class ParentModel models Model name models CharField child models ForeignKey ChildModel class ChildModel models
  • 安装/编译 pylzma(lzma python 绑定)

    我已经向作者提出了这个问题website http www joachim bauch de projects pylzma comment page 1 comment 5211 但我想我也可以在这里问 我一直在尝试使用以下设置安装 py
  • knitr:python 引擎输出不在 .md 或 .html 中

    当我处理 Rmd 文件时 没有显示 matplotlib img 是否需要块选项或不同的 matplotlib 方法 title Viz Examples output html document keep md true r testpl
  • 聚类算法采用哪种编程结构

    我正在尝试实现以下 分裂 聚类算法 下面是该算法的简短形式 完整的描述可用here https dl dropboxusercontent com u 540963 diana pdf 从样本 x i 1 n 开始 将其视为由 n 个数据点
  • ValueError:张量必须与张量来自同一个图

    我正在尝试在张量流中构建图表 但遇到以下错误 ValueError 张量 transformation 0 输出 输出 0 形状 dtype float32 必须来自同一个图表 张量 变量 总输出 0 形状 dtype float32 re
  • 在 django 中运行普通 sql 查询时如何获取字段名称

    在我的 django 视图之一中 我使用纯 sql 不是 orm 查询数据库并返回结果 sql select from foo bar cursor connection cursor cursor execute sql rows cur
  • 导入错误:无法导入名称 DependencyWarning

    我正在使用 python 2 7 12 当我做import requests 我看到下面的错误 尝试卸载和安装 requests 也升级 pip 但没有运气 仍然是同样的问题 Python 2 7 12 default Nov 19 201
  • Scipy odeint 非负解

    显然 从 ODE 求解器获得非负解并非易事 https stackoverflow com questions 6977107 solving a delay differential equation dde system constra
  • Pandas 如何删除包含所需字符串的行

    我想删除包含所需字符串的所有行 假设我有以下数据框 A B C 1 a x w g n 3 l p j p v 我想删除包含字符串的所有行p 我已经搜索过它 但大多数答案都是基于列名称 就我而言 我不会知道它可以出现在任何列中 输出数据帧应

随机推荐