The path of studying 1
目录
小知识点总结
其他问题
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安装的固执问题
pip安装不按着官网的指令进行安装,安装的版本是CPU版本,执行代码会一直报错。
另外服务器与电脑跑出来的模型,比如.pth文件是有区别的,注意不能直接换着使用,如需使用需要进行修改。
pytorch安装参考(稳妥的安装)
Previous PyTorch Versions | PyTorch
3.关于服务器结束程序进程
4.关于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路径,不能得到该路径下的内容(列表的形式)
5.关于分布式训练的问题
问题描述:使用服务器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博客