在张量流中检索未命名变量

2024-04-13

我已经训练了一个模型并将其保存在检查点中,但刚刚意识到我忘记命名恢复模型时要检查的变量之一。

我知道如何从张量流中检索命名变量,(g = tf.get_default_graph()进而g.get_tensor_by_name([name]))。在这种情况下,我知道它的范围,但它是未命名的。我尝试过查看tf.GraphKeys.GLOBAL_VARIABLES,但由于某种原因它没有出现在那里。

以下是它在模型中的定义方式:

with tf.name_scope("contrastive_loss") as scope:
    l2_dist = tf.cast(tf.sqrt(1e-4 + tf.reduce_sum(tf.subtract(pred_left, pred_right), 1)), tf.float32) # the variable I want

    # I use it here when calculating another named tensor, if that helps.
    con_loss = contrastive_loss(l2_dist) 
    loss = tf.reduce_sum(con_loss, name="loss")

有没有办法找到没有名称的变量?


首先,跟进我的第一条评论,这是有道理的tf.get_collection https://www.tensorflow.org/api_docs/python/tf/get_collection给定的名称范围不起作用。从文档 https://www.tensorflow.org/api_docs/python/tf/get_collection,如果您提供范围,则仅返回具有指定名称的变量或操作。所以就这样了。

您可以尝试的一件事是列出您的每个节点的名称Graph https://www.tensorflow.org/api_docs/python/tf/Graph#as_graph_def with:

print([node.name for node in tf.get_default_graph().as_graph_def().node])

或者可能,当从检查点恢复时:

saver = tf.train.import_meta_graph(/path/to/meta/graph)
sess = tf.Session()
saver.restore(sess, /path/to/checkpoints)
graph = sess.graph
print([node.name for node in graph.as_graph_def().node])

另一种选择是使用张量板或 Jupyter Notebook 来显示图形show_graph https://gist.github.com/yaroslavvb/97504b8221a8529e7a51a50915206d68命令。可能有一个内置的show_graph现在,但该链接指向一个已定义的 git 存储库。然后,您必须在图表中搜索您的操作,然后可能使用以下命令检索它:

my_op = tf.get_collection('full_operation_name')[0]

如果您想在将来将其设置为可以通过名称检索它,则需要使用将其添加到集合中tf.add_to_collection https://www.tensorflow.org/versions/r0.12/api_docs/python/framework/graph_collections:

my_op = tf.some_operation(stuff, name='my_op')
tf.add_to_collection('my_op_name', my_op)

然后通过恢复图表来检索它,然后使用:

my_restored_op = tf.get_collection('my_op_name')[0]

您也可以通过仅命名它然后在中指定其范围来获得tf.get_collection相反,但我不确定。可以找到更多信息和有用的教程here https://www.tensorflow.org/programmers_guide/meta_graph.

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

在张量流中检索未命名变量 的相关文章

随机推荐

  • 在法国 Windows Server 上使用 django 换行的问题

    Problem 当将通过 render to string 读入的字符串写入文件时 我的 Django 应用程序在每个 CRLF 之前引入一个 CR 在我的模板文件中 我使用了 CRLF Django 处理应用程序编写了一个文件 在每个 C
  • 自动加载和命名空间

    我使用 PHP 已经很长时间了 但现在开始尝试新的语言功能 例如命名空间 我有一个关于自动加载的问题 但在网络搜索中找不到足够的答案 假设我在不同的命名空间中有类 namespace foo bar baz class Quux names
  • 将java代码编译为exe(例如使用Launch4Java)是否确保代码无法被逆向工程?

    经过我自己的实验 我确信 Java 代码混淆在防止逆向代码工程方面并不安全 因此 我转而使用 Launch4J 将我的核心 jar 文件之一捆绑到单个 EXE 文件中 jar 文件还包含主要的入口方法 这会再次保护代码逆向工程吗 如果计算机
  • ASP/VBScript - Int() 与 CInt()

    ASP VBScript 之间有什么区别Int and CInt Int http www w3schools com Vbscript func int asp Int 函数返回指定数字的整数部分 CInt http www w3scho
  • 分组data.fame后的自定义函数

    给定以下数据框 d lt rep c a b each 5 l lt rep 1 5 2 v lt 1 10 df lt data frame d d l l v v v df d l v 1 a 1 1 2 a 2 4 3 a 3 9 4
  • 如何处理复杂的事情?

    您知道代码中对于项目至关重要但可能需要花费大量时间才能完成的特定部分吗 您是否有过这样的感觉 您宁愿做其他事情 可能不太重要 或者根本不写代码 而不是做那部分 你竭尽全力避免并使用你所知道的每一个懒惰技巧来推迟其不可避免的实施的那头野兽 现
  • 我可以对任意排列的浮点数向量进行确定性求和吗?

    假设我有一个 可能很大 由某些黑盒过程产生的浮点数向量 是否可以计算这些数字的按位可再现总和 如果黑盒过程总是以相同的顺序产生数字 那么按位可再现的求和很容易 只需从左到右对它们求和即可 但是 如果数字以随机顺序生成 也许是因为它们是从异步
  • 正则表达式匹配字符串之间的数字

    我需要从字符串 start 和 end 之间的以下文本中提取整数值 并且only之间 111222 garbage 999888 start 123456 end start 654321 end 想要的结果 123456 654321 这
  • 导致TTS初始化失败的原因有哪些?

    在以下场景中观察到 TTS 初始化错误 该错误过于随机 TTS 引擎已安装 语音集已存在 并且可以从辅助功能选项中播放示例 tts TTS 初始化在先前初始化和播放的同一设备上随机失败 在不同的设备 一加 华硕 三星 和各种 Android
  • UICollectionView - 滚动到下一页

    是否有机会使用 UICollectionView 滚动到所需的项目 scrollToItemAtIndexPath 并且不捕捉到项目本身 而是捕捉到项目所属的页面 我启用了分页功能 Cheers 你需要创建NSIndexPath而不是滚动到
  • 创建自定义 UTI 以与空投、iOS 一起使用

    我在 info plist 中使用此代码
  • 在 Bash 中动态构建命令管道

    我正在编写一个带有选项的 bash 程序 例如 my program l 3 a s l 3将输出限制为三行 a将选择我的所有文件 s将对输出进行排序 现在 我可以这样一次使用两个选项 if all 1 then if sort 1 the
  • 升级 ng-jhipster 库以兼容 Angular 16.2.0

    我正在开发一个依赖 ng jhipster 库的 Angular 应用程序 特别是版本 0 16 0 以下是 ng jhipster 的 package json 中的相关部分 name ng jhipster description A
  • 由于“无法获取 QuerySet 类的 repr”错误,嵌套序列化器上的非空约束失败

    尝试在我的 DRF 项目中使用基本的消息传递功能 我似乎对嵌套序列化器验证有问题 我是 DRF 的新手 已经阅读文档几天了 但我一定错过了一些东西 错误发生在行内message Message objects create validate
  • JIT 与解释器

    我找不到 JIT 和解释器之间的区别 Jit 是解释器和编译器的中介 在运行时 它将字节代码转换为机器代码 JVM 或实际机器 下次 它从缓存中获取并运行 我对吗 解释器将直接执行字节码 而不将其转换为机器代码 是对的吗 我们电脑中真正的处
  • HTML5 视频 JavaScript 控件 - 重新启动视频

    我知道如何使用 play 和pause 开始和停止视频 但是如何使用 javascript 将视频放回到 HTML5 的开头 有没有办法将指针移回开头 Set the currentTime http www w3 org TR html5
  • 针对特定集合的多对多关系核心数据查询

    public enum Ability String case newcomer Newcomer case beginner Beginner case intermediate Intermediate case advanced Ad
  • ActiveRecord 包括。指定包含的列

    我有模特个人资料 个人资料有 一个用户 用户模型具有字段电子邮件 当我打电话时 Profile some scope includes user it calls SELECT users FROM users WHERE users id
  • 需要一种内置方法来为现有存储库的 Dapper 添加死锁恢复能力,而无需更改它们

    需要全部做完现有的回购协议 大约 30 对死锁具有容错能力 并通过日志和等待方法从死锁中恢复 尝试成功 经过一些研究并根据项目进行定制后 我使用 Polly 回答了下面的自定义 SqlResiliencyPolicy 但是 我寻求的是 目前
  • 在张量流中检索未命名变量

    我已经训练了一个模型并将其保存在检查点中 但刚刚意识到我忘记命名恢复模型时要检查的变量之一 我知道如何从张量流中检索命名变量 g tf get default graph 进而g get tensor by name name 在这种情况下