使 CUDA 内存不足

2024-04-23

我正在尝试训练网络,但我明白了, 我将批量大小设置为 300 并收到此错误,但即使我将其减少到 100,我仍然收到此错误,更令人沮丧的是,在 ~1200 个图像上运行 10 epoch 大约需要 40 分钟,有什么建议吗?错了,我怎样才能加快这个过程! 任何提示都会非常有帮助,提前致谢。

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-31-3b43ff4eea72> in <module>()
      5         labels = Variable(labels).cuda()
      6 
----> 7         optimizer.zero_grad()
      8         outputs = cnn(images)
      9         loss = criterion(outputs, labels)

/usr/local/lib/python3.5/dist-packages/torch/optim/optimizer.py in     zero_grad(self)
    114                 if p.grad is not None:
    115                     if p.grad.volatile:
--> 116                         p.grad.data.zero_()
    117                     else:
    118                         data = p.grad.data

RuntimeError: cuda runtime error (2) : out of memory at /pytorch  /torch/lib/THC/generic/THCTensorMath.cu:35`

即使我的 GPU 是免费的

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 384.111                Driver Version: 384.111                       |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:05:00.0 Off |                   N/A |
| 23%   18C    P8    15W / 250W |  10864MiB / 11172MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+

|   1  GeForce GTX 108...  Off  | 00000000:08:00.0 Off |                  N/A |    
 | 23%   20C    P8    15W / 250W |     10MiB / 11172MiB |          0%      Default
+-------------------------------+----------------------+---------------

相当普遍的问题。以下是我对这个问题的看法。

尝试将批量大小(批量数)设置为 1。如果这解决了问题,您可以尝试找到最佳批量大小。

如果即使是为了bs=1你得到“RuntimeError:cuda运行时错误(2):内存不足”:

  • 不要使用太大的线性层。线性层 nn.Linear(m, n) 使用 O(nm)O(nm)O(nm) 内存:也就是说,权重的内存需求与特征数量成二次方关系,同时还考虑梯度。

  • 不要在整个训练循环中积累历史记录。如果您在循环内递归地对损失求和 10000 或更多,您的反向传播评估将是巨大的;占用大量内存。

  • 删除不需要的张量del明确地.

  • Run ps -elf | grep python以及 GPU 上的 python 进程kill -9 [pid]如果您怀疑其他 Python 进程正在占用您的内存。

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

使 CUDA 内存不足 的相关文章

  • 如何在pytorch中查看DataLoader中的数据

    我在 Github 上的示例中看到类似以下内容 如何查看该数据的类型 形状和其他属性 train data MyDataset int 1e3 length 50 train iterator DataLoader train data b
  • 如何在C++中的cudaDeviceReset()之后重用tensorflow?

    我正在使用 C 开发一个大型 CUDA 应用程序 该应用程序运行各种模型 需要完全释放所有 GPU 内存 否则其他操作将失败 我能够在关闭所有 tf 会话并运行 cudaDeviceReset 后释放所有内存 但之后我无法运行任何新的张量流
  • 了解随机起始权重对神经网络性能的影响

    使用 R 和包neuralnet 我尝试对数据进行建模 如下所示 这些是几天内以 10 分钟为间隔的温度读数 上面是 2 天的截图 使用下面的代码 我将神经网络拟合到数据 可能有更简单的方法来对这些精确数据进行建模 但将来数据可能看起来完全
  • OpenCV GPU Farneback 光流在多线程中表现不佳

    我的应用程序使用 Opencv GPU 类gpu FarnebackOpticalFlow计算输入视频的一对连续帧之间的光流 为了加速该过程 我利用 OpenCV 的 TBB 支持在多线程中运行该方法 然而 多线程性能并不像单线程那样 为了
  • 多个进程可以共享一个 CUDA 上下文吗?

    这个问题是 Jason R 的后续问题comment https stackoverflow com questions 29964392 multiple cuda contexts for one device any sense co
  • PyTorch:如何检查训练期间某些权重是否没有改变?

    如何检查 PyTorch 训练期间某些权重是否未更改 据我了解 一种选择可以是在某些时期转储模型权重 并检查它们是否通过迭代权重进行更改 但也许有一些更简单的方法 有两种方法可以解决这个问题 First for name param in
  • Visual Studio - 过滤掉 nvcc 警告

    我正在编写 CUDA 程序 但收到令人讨厌的警告 Warning Cannot tell what pointer points to assuming global memory space 这是来自 nvcc 我无法禁用它 有没有办法过
  • 使 CUDA 内存不足

    我正在尝试训练网络 但我明白了 我将批量大小设置为 300 并收到此错误 但即使我将其减少到 100 我仍然收到此错误 更令人沮丧的是 在 1200 个图像上运行 10 epoch 大约需要 40 分钟 有什么建议吗 错了 我怎样才能加快这
  • 为什么 pytorch matmul 在 cpu 和 gpu 上执行时得到不同的结果?

    我试图找出 numpy pytorch gpu cpu float16 float32 数字之间的舍入差异 而我发现的内容让我感到困惑 基本版本是 a torch rand 3 4 dtype torch float32 b torch r
  • CUDA Visual Studio 2010 Express 构建错误

    我正在尝试在 64 位 Windows 7 上使用 Visual Studio 2010 Express 在 Windows 上开始 CUDA 编程 我花了一段时间来设置环境 然后我刚刚编写了我的第一个程序 helloWorld cu 目前
  • Keras,训练模型后如何预测?

    我正在使用 reuters example 数据集 它运行良好 我的模型已经过训练 我阅读了有关如何保存模型的信息 以便稍后加载它以再次使用 但如何使用这个保存的模型来预测新文本呢 我用吗models predict 我必须以特殊方式准备这
  • DirectX 世界视图矩阵乘法 - GPU 或 CPU 的地方

    我是 directx 的新手 但令我惊讶的是 我看到的大多数示例中 世界矩阵和视图矩阵都是作为顶点着色器的一部分相乘 而不是与 CPU 相乘并将结果传递给着色器 对于刚性对象 这意味着您为对象的每个顶点将相同的两个矩阵相乘一次 我知道 GP
  • 如何更新反卷积层的权重?

    我正在尝试开发一个反卷积层 或者准确地说是转置卷积层 在前向传递中 我进行了完全卷积 零填充卷积 在向后传递中 我进行有效的卷积 没有填充的卷积 以将错误传递到前一层 偏差的梯度很容易计算 只需对多余维度进行平均即可 问题是我不知道如何更新
  • 无法在 CUDA 中执行设备内核

    我正在尝试在全局内核中调用设备内核 我的全局内核是矩阵乘法 我的设备内核正在查找乘积矩阵每列中的最大值和索引 以下是代码 device void MaxFunction float Pd float max int x threadIdx
  • 用于多输入图像的 VGG16 网络

    我正在尝试将 VGG16 网络用于多个输入图像 使用具有 2 个输入的简单 CNN 训练该模型给了我一个 acc 大约 50 这就是为什么我想使用 VGG16 这样的既定模型进行尝试 这是我尝试过的 imports from keras a
  • 设置最大 CUDA 资源

    我想知道是否可以设置 CUDA 应用程序的最大 GPU 资源 例如 如果我有一个 4GB GPU 但希望给定的应用程序只能访问 2GB 如果它尝试分配更多 就会失败 理想情况下 这可以在进程级别或 CUDA 上下文级别上设置 不 目前没有允
  • NvCplGetThermalSettings 返回 false

    问题 您好 我正在尝试使用 Delphi 获取 nividia gtx 980 的 GPU 温度 我看过C 问题 他的解决方案是不使用nvcpl dll 我认为这不是正确的解决方案 因为 nivida 有完整的文档说明如何处理 API 见下
  • Yocto for Nvidia Jetson 由于 GCC 7 而失败 - 无法计算目标文件的后缀

    我正在尝试将 Yocto 与 meta tegra 一起使用 https github com madisongh meta tegra https github com madisongh meta tegra 为 Nvidia Jets
  • iOS 上的 OpenCV - GPU 使用情况?

    我正在尝试开发一个 iOS 应用程序 可以对来自相机的视频执行实时效果 就像 iPad 上的 Photobooth 一样 我熟悉 OpenCV 的 API 但如果大多数处理是在 CPU 上完成而不是在 GPU 上完成 我担心 iOS 上的性
  • 结合两个 CNN

    我想在 Keras 中将两个 CNN 合并为一个 我的意思是我希望神经网络拍摄两张图像并在单独的 CNN 中处理每一张图像 然后将它们连接在一起进入扁平化层并使用全连接层来做最后的工作 我做了什么 Start With First Bran

随机推荐

  • Ember:断言失败:EmberObject.create 不再支持定义计算属性

    我使用的是 Ember 2 16 版本 我们升级到了 3 8 版本升级后 我看到此错误 但无法弄清楚错误来自何处 在什么情况下我会收到此错误 我看到其中一篇帖子 Ember JS 中的动态计算属性已弃用 https stackoverflo
  • 使用 php 和 mysql 将多个复选框值存储到数据库

    我想将多个复选框值存储在单个字段中 我使用该链接http www mindfiresolutions com Storing array data to MySQL using PHP 1296 php http www mindfires
  • 如何在不存储 TypeScript 的情况下进行内联类型检查?

    我有一些界面 ITestInterface foo string 我想将此接口的实例作为参数传递给函数 该函数将采用任何对象类型 因此它本身不会进行类型检查 为了确保对象的类型正确 我可以使用存储 const passMe ITestInt
  • 布尔变量不是默认总是 false 吗?

    我声明了一个布尔变量bool abc 在一个类中 并认为默认情况下它是错误的 一个if我的程序中的条件 if abc 结果是true 所以我输出abc的值 看到它包含值55 这正常吗 我们是否总是必须分配 bool abc false 以确
  • Action Filter 中的 UnitOfWork 似乎正在缓存

    我有一个使用 IoC Unity 的 MVC 3 站点 我的模型是使用 EF4 和 POCO 生成的 我正在使用操作过滤器来提交我的工作单元 public class UseUnitOfWorkAttribute ActionFilterA
  • App.config - 加密部分错误:

    我有一个对配置文件中的部分进行加密的应用程序 当我第一次尝试从配置文件中读取加密部分时 我收到一条错误消息 无法识别的属性 configProtectionProvider 请注意 属性名称区分大小写 config Configuratio
  • 如何删除选中时覆盖 UITabBarItem 的蓝色方块?

    我有一个 iPad 应用程序 Xcode 5 iOS 7 ARC 和 Storyboards 我有一个UITabBarController 并且每个场景都有一个UITabBarItem 当我点击选项卡栏项目时 它会转到正确的场景 但 当前
  • 如何列出拥有活跃订阅者的所有 pubnub 频道?

    我想列出与具有活跃订阅者的订阅密钥关联的所有频道 有没有办法用 pubnub 做到这一点 如果这有什么区别的话 我正在使用 JavaScript API PubNub 现在 API 返回与订阅键关联的频道列表 其中存在订阅者 PUBNUB
  • ASP.NET 5 MVC6 User.GetUserId() 返回错误的 ID

    我在 ASP NET 5 中有一个简单的项目 只有一个注册用户 我尝试通过扩展方法获取当前登录用户的IDGetUserId from using System Security Claims命名空间 不幸的是 这个方法返回给我不存在的ID
  • 数据表选择前5行

    您好 有什么方法可以从数据表中选择前 5 行而不进行迭代吗 我认为 你可以使用 LINQ datatable AsEnumerable Take 5
  • 编译动态内容 - AngularJS

    我正在重写这个问题 因为我认为原来的问题不太清楚 基本上 我有一个 包装器 指令 我试图将属性动态添加到包装 嵌入 元素之一 我可以让它工作 但 Angular 似乎不知道添加后的新属性 如果我使用 compile那么 Angular 确实
  • 有没有一种简单的方法对编译器输出进行颜色编码?

    gcc 或其他编译器 经常生成大量文本输出 并且很难看出错误在哪里或错过警告 我已经做了一些搜索 但还没有找到一个干净简单的解决方案来对编译器输出进行颜色编码 例如警告是黄色 错误是红色等 gcc 4 9好像添加了这个功能 https gc
  • 我可以从 FoxPro 通用字段中提取文件吗?

    我正在将 VFP 9 应用程序移植到 SQL Server VFP 应用程序有一些表 其中包含 常规 字段 查询字段时我得到一个字节数组 当我将它保存到磁盘时 我可以查看里面并看到它是一个Word文档 或者一个Paint BMP等 通过阅读
  • 规范哈夫曼编码算法

    你好 我正在尝试实现 Canonical huffman 编码 但我不明白 wiki 和 google 指南 我需要更抽象地解释 我试过这个 1 获取常规哈夫曼编码长度的代码列表 像这样 A code 110 length 3 B code
  • lambda 可以使用 *args 作为参数吗? [复制]

    这个问题在这里已经有答案了 我正在使用计算总和lambda像这样 def my func args return reduce lambda x y x y args my func 1 2 3 4 它的输出是10 但我想要一个lambda
  • 我可以在运行时选择一个特征对象而不使用 Box 吗?

    我想分支并决定在运行时在函数中使用的 Trait 实现 请参阅poly read在下面的代码示例中 Trait 对象是在 if 表达式的分支臂内部构造的 并且只需要在 if 表达式的生命周期内存在poly read但我需要Box它是因为无法
  • 无法更新 EntitySet '...',因为它有 DefiningQuery

    我将 MVC 4 和 C 4 5 与 EntityFramework 4 一起使用 我设置了一个简单的多对多表 tblAdminUser gt tblAdminUserRole lt tblAdminRole 当我尝试向管理员用户添加角色时
  • 反射真的那么慢以至于我不应该在有意义的时候使用它吗? [复制]

    这个问题在这里已经有答案了 可能的重复 NET 反射的成本有多高 https stackoverflow com questions 25458 how costly is net reflection 优雅 的解决方案problem ht
  • 如何在python中获取Windows短文件名?

    我需要从我的 python 代码中确定 Windows 短文件名 为此 我可以使用 win32api 找到解决方案 import win32api long file name C Program Files I am a file sho
  • 使 CUDA 内存不足

    我正在尝试训练网络 但我明白了 我将批量大小设置为 300 并收到此错误 但即使我将其减少到 100 我仍然收到此错误 更令人沮丧的是 在 1200 个图像上运行 10 epoch 大约需要 40 分钟 有什么建议吗 错了 我怎样才能加快这