1. 前提

利用Transformer模型进行O3浓度的反演

2. 问题

2.1 速度慢

一开始模型是在CPU上面跑的,为了加快速度,我改成了在GPU上跑
方法如下:
1、验证pytorch是否存在GPU版本
在Pycharm命令行输入

import torchprint(torch.cuda.is_available)
# 若输出为True,则存在GPU版本
# 若输出为False,则不存在GPU版本

我的输出为True,说明pytorch是存在GPU版本的
2、将模型从CPU版本转换到GPU版本

  • 声明使用GPU(指定具体的卡)
    PS:torch.device()是装torch.Tensor的一个空间。
device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
# 'cuda' 这里如果没有指定具体的卡号,系统默认cuda:0
device = torch.device('cuda:2')      # 使用2号卡
  • 将模型(model)加载到GPU上
model = Transformer()   #例子中,采用Transformer模型
model.to(device)
  • 将数据和标签放到GPU上【注意!什么数据可以被放入GPU-Tensor类型的数据】
# 只有Tensor类型的数据可以放入GPU中
# 可以一个个【batch_size】进行转换
inputs = inputs.to(device)
labels = labels.to(device)

如果结果还是显示你是在CPU上进行训练,要不就是模型没有加进去,要不就是数据没有加进去

2.2 内存不足

  1. 在使用CPU时,出现了内存不足的情况

RuntimeError: [enforce fail at C:\cb\pytorch_1000000000000\work\c10\core\impl\alloc_cpu.cpp:72] data. DefaultCPUAllocator: not enough memory: you tried to allocate 280410627200 bytes.

  1. 在使用GPU时,出现了内存不足的情况

torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 261.15 GiB (GPU 0; 8.00 GiB total capacity; 487.30 MiB already allocated; 5.71 GiB free; 506.00 MiB reserved in total by PyTorch) If reserved memory is >> allocated memory try sett

我的模型在训练的时候没有问题,在进行预测的时候,总是出现内存不足
(1)一开始我以为是batch_size大小的问题,在从128更改到4后,发现依旧存在问题,这说明不是batch_size大小的问题。
(2)然后,我猜测是反演过程的问题
我在进行模型反演的过程中,直接将全部数据输入到模型model中(大概有10万行),为了验证这个问题,我添加了一个for循环,一个一个数据的反演

问题解决!


学习链接:

  • pytorch 中判断和指定模型和数据在GPU或CPU上–有用
  • Pytorch | GPU | 将代码加载到GPU上运行
  • pytorch中cuda out of memory问题

Pytorch运行过程中解决出现内存不足的问题相关推荐

  1. pytorch运行过程中死机(内存爆掉或者内存正常)

    linux18.04下,在运行pytorch程序的过程中,电脑直接卡死死机,鼠标和键盘都没有反应,只能强制关机. 安装htop观察内存和cpu的使用情况,内存32G,CPU是i7-8700. 程序在之 ...

  2. C# winform程序运行过程中提示尝试读取或写入受保护的内存.这通常指示其他内存已损坏的

    C# winform程序运行过程中提示"尝试读取或写入受保护的内存.这通常指示其他内存已损坏的" 错误,如下图所示 查看详细信息如下 未处理System.AccessViolati ...

  3. java在程序运行过程中_Java内存管理-程序运行过程(一)

    做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 勿在浮沙筑高台,出来混迟早要还的. 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine( ...

  4. 操作系统中进程并发运行的过程_三种电磁流量计运行过程中常见故障解决详情!...

    原标题:三种电磁流量计运行过程中常见故障解决详情! 昨天给大家介绍了电磁流量计的一些典型故障,今天我们继续来谈电磁流量计的故障问题!电磁流量计在正常的保养与维护之后,在正常使用的过程中依旧是会因为当时 ...

  5. SAS 运行过程中出现‘SAS 磁盘已满 OUT OF RESOURCES’解决办法!

    SAS 运行过程中出现'SAS 磁盘已满 OUT OF RESOURCES'解决办法! 当SAS在WORK逻辑库运行大量数据时可能会出现'磁盘已满 OUT OF RESOURCES'的情况,那是由于w ...

  6. 解决office运行过程中的卡顿现象

    如何解决安装office之后,打开运行过程中出现极大的卡顿现象 第一步:打开word或者ppt,点击文件菜单中的选项. 第二步:点击选项中的高级 第三步:在禁用硬件加速前面打勾 #这次安装完offic ...

  7. 内存管理——程序运行过程中内存的作用以及如何与cpu、os交互

    今年以来,内存条价格暴涨,已经跃升为新的新一代理财产品,所以今天就和大家讨论一下内存条的话题,主要内容就是在程序运行过程中,内存的作用以及如何与CPU,OS交互. 我们先来讨论:计算机的运行究竟是在做 ...

  8. 安卓4.4玩java_Android4.4运行过程中闪退java.lang.NoClassDefFoundError

    上周五项目测试时发现一个奇怪的Bug,项目中依赖了一个第三方框架,但是在android4.0-4.4.4之间的系统中运行会直接闪退,抛出错误异常为java.lang.NoClassDefFoundEr ...

  9. pytorch训练过程中loss出现NaN的原因及可采取的方法

    在pytorch训练过程中出现loss=nan的情况 1.学习率太高. 2.loss函数 3.对于回归问题,可能出现了除0 的计算,加一个很小的余项可能可以解决 4.数据本身,是否存在Nan,可以用n ...

最新文章

  1. 一个apk多个ICON执行入口
  2. 树莓派私有云(OwnCloud)搭建(三) OwnCloud安装
  3. vue动画效果配置和弹层css sticky footer
  4. 【Python】扫盲帖:关于在Windows、Linux和Mac上安装设置Python的问题
  5. hibernate mysql 关联查询_Hibernate关联映射及高级查询
  6. signature=7af2859164902e5f86d6728522cfd7fe,Signatures of top flavored dark matter
  7. 开发---推荐16个国外的源码下载网站
  8. android js 弹窗,Android WebView 不能弹出alert的对话框
  9. 你们考试,我们都有点紧张呢…
  10. phpstudy mysql创建表_MySQL_Mysql入门基础 数据库创建篇,1.创建数据表---基础(高手跳 - phpStudy...
  11. 获知哪个函数调用了本函数及它的类名
  12. Windows系统下的python程序安装
  13. 学计算机的大1新生规划,大学生学习计划怎么写
  14. 哈工大学习笔记 | 图文并茂详解隐马尔可夫模型
  15. Java-BufferReader中的readLine()方法
  16. jquery 一个元素包含多个class时
  17. 全流程基于最新导则下的生态环境影响评价技术方法及图件制作
  18. 刚办的电信卡显示无服务器,刚刚买的电信卡怎么不能用说什么只限紧急呼叫
  19. Flash 第二篇 AS影片剪辑
  20. ThreadPoolExecutor(六)——线程池关闭之后

热门文章

  1. Unity 禁用动画位移
  2. 深度学习 训练吃显卡_深度学习小钢炮攒机心得:规避一些你看不到的坑
  3. 代号z服务器维护,这么大胆?消失的这段时间《代号Z》竟然做了这些事!
  4. wow auto join battle
  5. Android源码开发笔记 WWAN Carrier config的修改
  6. 过去十年,是前端觉醒的十年
  7. 关于暗黑3,暴雪,优秀团队的胡言乱语
  8. 和明天说一声:你好!
  9. CSS3_边框 border 详解_一个 div 的阴阳图
  10. 海盗王仿官方做的天赋系统,比它的好用