在TensorFlow中使用多个图

2023-12-08

有人可以向我解释如何name_scope在 TensorFlow 中工作吗?

假设我有以下代码:

import tensorflow as tf

g1 = tf.Graph()
with g1.as_default() as g:
    with g.name_scope( "g1" ) as scope:
        matrix1 = tf.constant([[3., 3.]])
        matrix2 = tf.constant([[2.],[2.]])
        product = tf.matmul(matrix1, matrix2)

tf.reset_default_graph()

g2 = tf.Graph()
with g2.as_default() as g:
    with g.name_scope( "g2" ) as scope:
        matrix1 = tf.constant([[4., 4.]])
        matrix2 = tf.constant([[5.],[5.]])
        product = tf.matmul(matrix1, matrix2)

tf.reset_default_graph()

with tf.Session( graph = g1 ) as sess:
    result = sess.run( product )
    print( result )

当我运行此代码时,我收到以下错误消息:

Tensor Tensor("g2/MatMul:0", shape=(1, 1), dtype=float32) is not an element of this graph.

我同意“g2/MatMul”不是图的元素g1,但是当会话图设置为时为什么选择“g2/MatMul”g1?为什么不选择“ G1/Matmul”?


Edit

以下代码似乎有效:

import tensorflow as tf

g1 = tf.Graph()
with g1.as_default() as g:
    with g.name_scope( "g1" ) as g1_scope:
        matrix1 = tf.constant([[3., 3.]])
        matrix2 = tf.constant([[2.],[2.]])
        product = tf.matmul( matrix1, matrix2, name = "product")

tf.reset_default_graph()

g2 = tf.Graph()
with g2.as_default() as g:
    with g.name_scope( "g2" ) as g2_scope:
        matrix1 = tf.constant([[4., 4.]])
        matrix2 = tf.constant([[5.],[5.]])
        product = tf.matmul( matrix1, matrix2, name = "product" )

tf.reset_default_graph()

use_g1 = False

if ( use_g1 ):
    g = g1
    scope = g1_scope
else:
    g = g2
    scope = g2_scope

with tf.Session( graph = g ) as sess:
    tf.initialize_all_variables()
    result = sess.run( sess.graph.get_tensor_by_name( scope + "product:0" ) )
    print( result )

通过翻转开关use_g1, graph g1 or g2将在会话中运行。这是名称范围的工作方式吗?


Your product是一个全局变量,并且您已将其设置为指向“g2/MatMul”。

尤其

Try

print product

你会看到

Tensor("g2/MatMul:0", shape=(1, 1), dtype=float32)

所以系统采取"g2/MatMul:0"因为这是张量的名称,并尝试在图中找到它g1因为那是您为会话设置的图表。顺便说一下,你可以看到图中的所有节点print [n.name for n in g1.as_graph_def().node]

一般来说,使用多个图表很少有用。您无法合并它们,也无法在它们之间传递张量。我建议只是做

tf.reset_default_graph()
a = tf.Constant(2)
sess = tf.InteractiveSession()
....

这样,您将拥有一个默认图表和一个默认会话,并且在大多数情况下您可以省略指定图表或会话。如果您需要明确引用它们,您可以从tf.get_default_graph() or tf.get_default_session()

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

在TensorFlow中使用多个图 的相关文章

随机推荐

  • 如何在 QLineEdit 中使用 std::string ?

    我有以下问题 我正在尝试将我编写的大量代码与 Qt 界面集成 我的一些函数返回std string 我没有成功制作QLineEdit setText接受它们 其他函数返回char不要给我带来问题 我应该怎么办 谢谢 朱塞佩 尝试这个 std
  • 未捕获的语法错误:JSON 中位置 0 处出现意外标记 u

    仅在结帐和单个产品页面上 我在控制台日志中收到以下错误 VM35594 1 Uncaught SyntaxError Unexpected token u in JSON at position 0 at JSON parse
  • 如何删除推送通知API

    Apple 在提交 iOS 应用程序时发送以下电子邮件 缺少推送通知权利 您的应用程序似乎包含用于注册 Apple 推送通知服务的 API 但应用程序签名的权利不包括 aps environment 权利 如果您的应用程序使用 Apple
  • 将简单注射器与 Umbraco 控制器结合使用

    我试图将依赖项注入到继承自 Umbraco 的 RenderMvcController 的控制器中并收到错误 找不到 RenderMvcController 类型的注册 并且无法进行隐式注册 为了让容器能够创建 RenderMvcContr
  • nums[:] = nums[::-1] 和 nums = nums[::-1] 之间的区别[重复]

    这个问题在这里已经有答案了 我目前正在学习 Python 并且遇到了分配列表的问题 In def nextPermutation self nums List int gt None 我有一行代码可以反转列表 如下所示 nums nums
  • 二维数组动态内存分配崩溃[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 C 中正确设置 访问和释放多维数组 我正在尝试使用 calloc 为 2D 数组动态分配内存 列固定为 2 因此只有行是动态的 这是我一直在尝试的 unsigned int pts rows
  • 每个关键字的前 'n' 个结果

    我有一个查询 要获取对特定关键字发表评论的前 n 个用户 SELECT user COUNT AS magnitude FROM results WHERE keyword economy GROUP BY user ORDER BY ma
  • 为什么在 main() 内声明 extern 变量可以工作,但在 main() 内定义它却不起作用?

    这看起来很微不足道 但对以下行为的严格解释将有助于我的理解extern很多 所以我会很感激你的回答 在下面的示例程序中 我声明了一个extern多变的x在函数内部 main 现在 如果我在文件范围内定义变量main 并分配8到它 那么程序就
  • 如何防止未更改的组件重新渲染?

    我有一个由多个其他组件 例如文本字段 组成的组件 当向文本字段进行输入时 所有其他组件都会重新呈现 我想阻止重新渲染 只重新渲染实际更改的组件 我已经看到了useCallback是执行此操作的正确方法 我已经了解了如何使用它 但是 我遇到了
  • 如果用户通过社交登录登录,移动应用程序如何使用后端 API 进行身份验证?

    我试图了解移动应用程序上社交登录之间的基本组织和登录流程 以及该应用程序如何从后端 Flask API 请求资源 如果用户通过 Facebook 登录应用程序 后端 api 如何根据该登录提供资源 因为后端似乎不知道用户已经使用 Faceb
  • 选择行值不为空的列名 pandas dataframe

    这是一个示例数据框 A B C 23 45 30 54 39 NaN NaN 45 76 87 32 NaN 我想要一个包含行值不为 NaN 的列名称的列表 或列表列表 预期输出 A B C A B B C A B 这样做的正确方法是什么
  • IIS 崩溃并重新启动,但未删除小型转储

    我正在尝试调试一个艰难的场景 在 Web 表单页面上 当我单击 提交 时 Web 服务器遇到一些错误并重新启动 w3svc 进程 我没有看到任何堆栈跟踪转储到事件日志中 Windows 应用程序日志中的唯一条目是 错误应用程序名称 w3wp
  • System.Reflection.MethodInfo.Invoke 和多线程

    您好 我如何使用线程参数调用 System Reflection MethodInfo Invoke 例如 假设我有一个方法 允许您传入一个表示 类名并动态调用相应的类方法 现在我想要 使用线程调用此 Methodinfo invoke 我
  • 什么允许 id 属性使用字符,以便 jQuery 选择器不会抛出异常?

    我遇到的情况是最终用户输入 id 属性 假设文本框的 id 是用户输入的 11 11 html 代码看起来像
  • 不支持 Any 类型的架构

    我正在尝试创建一个 Spark UDF 以从用户定义的案例类中提取 键 值 对的映射 scala 函数似乎工作正常 但是当我尝试将其转换为 Spark2 0 中的 UDF 时 我遇到了 不支持 Any 类型的架构 错误 case class
  • Ruby,生成随机的十六进制颜色(仅限浅色)

    我知道这可能是重复的问题 Ruby 生成随机的十六进制颜色 我的问题略有不同 我需要知道 如何仅生成随机的六角浅色 而不是深色 在这个线程中颜色亮度用以下公式描述 0 2126 r 0 7152 g 0 0722 b 亮度的相同公式是维基百
  • 无法在 matplotlib 中使用自定义字体

    我在 Windows 上的 Python 3 7 3 上获取与 Matplotlib 版本 3 1 1 一起使用的自定义字体时遇到问题 标准方式使用 import matplotlib as mpl mpl rcParams font fa
  • 在 Windows 上使用 Tycho 构建的 Eclipse RCP 应用程序的 Mac 发行版无法启动

    我用 Tycho 构建了一个 Eclipse RCP 应用程序 Indigo 该构建在 Win 7 64 位计算机上运行 父 POM 包括
  • iPhone键盘安全,

    我想禁用操作系统的自动文本捕获 如果您在应用程序中输入 UITextField UITextView 操作系统捕获此文本 如果在字典中找不到 它将作为纯文本存储在 中的dynamic text dat 文件中根 库 键盘 现在 如果您打开并
  • 在TensorFlow中使用多个图

    有人可以向我解释如何name scope在 TensorFlow 中工作吗 假设我有以下代码 import tensorflow as tf g1 tf Graph with g1 as default as g with g name s