| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 当运行深度学习网络出现cuda out of memory错误: -> 正文阅读 |
|
[人工智能]当运行深度学习网络出现cuda out of memory错误: |
记录一下个人遇到的问题。代码在本地运行不爆显存,到了服务器反而爆显存。 刚开始和往常一样调小batch_size值,但是随着batch_size的减小,每次cuda报oom错误时,后面具体细节里空闲的显存越少,pytorch占用的显存越来越多。如图: ? ? ?折磨了几天,重装了几次环境,后来偶然输出了一下model,发现input_dim获得的参数居然有一千多万,更改了获取的参数,之后即可运行。 ? ? ? ? ? ? ? ?记录一下,如果遇到显存溢出找不到问题,就输出一下模型检查一下。 另外记录几条细节: 1.os.environ['CUDA_VISIBLE_DEVICES'] = '0' 将可用gpu按照0,1,2,3的顺序排序,按照序号调用,0就是第一块;0,1就是前两块。 如果只有一块gpu,则1似乎是指定用cpu运行。 2.在每一个epoch之前加入torch.cuda.empty_cache(),可在运行此epoch之前清空缓存。 3.在训练和测试阶段函数内使用with torch.no_grad(),可用阻止loss值的计算和反向传播减轻显存压力。参考格式如下: ? ? ? ? ? ? ?? 同时可在训练和测试阶段的loss之后加.item(),同样可以减小显存压力。 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 4:13:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |