[Pytorch基础]GPU编译经验

这期分享的是一些GPU编译的初级经验

本地GPU配置

1.最好使用Linux或者Windows系统,mas系统需要外置N卡
2.需要安装Anaconda
3.需要安装N卡的Cuda配置(一定要安装,不要pycuda无法使用)
4.需要安装pycuda的pytorch
这些网上基本都有教程,请一定要使用以上的顺序。
第一次没经验,不按这个顺序出问题查问题纠错,弄了我两天

显存部分的说明

先查看你显卡的显存,低于8G显存的显卡基本跑起来都非常吃力,算力对于深度学习很重要。8G内存连VGG都跑不起来的。下图运行nvidia-smi的命令查看显存,显存只有3G,基本被占满,可以看到再运行,肯定是OOM的。
在这里插入图片描述

初始学习建议还是上Colab吧,查一下显存,有时会分配8G,有时会分配16G,全凭运气。
我就是想用公司显卡跑跑,发现跑个简单的VGG都老是OOM。
网上分析都是说降batch的大小就可以了,然而并不是这样的。
训练的时候显存分配是分两步的
1.模型建立的时候,例如Vgg模型建立的时候就立刻耗费了1.5个G的容量,这个和你模型的flops相关。
2.训练时候会去消耗显存,这时候batch越大消耗的显存越大,当然batch越大训练得越快,这个可以去看优化器的原理。
注意如果出现显存OOM,会一直占用着显存,这时候你调整参数运行也是无用的,需要重启ipynb运行。

运行时问题

1.数据准备,将model模型和图片以及lables参数都传输进入GPU训练

device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
model.to(device)

 for batch, (images,labels) in enumerate(train_data):
        images,labels = images.to(device),labels.to(device)
        

2.GPU溢出
CUDA error: device-side assert triggered
有两种可能性,一种是因为分类问题转化是从0开始,并不是从1,请一定要注意。
第二种是因为分类结果的数目(一定是一维张量)和labels类数没有对上

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值