深度学习总结(其中关于pytorch安装,非常详细!!!)

文章总结了多个IT技术问题,包括如何解决PyCharm在C盘占用空间大的问题,PyTorch在Windows系统的安装注意事项,查看GPU信息的NVIDIA-SMI命令,使用Python的glob模块处理路径,以及分布式训练中遇到的模型效果差异。此外,还讨论了模型保存和加载的正确方式,特别是在多卡训练中的问题。
摘要由CSDN通过智能技术生成

目录

小知识点总结

其他问题

1.一个关于c盘固执的问题 

2.一个关于pytorch安装的固执问题

3.关于服务器结束程序进程

4.关于python中的glob

5.关于分布式训练的问题

遇到的奇葩问题


小知识点总结

1.python find()  # 返回的是字符串中需要寻找的字符的位置

python find()  # 返回的是字符串中需要寻找的字符的位置

2.python 读取npy文件——np.load(name.npy)

np.save("a.npy", a)  

c = np.load( "a.npy" )

3.F.softmax(x, dim=0 or 1)——归一化,进行行列的归一化,dim=0,列和为1;dim=1,行和为1

4.x.flip(dims=(0,1...)——对x进行反转,dims=多少,便对哪一维进行反转

5.x.argmax() 返回某一维度的行列的最大行标或者列标。

6 python numpy array 数组维度转换(转维)

array_01 = np.arange(24)
# 输出:array_01是一个一维数组,数组元素24个
 
# reshape(n1,n2,...,ni)将数组转换成特定维度
# n1*n2*...*ni = 转换前数组元素的总数
array_02 = array_01.reshape(3, 2, 4)
 
# ravel将多维数组转换为一维
array_03 = array_02.ravel()
# 输出:array_03是一个一维数组,数组元素24个
 
# flatten,与ravel相同,区别在是否拷贝
array_04 = array_02.flatten()
# 输出:array_04是一个一维数组,数组元素24个
 
# transpose转换坐标系,transpose(1, 2, 0)括号里的值表示坐标系的索引号
array_04.transpose(1, 2, 0)

7.

其他问题

1.一个关于c盘固执的问题 

解决pycharm缓存在C盘占空间较大问题

 解决pycharm缓存文件过大问题_pycharm占用内存过大_star_function的博客-CSDN博客

2.一个关于pytorch安装的固执问题+window系统下nvidia查看相关信息

pip安装不按着官网的指令进行安装,安装的版本是CPU版本,执行代码会一直报错。

另外服务器与电脑跑出来的模型,比如.pth文件是有区别的,注意不能直接换着使用,如需使用需要进行修改。

2.1 pytorch安装参考(稳妥的安装)

Previous PyTorch Versions | PyTorch

2.2 参考python、pytorch、cuda之间对应的版本:

01 Pytorch和CUDA对应的版本及Pytorch和Python对应的版本及Python与Anaconda的对应关系_pytorch和cuda对应版本_爱吃面的猫的博客-CSDN博客

可能会有出入(因为时间比较久了),稳妥的办法是可以在官网自行确认(download.pytorch.org/whl/torch_stable.html

2.3 小编对应的版本:

电脑的显卡为:GeForce RTX 3090;

cuda 11.1;

python:3.8;

安装指令如下:

# CUDA 11.1
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html

安装过程中的问题有很多,存在3090不支持cuda低版本的情况,所以最后按照最高配来安装;

还有一个问题就是,过程中安装了一个torchinfo包,会导致torch环境异常,目前没有找到解决办法,小编后面规避了这个包,最后成功,能够顺利使用。

2.4 直接生成环境的requirements.txt安装文件
pip freeze > requirements.txt

参考:

python 项目自动生成环境配置文件requirements.txt_生成requirements.txt_凝眸伏笔的博客-CSDN博客

补充:pip conda 命令行安装慢的问题

采取手动安装的方法:参考下面的博客,写得很详细——

官网安装Python包太慢?教你三种Pytorch的下载安装方式,保证你再也不用出现Error_pytorch下载教程-CSDN博客

如何快速安装pytorch gpu版本,避免用官方命令下载导致速度过慢_torch gpu版本下载太慢-CSDN博客

3. windos中查看gpu信息,以及NVIDIA-SMI命令详解

windos中查看gpu信息,以及NVIDIA-SMI命令详解 - 程序员大本营 (pianshen.com)

4.关于服务器结束程序进程

Linux 的 Kill -9命令_葛伦儿的博客-CSDN博客

5.关于python中的glob

from glob import glob
# 错误的
output_gt='/45TB/yk/data/output/GT/'
output_gts = glob(output_gt)
print(output_gts[0])

# 正确的
output_gt='/45TB/yk/data/output/GT/*'
output_gts = glob(output_gt)
print(output_gts[0])

不加“*”返回的会是output路径,不能得到该路径下的内容(列表的形式)

6.关于分布式训练的问题

问题描述:使用服务器GPU训练语义分割模型,始终得不到理想的分割结果,但是用单卡能得到想要的结果,试了DP、DDP训练,训练过程中均能收敛,但是得不到结果,一度认为是训练函数没写对。

考虑出现这种情况的原因:

考虑1:模型的问题,但是训练的时候是收敛的

考虑2:模型过拟合,考虑用dropout

考虑3:模型输出后,没有归一化,使用sigmoid函数进行归一化

考虑4:打印出,输出的图像tentor数据,查看是否有问题(小编这里发现确实是有问题,那么问题就这之前,不会是输出之后的处理环节)

考虑5:多卡训练时的问题,能训练,应该没啥问题,还是一步一步检查了训练函数的过程,甚至还怀疑过在dataset处理时,是不是shuffle打乱了,图像和mask(标签)的对应关系,经检验不是这个原因,纯属自己多想了!

考虑6:上面的的原因都不是,那么是预测程序的原因,研究了一下模型的保存和加载发现问题就在这里。

解决问题用的DPP的模型保存与加载如下:

# 使用model.state_dict()保存模型
file_name = os.path.join(checkpoint_dir, 'model_epoch_{}.pth'.format(epoch))
# 保存了模型的结构和参数
torch.save({
     'epoch': epoch,
     'state_dict': model.state_dict(),
     'optim_dict': optimizer.state_dict(),
},
     file_name)


# 加载(单卡加载和多卡加载类似)
# 先初始化模型,因为保存时只保存了模型参数,没有保存模型整个结构
model = Unet_all()
model = torch.nn.DataParallel(model)  # 先把模型做并行化处理
model_path = 'model_path.pth'
checkpoint = torch.load(model_path)  # model_path是你保存的模型文件的位置
model_state_dict = checkpoint['state_dict']
model.load_state_dict(model_state_dict)

遇到的奇葩问题的解决方案

1.【解决方案】python的args指定重复 错误-argparse.ArgumentError: argument -y/--data: conflicting option string: -y_Clark-dj的博客-CSDN博客

2. 调用logging.info无输出_logger info 打印 不输出_naiyang12138的博客-CSDN博客

3. 在配置vscode环境的时候,不知道什么时候在之前anaconda的一个虚拟环境中添加了一个pyvenv.cfg文件,导致这个虚拟环境用不了了,出现了报错

Fatal Python error: Py_Initialize: unable to load the file system codec

Pycharm cannot set up a python SDK

百思不得其解,小编对比了其他虚拟环境,发现其他虚拟环境没得pyvenv.cfg这个文件,所以最后删了这个文件就正常了。

总结该问题解决方案:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值