使用张量流数据集利用 GPU

2023-12-25

在数据训练期间,我的 GPU 利用率约为 40%,并且我清楚地看到基于 TensorFlow Profiler 的数据复制操作占用了大量时间(参见附图)。我认为“MEMCPYHtoD”选项正在将批次从 CPU 复制到 GPU,并阻止使用 GPU。有没有办法将数据预取到GPU?还是还有其他我没有看到的问题?

这是数据集的代码:

X_placeholder = tf.placeholder(tf.float32, data.train.X.shape)
y_placeholder = tf.placeholder(tf.float32, data.train.y[label].shape)

dataset = tf.data.Dataset.from_tensor_slices({"X": X_placeholder, 
                                              "y": y_placeholder})
dataset = dataset.repeat(1000)
dataset = dataset.batch(1000)
dataset = dataset.prefetch(2)
iterator = dataset.make_initializable_iterator()
next_element = iterator.get_next()

预取到单个 GPU:

  • 考虑使用比以下更灵活的方法prefetch_to_device,例如通过显式复制到 GPUtf.data.experimental.copy_to_device(...)然后预取。这可以避免以下限制prefetch_to_device必须是管道中的最后一个转换,并且允许结合更多技巧来优化Dataset管道性能(e.g.通过重写线程池分布)。
  • 尝试一下实验tf.contrib.data.AUTOTUNE预取选项,这允许tf.data运行时根据您的系统和环境自动调整预取缓冲区大小。

最后,你可能会做这样的事情:

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

使用张量流数据集利用 GPU 的相关文章

随机推荐

  • 使用 Eclipse DDMS 将大文件推送到模拟器/SD 卡时出现问题

    我正在使用 Eclipse DDMS 将文件推送到我的 Android 模拟器 sdcard 上 我选择文件并按 打开 会弹出一个对话框并开始推送文件 在 DDMS 透视图的 文件资源管理器 视图中 我可以看到 sdcard 目录并可以看到
  • 为什么 .SECONDARY 不能与模式 (%) 一起使用,而 .PRECIOUS 可以?

    我的问题是更好地理解我在制作过程和 SECONDARY 目的与 PRECIOUS 中错过的内容 而不是让我的脚本工作 因为它已经工作了 我正在使用 make 打开文件上的 emacs 编辑器 java 但与此问题的目的无关 或者使用模板创建
  • Mathematica 对 #^2 & /@ Range[n] 的令人费解的解释

    我对 Mathematica 对以下问题的回应感到困惑 ClearAll n 2 Range n 2 Range n StandardForm 看来连Mathematica 8 0 都不相信它刚才说的话 2 Range 5 Range 5
  • 网络链接调节器似乎对 Lion、Mountain Lion 上的网络行为没有影响

    网络链接调节器首选项窗格 从 适用于 Xcode 的硬件 IO 工具 2012 年 7 月下旬 https developer apple com downloads index action name for 20Xcode 20 苹果开
  • 使用 Chameleon ZPT 渲染任意深度的嵌套元素

    我正在使用 Pyramid 框架 我想用 Chameleon 渲染一个带有任意深度的嵌套列表 ul li 的 html 菜单 我无法在 Chameleon 中找到某种递归方法来执行此操作 这似乎是一个常见的需求 所以我想知道渲染任意深度的嵌
  • 启用空安全时,默认的“List”构造函数不可用。尝试使用列表文字,“List.filled”或“List.generate”

    Why List Dart 空安全后构造函数不可访问 Compile time error List is deprecated and shouldn t be used The default List constructor isn
  • 当前的 MVVM 视图模型实践是否违反了单一职责原则?

    根据当前的实践 至少在 WPF 和 Silverlight 中 我们可以看到视图模型中通过命令绑定来绑定视图 或者至少可以看到视图模型中处理的视图事件 这似乎违反了SRP http en wikipedia org wiki Single
  • 最小的有效域名是什么?

    只是从技术上好奇什么是有效域名 t lt is that valid localhost is valid 我记得读过一些很短的东西 甚至没有两个字 其他答复已经给了你一些提示 但我认为他们缺乏区分两种情况 因为你的问题很模糊 其实我看到的
  • az 登录命令失败 - Azure cli

    在 Windows 上安装 Azure CLI 运行 az login 命令并遇到以下错误 我运行的版本是 2 0 37 Azure CLI 2 0 https learn microsoft com en us azure storage
  • 如何从 Jersey REST 服务方法返回 PNG 图像到浏览器

    我有一个运行 Jersey REST 资源的 Web 服务器 我想知道如何获取浏览器 img 标签的图像 png 参考 提交表单或收到 Ajax 响应后 用于添加图形的图像处理代码正在工作 只需要以某种方式返回它 Code POST Pat
  • 从现有 MySQL 数据库逆向工程 SQLAlchemy 声明类定义?

    我有一个预先存在的 mysql 数据库 其中包含大约 50 个表 而不是手动编写声明式风格的 SqlAlchemy 类 如图所示 http www sqlalchemy org docs 05 ormtutorial html creati
  • JavaScript 中不接受早于 13 个月的起始日期

    这里我有 从日期 和 到日期 以及提交按钮 我在这个项目中使用 Telerik radate 控制 所以 我无法添加 Telerik 控件 这里一切都很好满足我的要求 并且有一个增强功能 http jsfiddle net ssthil 4
  • 什么是 Microsoft SharePoint? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C++ 中的哈希表?

    每当我需要存储与特定类型的值 键值 例如字符串或其他对象 关联的一些数据时 我通常使用 C stdlib 映射 stdlib 映射实现基于树 它比标准数组或 stdlib 向量提供更好的性能 O log n 我的问题是 您是否知道任何可以提
  • 提示的键盘快捷键

    通常 当我选择一个提示 例如重构我所在的某一行 时 当左侧显示紫色提示图标或灯泡图标时 我单击它 然后选择我想要的重构 我不想用我的鼠标 我如何打开左侧的对话框 resharper 会不显眼地向您显示左侧的任何对话框 只是想找到一种比使用鼠
  • 限制每个 Apache 虚拟主机的带宽 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我将启动一个 2GB Linode VPS 来托管几个 Wordpress CMS 站点和一个基于 Yii 框架的站点 我计划使用 Apache 虚拟
  • 将“onclick”处理程序添加到纯 JavaScript 中动态创建的元素

    我正在页面上动态创建和删除元素 a 和 button 我想在创建它们时向它们添加处理程序 onclick 到目前为止我见过的所有例子都是jquery 的 我怎样才能用纯 JavaScript 做到这一点 你可以这样做 for var i 0
  • 当用户关闭其中一个窗口时,WPF 关闭所有窗口

    有一个具有多个窗口的 WPF 应用程序 最初只有一个窗口 用户可以转到下一个窗口 同时隐藏上一个窗口 当他们回来时 隐藏的窗口再次出现 问题是 当用户关闭某些窗口时 隐藏的窗口继续作为进程运行 当用户关闭任何一个时 是否可以关闭所有它们 如
  • 在组件外部使用 VueI18n 的问题

    我正在尝试在组件外部使用 i18n 我找到了这个解决方案https github com dkfbasel vuex i18n issues 16 https github com dkfbasel vuex i18n issues 16告
  • 使用张量流数据集利用 GPU

    在数据训练期间 我的 GPU 利用率约为 40 并且我清楚地看到基于 TensorFlow Profiler 的数据复制操作占用了大量时间 参见附图 我认为 MEMCPYHtoD 选项正在将批次从 CPU 复制到 GPU 并阻止使用 GPU