TensorFlow 检查点保存和读取

2023-11-27

我有一个基于 TensorFlow 的神经网络和一组变量。

训练函数是这样的:

def train(load = True, step)
    """
    Defining the neural network is skipped here
    """

    train_step = tf.train.AdamOptimizer(1e-4).minimize(mse)
    # Saver
    saver = tf.train.Saver()

    if not load:
        # Initalizing variables
        sess.run(tf.initialize_all_variables())
    else:
        saver.restore(sess, 'Variables/map.ckpt')
        print 'Model Restored!'

    # Perform stochastic gradient descent
    for i in xrange(step):
        train_step.run(feed_dict = {x: train, y_: label})

    # Save model
    save_path = saver.save(sess, 'Variables/map.ckpt')
    print 'Model saved in file: ', save_path
    print 'Training Done!'

我这样调用训练函数:

# First train
train(False, 1)
# Following train
for i in xrange(10):
    train(True, 10)

我进行了这种训练,因为我需要向我的模型提供不同的数据集。但是,如果我以这种方式调用训练函数,TensorFlow 将生成错误消息,指示它无法从文件中读取保存的模型。

经过一些实验,我发现发生这种情况是因为检查点保存速度很慢。在文件写入磁盘之前,下一个训练函数将开始读取,从而生成错误。

我尝试使用 time.sleep() 函数在每次调用之间进行一些延迟,但它不起作用。

有人知道如何解决这种写入/读取错误吗?非常感谢!


您的代码中有一个微妙的问题:每次您调用train()函数中,对于所有模型变量和神经网络的其余部分,更多节点会添加到同一个 TensorFlow 图中。这意味着每次你构造一个tf.train.Saver(),它包括之前调用的所有变量train()。每次重新创建模型时,都会使用额外的变量创建变量_N后缀给它们一个独特的名称:

  1. 用变量构造的 Savervar_a, var_b.
  2. 用变量构造的 Savervar_a, var_b, var_a_1, var_b_1.
  3. 用变量构造的 Savervar_a, var_b, var_a_1, var_b_1, var_a_2, var_b_2.
  4. etc.

默认行为为tf.train.Saver是将每个变量与相应操作的名称关联起来。这意味着var_a_1不会被初始化var_a,因为它们最终有不同的名字。

解决方案是每次调用时创建一个新图表train()。修复它的最简单方法是更改​​主程序,为每次调用创建一个新图表train()如下:

# First train
with tf.Graph().as_default():
    train(False, 1)

# Following train
for i in xrange(10):
    with tf.Graph().as_default():
        train(True, 10)

...或者,同等地,您可以移动with块内train()功能。

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

TensorFlow 检查点保存和读取 的相关文章

  • 通过另一个指标数据框评估一个数据框

    我有一个源数据框input df PatientID KPI Key1 KPI Key2 KPI Key3 0 1 C602 C603 C601 NaN 1 2 C605 C606 C602 NaN 2 3 75 L239 C602 NaN
  • 如何使用 Julia 查找矩阵中的连通分量

    假设我有以下矩阵 此处用 Julia 语言定义 mat 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 将一组值为 1 的相邻元素视为一个 分量 如何识别该矩阵有 2 个分量以及每个分量由哪些顶点组成 对于矩
  • 如何对预测值进行反向移动平均(在 pandas 中,rolling().mean)操作? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个像这样的 df import numpy as np import pandas as pd import matplotlib
  • 为什么any (True for ... if cond) 比any (cond for ...) 快得多?

    检查列表是否包含奇数的两种类似方法 any x 2 for x in a any True for x in a if x 2 计时结果与a 0 10000000 每次尝试五次 次数以秒为单位 0 60 0 60 0 60 0 61 0 6
  • 如何将多项式拟合到带有误差线的数据

    我目前正在使用 numpy polyfit x y deg 将多项式拟合到实验数据 然而 我想拟合一个基于点误差使用加权的多项式 我已经发现scipy curve fit http docs scipy org doc scipy refe
  • 使用 scikit-learn 在朴素贝叶斯分类器中混合类别数据和连续数据

    我正在使用 Python 中的 scikit learn 开发分类算法来预测某些客户的性别 除此之外 我想使用朴素贝叶斯分类器 但我的问题是我混合了分类数据 例如 在线注册 接受电子邮件通知 等 和连续数据 例如 年龄 长度 会员资格 等
  • Python:当为变量分配新内容时,“旧”内存是否被释放?

    如果为变量分配了任何新内容 为 旧内容 分配的内存是否会 正确 释放 例如 在以下脚本中 在为 a 分配一些新内容后 变量 a 作为零数组的内存是否会被释放 import numpy a numpy zeros 1000 a a 1 我想象
  • 如何实现带有 ([start ,] stop [ step]) 签名的 python 方法,即左侧的默认关键字参数

    由于在 python 3 X 中 build idrange 函数返回的不再是一个列表 而是一个可迭代的 一些旧代码在我使用时失败range 方便地生成我需要的列表 所以我尝试实现我自己的lrange像这样的函数 def lrange st
  • Keras 中的条件批量归一化

    我正在尝试在 Keras 中实现条件批量标准化 我假设我必须创建一个自定义层 因此 我从正常化 https github com keras team keras blob master keras layers normalization
  • Python 调试器是否会介入生成器?

    我目前正在使用 NetBeans IDE 和 Jython 2 5 1 当逐步调试我的项目时 一旦遇到生成器的迭代 调试器就会直接转到代码末尾 输出工作正常 但是一旦满足第一个生成器就无法进行逐步调试 这是所有 Python IDE 中 P
  • matplotlib 中矩形面片之间存在不需要的空间

    以下代码绘制两个红色矩形 红色矩形应该彼此相邻 之间没有空间 在 python 图中 这是可以的 在导出的 pdf 中 矩形之间有一个细长但明显的空白 有什么方法可以解决这个问题吗 import matplotlib pyplot as p
  • Pygame 旋转射击

    我和几个朋友一直在编写一种有趣的新射击机制 为了让它发挥作用 我们需要朝玩家面对的方向射击 Sprite 正在使用 Pygame Transform Rotate 进行旋转 我们怎样才能找到一个角度 然后朝那个方向发射子弹呢 这是我们的精灵
  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • ModuleNotFoundError:没有名为“googleapiclient”的模块

    如果这是一个愚蠢的问题 我深表歉意 我在 stackoverflow 上搜索过 但没有找到解决办法 我正在致力于从 Python 2 7 迁移到 Python 3 8 我收到一个程序的以下错误 请帮我 Traceback most rece
  • 在类方法 Python 中调用多处理

    最初 我有一个类来存储一些处理后的值 并通过其他方法重用这些值 问题是当我尝试将类方法划分为多个进程以加速时 python 生成了进程 但它似乎不起作用 正如我在任务管理器中看到的那样 只有 1 个进程在运行 并且结果从未传递 我做了几次搜
  • 我以为 Python 通过引用传递了所有内容?

    采取以下代码 module functions py def foo input new val input new val module main py input 5 functions foo input 10 print input
  • 如何使用 BeautifulSoup 只抓取可见的网页文本?

    基本上 我想用BeautifulSoup严格抓住可见文字在网页上 例如 这个网页 http www nytimes com 2009 12 21 us 21storm html是我的测试用例 我主要想获取正文 文章 甚至可能到处都有一些选项
  • Django populate() 不可重入

    当我尝试在生产环境中加载 Django 应用程序时 我不断收到此消息 我尝试了所有的 stackoverflow 答案 但没有任何解决办法 任何其他想法 我使用的是 Django 1 5 2 和 Apache Traceback most
  • WTforms 表单未提交但不输出验证错误

    我正在尝试使用以下方式上传文件flask uploads工作和遇到一些障碍 我会告诉你我的flask查看函数 html 希望有人能指出我缺少的内容 基本上发生的情况是我提交了表格但失败了if request method POST and
  • 在 kivy 中嵌套小部件

    我正在尝试在 kivy 中制作一个界面 我认为即使在完成教程之后 我仍然不了解自定义小部件以及如何对它们进行层次结构的一些基本知识 我认为我有更多的盒模型 html 思维方式 因此小部件嵌套在本机 GUI 中的方式对我来说仍然有点陌生 一些

随机推荐

  • 在 Meteor.js 中,如何让两个开发项目使用同一个 Mongo 实例?

    我希望两个单独的应用程序使用相同的 Mongo DB 实例 并且由于我同时开发它们 因此我希望能够共享相同的开发数据库实例 我意识到 Meteor 的每个实例都必须在它自己的端口上运行 有没有办法像系统版本的MongoDB一样强制meteo
  • 当每个请求的应用程序 ID 和应用程序密钥都不同时,使用omniauth-facebook 吗?

    The omn iauth facebook自述文件提到了如何在初始化程序中设置它以及如何设置选项 例如scope仅根据请求 我想知道是否也可以为每个请求设置应用程序 ID 和应用程序密钥 你可以这样做 在您的omniauth rb 上 执
  • 在 Service Worker / fetch() 中识别 HTTP 304

    我构建了一个服务工作人员 它始终使用缓存中的数据进行响应 然后在后台向服务器发送请求 如果服务器响应HTTP 304 not modified一切都很好 如果服务器响应HTTP 200 这意味着数据已更改 新文件已放入缓存中 同时通知用户并
  • 初始化 ST-Link 设备时出错 - 无法连接到设备

    我目前正在使用 ST Link 调试器对我的 STM32F3 Discovery 板进行编程 我使用的IDE是Atollic TrueStudio 5 5 2 现在我面临一个非常奇怪的问题 那就是我不断收到消息 初始化 ST Link 设备
  • Selenium WebDriver (2.25) 超时不起作用

    我想我已经阅读了 Stack Overflow 上的所有 Selenium 超时问题 但隐式或显式超时在我的 Selenium webdriver 2 25 Python 2 7 绑定 中都不起作用 并且 no timeout here 行
  • 如何将 ContinuationToken 与递归文件夹迭代器一起使用

    由于 Drive API 配额 服务配额以及脚本执行时间的限制6 min将 Google Drive 文件操作拆分为多个块通常很重要 我们可以用属性服务储藏continuationToken for 文件夹迭代器 or 文件迭代器 这样我们
  • 使用 PyYAML 将文档作为 yaml 中的原始字符串加载

    我想解析 yaml 文档 如下所示 meta info 1 val1 meta info 2 val2 Plain text markdown content jhaha If I load all使用 PyYAML 我得到以下内容 gt
  • weblogic jsessionid

    我在本地运行 Weblogic 10 3 并对它生成的 sessionId 有疑问 当我打印 session getId 时 我看到类似这样的内容 BBp9TAACMTglQ2TDFAKR4tpyXg73LZDQJ2PtT9x8htG1tW
  • API 19 上的 Android Gradle Multidex 构建问题

    我有一个已启用的项目multidex避免65k limit并且productFlavors 开发 API 21 和产品 API 19 用于定制 构建我的项目API 21即开发风格是成功的 但是API 19即产品风味 它在应用程序任务中不断给
  • 如何使用python连接三个excel文件xlsx?

    你好 我想使用 python 连接三个 excel 文件 xlsx 我尝试过使用 openpyxl 但我不知道哪个函数可以帮助我将三个工作表附加到一个中 您有什么想法如何做到这一点吗 多谢 这是一个pandas基于的方法 它正在使用open
  • OpenCover/NUnit 找不到 PDB 文件

    我正在使用 OpenCoverhttp nuget org packages opencover并编写了以下批处理文件来运行单元测试并生成代码覆盖率统计信息 echo off echo echo Running NUnit tests ec
  • 启动 django 服务器时,我不断收到 NotImplementedError 错误 [重复]

    这个问题在这里已经有答案了 下面是错误的完整跟踪 请告诉我什么可以解决这个问题 env C Users LENOVO Desktop SD backend gt python manage py runserver Watching for
  • Python 2.X 中的 range 和 xrange 函数有什么区别?

    显然 xrange 更快 但我不知道为什么它更快 除了到目前为止的轶事之外没有证据表明它更快 或者除此之外还有什么不同 for i in range 0 20 for i in xrange 0 20 在 Python 2 x 中 rang
  • C 中大量字符的字节顺序

    我正在用 C 语言进行一些套接字编程 并尝试解决字节顺序问题 我的请求 发送 很好 但是当我收到数据时 我的字节全部乱序 我从这样的事情开始 char aResponse char malloc 512 int total recv soc
  • 错误:[错误号 10053]

    如果我在 Flask 上编码 有时会出现以下错误 Traceback most recent call last File C Python27 lib SocketServer py line 284 in handle request
  • 在 SQL 中选择 CHAR 而不是 VARCHAR 的用例有哪些?

    我意识到如果我的所有值都是固定宽度的 则建议使用 CHAR 但是 那又怎样 为了安全起见 为什么不为所有文本字段选择 VARCHAR 一般规则是选择CHAR如果所有行都接近相同长度 Pick VARCHAR or NVARCHAR 当 的时
  • 为什么我不能为 ThreadStart 使用/强制转换 Action?

    两者都是委托并且具有相同的签名 但我不能使用 Action 作为 ThreadStart Why Action doIt doIt gt MyMethod test Thread t t new Thread doIt t Start 但这
  • 节点串行端口在 alpine linux 上失败

    我正在开发一个使用node serialport的小型nodejs nodejs v4 3 项目https github com voodootikigod node serialport 我把它包装在一个 docker 镜像中 首先 我成
  • 如何在模型中验证来自控制器的数据

    因此 我有一些从控制器中的另一个 Rails 应用程序中获取的数据 我们将其称为 ExampleController 我想在允许向导进入下一步之前验证它是否存在于我的模型中 但我不太清楚如何实现我应该这样做 我知道直接从控制器获取这些数据到
  • TensorFlow 检查点保存和读取

    我有一个基于 TensorFlow 的神经网络和一组变量 训练函数是这样的 def train load True step Defining the neural network is skipped here train step tf