问题tensorflow.python.framework.errors_impl.ResourceExhaustedError:OOM

2023-05-16

tensorflow.python.framework.errors_impl.ResourceExhaustedError: 2 root error(s) found.
  (0) Resource exhausted: OOM when allocating tensor with shape[16,100,1024] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc

     [[{{node training/Adam/gradients/Transformer-1-MultiHeadSelfAttention-Norm/truediv_grad/Neg}}]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

     [[Mean/_901]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

  (1) Resource exhausted: OOM when allocating tensor with shape[16,100,1024] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
     [[{{node training/Adam/gradients/Transformer-1-MultiHeadSelfAttention-Norm/truediv_grad/Neg}}]]
Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

0 successful operations.
0 derived errors ignored.

 这主要是因为模型太大导致GPU显存不足或者剩余显存太小所导致的错误

建议依次采取以下解决方案

解决方案1:缩小模型batchsize大小

尝试逐渐缩小batchsize大小,若batchsize过小严重影响训练时间或者当batchsize=1时依旧存在上述问题,则建议尝试方案2

解决方案2:扩大显存大小

可以采取的方案有解除GPU资源占用或者扩大GPU

1 解除GPU资源占用

在cmd中输入以下命令获取GPU进程情况

nvidia-smi

然后杀死相应进程

taskkill /PID PID号

​​​​​​​此方案一般只会在杀死的PID的占用相当大且本身GPU不受限的情况下才会奏效

 

2 扩大GPU

包括更换硬件或者使用在线GPU进行训练

解决方案3:改用内存CPU训练

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

总结:方案1是在模型训练大小上进行的修改,方案2和方案3是在硬件使用上进行的修改

建议:有预算的情况下可以更换硬件,如果预算有限建议使用在线GPU进行训练

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

问题tensorflow.python.framework.errors_impl.ResourceExhaustedError:OOM 的相关文章

  • 从另一个文件导入函数,在哪里导入其他库?

    很简单的问题 我搜了一下没有结果 假设我有一个文件 funcs py 其中有一个我想调用当前脚本的函数 该函数使用另一个库 例如 pandas 我在哪里导入该库 约定是什么 我是否将它放在 funcs py 的函数内 funcs py de
  • 类型错误:initial_value 必须是 unicode 或 None,而不是 str,

    我正在使用 SOAPpy 来提供 SOAP wsdl 服务 我正在关注这个toturail http www diveintopython net soap web services introspection html 我的代码如下 fr
  • Python:文本覆盖在所有窗口顶部,包括 Linux 中的全屏

    我正在尝试用 python 编写一个简单的脚本 在所有窗口和全屏应用程序之上输出文本 该脚本的目的是以类似于 Steam FPS 计数器工作方式的方式输出平均负载和可用内存 以及其他有用的统计数据 到目前为止 我尝试了 pygame 但据我
  • 调试:获取调用函数的文件名和行号?

    我目前正在用 Python 构建一个相当复杂的系统 当我调试时 我经常在几个脚本中放入简单的打印语句 为了保持概览 我经常还想打印出打印语句所在的文件名和行号 我当然可以手动执行此操作 或者使用类似这样的操作 from inspect im
  • Python 3.4 多重处理不适用于 py2exe

    这与以下内容几乎相同这个问题 https stackoverflow com questions 26001133 python multiprocessing process executes a wrong target package
  • 在python中查找文件

    我有一个文件可能位于每个用户计算机上的不同位置 有没有办法实现文件的搜索 我可以传递文件名和目录树进行搜索的方法吗 os walk http docs python org library os html os walk就是答案 这将找到第
  • 如何在屏幕上锚定 Tkinter 窗口(不可移动窗口)

    我正在尝试在特定位置打开 tkinter 如果它是不可移动的 那就更好了 我搜索文档和其他内容 但没有找到任何相关内容 最好的方法是将顶部或底部固定在一个位置 x y 如果需要 我可以调整窗口大小 def my functions prin
  • 在Python中的自定义类中实现“with object() as f”的使用

    我必须在 python 中打开一个类似文件的对象 它是通过 dev 的串行连接 然后关闭它 在我的班级的几种方法中 这已经完成了好几次 我的做法是在构造函数中打开文件 然后在析构函数中关闭它 不过 我遇到了奇怪的错误 我认为这与垃圾收集器有
  • Python:将字典转换为字节

    我正在尝试将字典转换为字节 但在将其转换为正确的格式时遇到问题 首先 我尝试使用自定义架构映射字典 模式定义如下 class User def init self name None code None self name name sel
  • 将 pdf 图像转换为 jpg 图像的最快方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在尝试将多个 pdf 10k 转换为 jpg 图像并从中提取文本 我目前正在使用pdf2imagepython 库 但它相当慢 有没有比这更
  • 如何在python中修改html树?

    假设有一些可变片段html代码 p span class code string 1 span class code string 2 span class code string 3 span span span p p span cla
  • Python 模块导入对一个文件有效,对另一个文件则失败

    我面临着一个非常奇怪的问题 我有三个文件 第一个包含基类 其他两个文件中的类继承自该基类 奇怪的是 昨天一切都工作正常 但今天其中一个文件不再工作了 在此期间我还没有接触过进口 orangecontrib init py prototype
  • 在 python 中检查堆栈中的局部变量

    我编写了一个小函数 它在堆栈中查找一级并查看其中是否有变量 但是我如何将这个函数变成一个可以在堆栈中一直查找直到找到一个局部变量并购买某个特定名称的函数 import inspect def variable lookup variable
  • 使用 python 对 Robot Framework 中的测试套件中的每个测试用例进行测试设置和拆卸

    我是机器人框架的新手 有人可以帮我看看是否可以为包含大约 20 个测试用例的测试套件中的每个测试用例进行测试设置和拆卸 有人可以用例子解释一下吗 这是一个例子 包含拆解的测试套件 如果你想最后执行每个测试用例 你可以错过它的拆卸 请阅读相应
  • Selenium/ChromeDriver 未知策略错误

    我目前使用 Python v3 5 1 Selenium v3 7 和 Chromedriver v2 33 当我运行以下命令时 from selenium import webdriver driver webdriver Chrome
  • 使用 CustomCallback() 类在训练时实现冻结层

    我正在尝试在 TensorFlow 中训练自定义 CNN 模型 我想以某种方式在训练仍在运行时冻结特定时期模型的某些层 我已经实现了冻结层 但我必须在某些时期训练模型 然后在我想要冻结的特定层中将可训练属性更改为 False 然后编译模型
  • 带有 unicode 键的字典

    Python 中是否可以使用 Unicode 字符作为字典的键 我使用 Unicode 中的西里尔字母作为键 当尝试通过键获取值时 我得到以下回溯 Traceback most recent call last File baseCreat
  • 如何捕获密码提示

    我有以下代码 更新为包括 pexpect import sys import subprocess import pexpect print 0 ssh subprocess Popen ssh A t email protected cd
  • 如何在 Flask 之外使用 jinja2 及其 i18n 扩展(使用 babel)

    如何在 Flask 应用程序之外将 jinja2 与 babel 一起使用 假设我有使用 pybabel 命令填充的语言环境目录 我想加载翻译文件并翻译我的模板文件 我找到了解决方案 以下是如何在不集成 Flask 的情况下使用 jinja
  • 从Python中的一行中删除标签

    我有一个具有以下架构的文本 word1 word2 br word3 word4 br 我想删除最后一部分 并将我的结果存储在另一个文件中 我已尝试以下操作 仍然没有将结果保存在其他文件中 def main fileR open test

随机推荐