Tensorflow 中的多个会话和图形(在同一进程中)

2024-01-22

我正在训练一个模型,其中输入向量是另一个模型的输出。这涉及从检查点文件恢复第一个模型,同时从头开始初始化第二个模型(使用tf.initialize_variables())在同一过程中。

有大量的代码和抽象,所以我只是将相关部分粘贴到此处。

以下是恢复代码:

self.variables = [var for var in all_vars if var.name.startswith(self.name)]
saver = tf.train.Saver(self.variables, max_to_keep=3)
self.save_path = tf.train.latest_checkpoint(os.path.dirname(self.checkpoint_path))

if should_restore:
    self.saver.restore(self.sess, save_path)
else:
    self.sess.run(tf.initialize_variables(self.variables))

每个模型都有自己的图表和会话范围,如下所示:

 self.graph = tf.Graph()
 self.sess = tf.Session(graph=self.graph)

 with self.sess.graph.as_default():
    # Create variables and ops.

每个模型中的所有变量都是在variable_scope上下文管理器。

饲喂工作如下:

  • 后台线程调用sess.run(inference_op) on input = scipy.misc.imread(X)并将结果放入阻塞线程安全队列中。
  • 主训练循环从队列中读取并调用sess.run(train_op)在第二个模型上。

PROBLEM:
我观察到,即使在训练的第一次迭代(第二个模型)中,损失值也会在运行过程中不断发生巨大变化(并在几次迭代中变为 nan)。我确认第一个模型的输出每次都是完全相同的。注释掉sess.run第一个模型的并将其替换为来自 pickled 文件的相同输入不会显示此行为。

这是train_op:

    loss_op = tf.nn.sparse_softmax_cross_entropy(network.feedforward())
    # Apply gradients.
    with tf.control_dependencies([loss_op]):
        opt = tf.train.GradientDescentOptimizer(lr)
        grads = opt.compute_gradients(loss_op)
        apply_gradient_op = opt.apply_gradients(grads)

    return apply_gradient_op

我知道这很模糊,但我很乐意提供更多细节。任何帮助表示赞赏!


该问题肯定是由于不同会话对象的并发执行而发生的。我将第一个模型的会话从后台线程移至主线程,多次重复受控实验(运行超过 24 小时并达到收敛),但从未观察到NaN。另一方面,并​​发执行会在几分钟内使模型产生分歧。

我已经重构了我的代码,以对所有模型使用通用会话对象。

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

Tensorflow 中的多个会话和图形(在同一进程中) 的相关文章

  • Pandas set_levels,如何避免标签排序?

    我使用时遇到问题set levels多索引 from io import StringIO txt Name Height Age Metres A 1 25 B 95 1 df pd read csv StringIO txt heade
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 嵌套列表的重叠会产生不必要的间隙

    我有一个包含三个列表的嵌套 这些列表由 for 循环填充 并且填充由 if 条件控制 第一次迭代后 它可能类似于以下示例 a 1 2 0 0 0 0 0 0 4 5 0 0 0 0 0 0 6 7 根据条件 它们不重叠 在第二次迭代之后 新
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 如何使用 Selenium 和 ChromeDriver 解决 TypeError: 'module' object is not callable 错误 [重复]

    这个问题在这里已经有答案了 代码试验 from selenium import webdriver from selenium webdriver chrome options import Options as Chromeoptions
  • 使用 python/numpy 重塑数组

    我想重塑以下数组 gt gt gt test array 11 12 13 14 21 22 23 24 31 32 33 34 41 42 43 44 为了得到 gt gt gt test2 array 11 12 21 22 13 14
  • 使用 Python Oauthlib 通过服务帐户验证 Google API

    我不想使用适用于 Python 的 Google API 客户端库 但仍想使用 Python 访问 Google APIOauthlib https github com idan oauthlib 创建服务帐户后谷歌开发者控制台 http
  • python的shutil.move()在linux上是原子的吗?

    我想知道python的shutil move在linux上是否是原子的 如果源文件和目标文件位于两个不同的分区上 行为是否不同 或者与它们存在于同一分区上时的行为相同吗 我更关心的是如果源文件和目标文件位于同一分区上 shutil move
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • python 中的“槽包装器”是什么?

    object dict 和其他地方的隐藏方法设置为这样的
  • 如何以正确的方式为独立的Python应用程序制作setup.py?

    我读过几个类似的主题 但还没有成功 我觉得我错过或误解了一些基本的事情 这就是我失败的原因 我有一个用 python 编写的 应用程序 我想在标准 setup py 的帮助下进行部署 由于功能复杂 它由不同的 python 模块组成 但单独
  • 如何使用 Boto3 启动具有 IAM 角色的 EC2 实例?

    我无法弄清楚如何使用指定的 IAM 角色在 Boto3 中启动 EC2 实例 以下是迄今为止我如何成功创建实例的一些示例代码 import boto3 ec2 boto3 resource ec2 region name us west 2
  • 如何使用 PrimaryKeyRelatedField 更新多对多关系上的类别

    Django Rest 框架有一个主键相关字段 http www django rest framework org api guide relations primarykeyrelatedfield其中列出了我的 IDmany to m
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size

随机推荐

  • imageWithContentsOfFile 与 imageNamed (imageWithContentsOfFile 返回低质量图像)

    有一次 我把所有的图片放在APP Bundle中 我使用 imageNamed 函数来获取图像 后来 我决定在应用程序启动时将一些图片复制到文档中 因此 我无法再使用 imageNamed 函数来获取图像 我使用 imageWithCont
  • 更改左侧工具栏默认图标

    我目前在顶部使用工具栏 并希望用主页按钮替换默认的后退按钮 但是当我添加项目时 它总是添加到右侧 我也没有看到任何layout gravity选项可供选择 有没有办法做到这一点 主要活动 Toolbar toolbar Override p
  • jQuery/Javascript 暂时禁用 addEventListener/attachEvent 附加的事件

    有没有办法暂时禁用事件侦听器 就我而言 我有一个第三方库 not以 jQuery 为中心 使用以下方法在元素上创建 mouseover mouseout 事件添加事件监听器 附加事件 在某些情况下 另一个事件会在不同的元素上触发 我需要禁用
  • 如何在 R 中保存二值图像的 XY 坐标?

    I am trying to save the XY coordinates of a binary image in R similarly to the save Save XY Coordinates function in Imag
  • 加载前检查文件是否存在

    我想要做的是在 Material Widget 中加载图像以在 ListTile 中使用它 但该资源可能不存在 class MyImage extends StatelessWidget final imagePath MyIcon Str
  • 如何判断多面体是否是凸多面体?

    我正在寻找一种有效的算法来确定多面体是否是凸的 我首先检查欧拉特征是否为 2 我还检查每个面是否都是凸面 但这仍然没有抓住很多案例 看一下这个 http liam flookes com cs geo http liam flookes c
  • 关于 C# RFID 线程的问题

    我的问题是寻求反馈 以确保我采取正确的方法并正确处理线程 我有一种感觉 我可能需要设置一些我自己的线程 所以欢迎所有反馈 我遇到的问题是从零个或多个 RFID 阅读器读取 RFID 标签 我可以毫无问题地为单个读者阅读 因此从多个读者那里阅
  • Django 表单和标题属性

    我需要使用属性 title 来渲染我的表单以进行 jquery 验证 以这种方式渲染我的表单怎么办
  • 自己编码的聊天中的 ListView Rowlayout

    我正在尝试做什么 我正在尝试创建一个必须不同行的聊天 对于每一行我都制作了一个自己的布局文件 但问题是其中一行的布局文件不适合屏幕 Question 我需要在行布局中更改哪些内容才能使其适合应有的效果 您会找到代码以及我正在尝试的打印屏幕
  • 为什么这个函数会多次触发?

    我正在填写这个清单 ul ul 使用 jquery 生成文件夹列表 生成以下 HTML ul li Item 1 li li Item 2 li li Item 3 ul li Sub Item li ul li ul
  • 如何在Jackson ObjectMapper的序列化中添加@JsonIgnore注释字段

    我需要添加 JsonIgnore序列化对象时带注释的字段Jackson ObjectMapper 我知道您可能会建议我删除 JsonIgnore我的类中的注释 但我需要它们在我的应用程序的某些部分可以忽略 在我的应用程序的另一部分我需要那些
  • 滥用比赛?

    您是否会考虑以下代码块匹配滥用 如果是这样 在没有大的 if else if 块的情况下 有什么更优雅的方法可以做到这一点 def sum base Int xs List Int Int base match case 0 gt 1 ca
  • “模糊引用”错误两次指向同一方法

    I used 这个绝妙的解决方案 https stackoverflow com questions 3509290 how to convert a linq result to datatable 3767520 3767520将 li
  • Enterprise Library 5.0安装错误

    此应用程序需要 NET Framework 3 5 SP1 请安装 net Framework 然后再次运行此安装程序 但系统已经安装了 net Framework 4 0 在添加删除程序中我可以看到以下两个条目 1 Microsoft N
  • Angular2:从javascript函数调用组件方法[重复]

    这个问题在这里已经有答案了 目前我正在尝试实现引导日期选择器 它使用jQuery 以及我的 Angular2 项目 这是我到目前为止所拥有的 import Component AfterViewInit Injector Inject fr
  • .ContextMenu 和 .ContextMenuStrip 之间的差异

    两者有什么区别 ContextMenu and ContextMenuStrip在 Windows 窗体中 我已经知道什么是ContextMenu是 但是怎么样ContextMenuStrip不同于ContextMenu 您可能想知道为什么
  • 如何将三角形标记添加到 SpreadsheetGear 网格的任何单元格角?

    这是 SpreadsheetGear Grid 的特定问题 我知道您可以向单元格添加注释 单元格会自动在右上角获得红色三角形标记 但我需要在任何单元格角落添加一个小三角形 不同颜色 来指示一些特殊的东西 有可能做到吗 更新 这是我根据丹尼尔
  • Linux 中 `cd //` 中的双斜杠 // 是什么意思? [复制]

    这个问题在这里已经有答案了 我输入了一个命令cd 代替cd 错误地 而不是像我期望的那样收到错误 shell Bash 显示了一个提示 就像我在 目录
  • 如何在 Keras 中实现 L2-norm pooling?

    我想向我的 CNN 添加一个全局时间池层 它具有三种不同的池函数 均值 最大值和 L2 范数 Keras 有平均池化函数和最大池化函数 但我还没有找到用于 L2 的池化函数 我自己该如何实现呢 我也在寻找这个 keras 中没有这样的开箱即
  • Tensorflow 中的多个会话和图形(在同一进程中)

    我正在训练一个模型 其中输入向量是另一个模型的输出 这涉及从检查点文件恢复第一个模型 同时从头开始初始化第二个模型 使用tf initialize variables 在同一过程中 有大量的代码和抽象 所以我只是将相关部分粘贴到此处 以下是