目录
小知识点总结
其他问题
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博客
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博客
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这个文件,所以最后删了这个文件就正常了。文章来源:https://www.toymoban.com/news/detail-420742.html
总结该问题解决方案:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized-CSDN博客https://blog.csdn.net/peacefairy/article/details/110528012文章来源地址https://www.toymoban.com/news/detail-420742.html
到了这里,关于The path of studying 1的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!