在张量流中多次运行 train op

2023-11-23

我有一些相当大的批量大小,我想对其采取多个梯度步骤。虽然我可以使用 python for 循环轻松完成此操作,但我想可能有一种更有效的方法,不需要在每次迭代时将数据传输到 GPU。我曾多次尝试将火车操作放入获取列表中,但我不确定它实际上是否运行了多次(运行时完全相同)。


如果您有可变大小的批处理,那么变量不适合保存它,您可以在之间保留此数据run使用持久张量进行调用。这是一个玩具示例

t = tf.int32
params = tf.Variable(tf.ones_initializer((), dtype=dt))
data_batches = [[1], [2, 3], [4, 5, 6]]

# op that uploads data to TF and saves it as a persistent Tensor
data_saver_placeholder = tf.placeholder(dt)
tensor_handle_op = tf.get_session_handle(data_saver_placeholder)

data_placeholder, data = tf.get_session_tensor(dt)
train_op = tf.assign_add(params, tf.reduce_prod(data)) 
init_op = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init_op)

for batch in data_batches:
    # upload tensor to TF runtime and save its handle
    tensor_handle = sess.run(tensor_handle_op, feed_dict={data_saver_placeholder: batch})
    # run train op several times reusing same data
    for i in range(3):
        sess.run(train_op, feed_dict={data_placeholder: tensor_handle.handle})


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

在张量流中多次运行 train op 的相关文章

随机推荐

  • Lambda + Python + 退出代码

    我遇到了用 Python 编写的简单 AWS Lambda 函数的问题 当我运行 Lambda 函数时 我的代码按预期运行 结果正确 但仍以错误代码 退出代码 结束 Process exited before completing requ
  • 如何从文本框中删除光标?

    这是我的代码 table tr td td tr table
  • Numpy - 将行添加到数组

    如何向 numpy 数组添加行 我有一个数组A A array 0 1 2 0 2 0 如果 X 中每行的第一个元素满足特定条件 我希望从另一个数组 X 向该数组添加行 Numpy 数组没有像列表那样的 追加 方法 或者看起来是这样 如果
  • 如何使用javascript检查页面是否是第一次加载

    我想检查页面是否是第一次加载 如果是 则显示过滤器 如果我将 showFiltermenu 放在 pageLoad 函数中 那么每次加载页面时它都会显示 但我只想它第一次显示 我尝试使用Page IsPostBack但不显示过滤器
  • 在 Ruby 中抓取/解析 Google 搜索结果

    假设我有 Google 搜索结果页面的完整 HTML 有谁知道任何现有的代码 Ruby 来抓取 解析Google搜索结果的第一页 理想情况下 它可以处理可能出现在任何地方的购物结果和视频结果部分 如果没有 那么基于 Ruby 的最佳屏幕抓取
  • Visual Studio Code 抱怨它“找不到 *.d.ts 文件中定义的类型的命名空间”

    我使用创建了一个新项目吞咽角Yeoman 生成器 语言设置为 TypeScript 然后运行Gulp构建过程并在网络浏览器中打开页面 所有这些都正常运行 没有任何更大的问题 我只需要更换ref master in the tsd json
  • Android:同时进行平移和旋转动画

    我想以编程方式同时显示两个动画 而不是在 XML 文件中 它应该旋转和平移我怎样才能做到这一点 请给我一些建议 这是妈妈的代码 gt ImageView snowImg1 ImageView findViewById R id snowim
  • 如何在 QPlainTextEdit 中为突出显示的字符串创建工具提示

    我有一个 QPlainTextEdit 并且其中突出显示了一些单词 现在我希望当我用鼠标悬停在它上面时 它会向我显示一个工具提示 其中包含有关此突出显示单词的描述或类似内容 在 QT IDE 中类似这样 但我不知道如何开始这个所以任何想法
  • 可变长度与 Malloc 数组

    根据c99标准 我们可以编写以下代码 这是完全合法的 int x scanf d x int ar x 我的问题是 如果我可以分配这样的数组 为什么我需要 malloc 再次分配可变大小的数组 另外 您能否解释一下可变长度数组分配是如何发生
  • 如何将具有历史记录的 SVN 存储库迁移到新的 Git 存储库?

    我阅读了 Git 手册 常见问题解答 Git SVN 速成课程等 它们都解释了这个那个 但你找不到像这样的简单说明 SVN 存储库位于 svn myserver path to svn repos Git 存储库位于 git myserve
  • 类定义之外不允许覆盖

    我创建了一个抽象类和一个具体子类 bca h include
  • 在 ASP.NET MVC 4 中获取复选框值

    我正在开发 ASP NET MVC 4 应用程序 这个应用程序有一个基本的形式 我的表单的模型如下所示 public class MyModel public string Name get set public bool Remember
  • 模板的编译是如何工作的?

    我正在读一本关于模板如何工作的书 但我很难理解模板的解释 It says 当编译器看到模板的定义时 它不会生成代码 仅当我们实例化模板的特定实例时 它才会生成代码 事实上 只有当我们使用模板时 而不是在定义模板时 才会生成代码 这一事实会影
  • 如何使用 ADO.NET 获取表中列的 SqlDbType?

    我试图在运行时确定 sql server 表列的 SqlDbType 是什么 是否有一个类可以在 System Data SqlClient 中执行此操作 或者我应该自己进行映射 我可以从那里得到一个字符串表示 SELECT DATA TY
  • 像 360 全景一样自动捕捉图像

    我正在开发类似于全景应用程序的应用程序 我想当设备从左向右移动时自动捕获图像 就像 360 全景应用程序一样 经过一些研究 我发现Sensor线程对此很有用 我已经看到了一些传感器的例子here但我无法理解如何使用传感器来达到我的目的 我也
  • 错误 ITMS-9000:“签名缺失或无效。

    错误 ITMS 9000 签名丢失或无效 捆绑包路径 Payload My app name app GooglePlus bundle 处的捆绑包 com google GPPSignIn3PResources 未使用 Apple 提交证
  • 将 Grails 应用程序转换为插件

    我通过 grails create app 启动了一个 grails 应用程序 为了模块化 我觉得组件最好是一个插件 我可以将此应用程序转换为 grails 插件吗 谢谢 巴布 我从未根据之前编写的应用程序创建过插件 但查看了Grails
  • 为什么浮动 div 和非浮动 div 的顺序仅在某些情况下才重要?

    我有类似的问题CSS 自动边距压低其他元素 右侧浮动侧边栏被推到主非浮动内容 div 下方 这answer建议的工作 只需颠倒标记的顺序并写出浮动 divbefore非浮动 div 例如 这个 div class container div
  • 如何向数组添加新元素?

    我有以下代码 String where where append ContactsContract Contacts HAS PHONE NUMBER 1 where append ContactsContract Contacts IN
  • 在张量流中多次运行 train op

    我有一些相当大的批量大小 我想对其采取多个梯度步骤 虽然我可以使用 python for 循环轻松完成此操作 但我想可能有一种更有效的方法 不需要在每次迭代时将数据传输到 GPU 我曾多次尝试将火车操作放入获取列表中 但我不确定它实际上是否