#CUDA11.3==1.8.1==0.9.1==0.8.1=11.3-c-c-如何保存加载模型及.pt,.pth,.pkl的区别保存模型
#方法一.save(.(),'.pth')#只保存模型参数,不保存模型#方法二.save(,'.pth')#保存模型参数以及模型加载模型
#方法一.(.load('.pth'))#需要先进行网络模型的类定义#方法二=.load('.pth').pt,.pth,.pkl的区别常见保存模型的后缀名为.pt,.pth.pkl文件,其实这些文件没什么不同,在官方的文档代码里,有用.pt的,也有用.pth的。一般惯例是使用.pth,我的理解是这个只是一个后缀名,用其它的也都行,比如.等等。现在也可以保存相应的.pth.tar文件,这样.load的时候需要load个.pth.tar模型当然也可以直接改一下后缀名为.pth只导入部分模型参数
path='xxx.pth'=Net()=t.load(path)=.()={k:vfork,vin.()ifkin.keys()}(.keys())#(['w','.','.bias','.','.bias']).().()中和type的区别是,如.和.,而type是一个的type如.,.,所以可以有下面两种形式
x=.([[1],[2],[3]],=.)x=.([[1],[2],[3]]).type(.)中和的区别【】和的区别_玄云飘风的博客-CSDN博客和如何使用搭建一个简单的模型未完成中使用和工作流程:实例讲解具体工作流程_缦旋律的博客-程序员信息网-程序员信息网
fromin():foridx,datain(zip((),))(data)使用同时加载多个.的博客-CSDN博客多个
=.()=.load('.pth')=.load('.pth')=list(.keys())i=0forkey,in.():[key]=[[i]]i=i+1.save(,'.pth')3、进行多GPU并行训练
=.('cuda'if.cuda.()else'cpu')=(=True,=)=nn.(,=[0,1])=.to().()#训练的时候=0,1-u..log21将并行后的网络打印出来就会发现的的key值加上了“”4、中状态字典及模型参数5、模型参数赋值保存加载模型中实现只导入部分模型参数的方式/张生荣
def(seed=2018).seed(seed)os.['']=str(seed)np..seed(seed).(seed).cuda.(seed)...=(seed).(seed)os.['']=str(seed).cuda.(seed).cuda.(seed)np..seed(seed).seed(seed)...=...=...=(20)7、小技巧的一些总结8、数据预处理、正则化9、使用实现切换cuda、版本10、中的学习率调整函数中的学习率调整函数-慢行厚积-博客园
([[[[1.,2.],[3.,4.]]]])([[[[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]]]])Y=F.(X,C,=2,=0)([[[[1.,2.,5.,4.,6.],[4.,5.,14.,10.,12.],[10.,14.,36.,24.,30.],[12.,15.,34.,20.,24.],[21.,24.,55.,32.,36.]]]])中.nn.函数详解的博客-CSDN博客
-:如果模型的输出有不需要进行反向传播的,此参数需要设置为True;若你的代码运行后卡住不动,基本上就是该参数的问题。-:该参数默认为True,设置为True时,在模型执行之前,gpu0会把中的参数值全部覆盖到别的gpu上。所以是因为参数被覆盖就会报上面的错误,解决方法:=nn..(,=[args.],=,=True)--基于单机多GPU并行之的博客-CSDN博客31、判断并替换nan.函数的用法()函数有三个输入值,第一个是判断条件,第二个是符合条件的设置值,第三个是不符合条件的设置值。
.(,x,y)→
#判断是否有nan#.any(.(a))#如何有nan则进行相应替换as=.([[0,1,np.nan],[2,np.nan,3],[4,4,4]])a=.(.(a),.(a,0),a)#输出([[0.,1.,0.],[2.,0.,3.],[4.,4.,4.]])进行翻转使用.flip(,dim)对输入的dim维度进行翻转,如果dim=[2,3]就是对第二维和第三维同时进行翻转,有多少个维度就翻转多少个维度
C=.([[[[1,2,3],[4,5,6],[7,8,9]]]],=.)(.flip(C,[3]))#输出([[[[3.,2.,1.],[6.,5.,4.],[9.,8.,7.]]]])C=.([[[[1,2,3],[4,5,6],[7,8,9]]]],=.)(.flip(C,[2,3]))#输出([[[[9.,8.,7.],[6.,5.,4.],[3.,2.,1.]]]])中和的区别.函数返回张量在某一个维度扩展之后的张量,就是将张量广播到新形状。函数对返回的张量不会分配新内存,即在原始张量上返回只读视图,返回的张量内存是不连续的。近似于中的函数的作用。如果希望张量内存连续,可以调用函数。
x=.([[1],[2],[3]]).type(.)(x.size())x=x.(3,4)(x)x=x.(-1,4)(x)a=.([[1,2,3],[4,5,6]]).type(.)a=a.(4,3)(a).Size([3,1])([[1.,1.,1.,1.],[2.,2.,2.,2.],[3.,3.,3.,3.]])([[1.,1.,1.,1.],[2.,2.,2.,2.],[3.,3.,3.,3.]])(mostcalllast):File"test.py",line95,ina=a.(4,3):Thesizeofthe(4)mustthesize(2)atnon-0.:[4,3].:[2,3].文档:..-1.10.0.用法近似np.tile,就是将原矩阵横向、纵向地复制。与.不同的是.返回的张量在内存中是连续的。
x=.([[1],[2],[3]]).type(.)x=x.(4,2)(x)a=.([[1,2,3],[4,5,6]]).type(.)(a)(a.)a=a.(4,2)(a)(a.size())([[1.,2.,3.],[4.,5.,6.]]).Size([2,3])([[1.,2.,3.,1.,2.,3.],[4.,5.,6.,4.,5.,6.],[1.,2.,3.,1.,2.,3.],[4.,5.,6.,4.,5.,6.],[1.,2.,3.,1.,2.,3.],[4.,5.,6.,4.,5.,6.],[1.,2.,3.,1.,2.,3.],[4.,5.,6.,4.,5.,6.]]).Size([8,6])中增加某个维度以及索引后的维度
a=.((2,2,2,2))b=a.(0)(b.)#.Size([1,2,2,2,2])c=a[0](c.)#c的维度为3维.Size([2,2,2])c=a[0:1](c.)#c的维度维4维.Size([1,2,2,2])关于中的上采样(待整理)上采样和(转)-向前奔跑的少年-博客园
root/dog/xxx.pngroot/dog/xxy.pngroot/dog/xxz.pngroot/cat/123.pngroot/cat/.pngroot/cat/.pngdata=..(root="rootpath",),使用后data有以下几个成员变量:
self.-用一个list保存类名self.-类名对应的索引self.imgs-保存(img-path,)的list举例:
.as=dset.('./data/')#没有,先看看取得的原始图像数据(.)#根据分的文件夹的名字来确定的类别(.)#按顺序为这些类别定义索引为0,1...(.imgs)#返回从所有文件夹中得到的图片的路径以及其类别['cat','dog']{'cat':0,'dog':1}[('./data//cat/cat..jpg',0),('./data//cat/cat..jpg',0),('./data//cat/cat..jpg',0),('./data//cat/cat..jpg',0),('./data//dog/dog..jpg',1),('./data//dog/dog..jpg',1),('./data//dog/dog..jpg',1),('./data//dog/dog..jpg',1)]查看得到的图片数据:#从返回成果可见得到的数据仍是PIL对象([0])([0][0])([0][1])#得到的是类别0,即cat返回:(PIL..mode=RGBsize=at,0)PIL..mode=RGBsize=at模型中的使用定义和都只需要传入即可。也不需要将其转成gpu。这是因为,当网络进行.cuda()时候,会自动将里面的层的参数,等转换成相应的GPU上。self.可以将注册成,在中使用self.,而不是self.网络存储时也会将存下,当网络load模型时,会将存储的模型的也进行赋值。的更新在中,.step只能更新nn.类型的参数。模型中需要进行更新的参数注册为,不需要进行更新的参数注册为模型保存的参数是.()返回的模型进行设备移动时,模型中注册的参数(和)会同时进行移动模型中的与
def():=sum(p.()forpin.())=sum(p.()forpin.()ifp.){'':,'':}或者是使用第三方工具
from.as=.()stat(,(3,224,224))或者pip.thop=()=.(1,3,224,224),=(,=(,))(,)查看模型参数并计算模型参数量与可训练参数量的博客-CSDN博客_查看模型参数量
from..#加载日志数据ea=.('logs')#相应的文件路径ea.()(ea..Keys())=ea..('/')(len())([(i.step,i.)foriin])topk函数使用中的topk函数详解_咆哮的阿杰的博客-CSDN博客函数损失函数交叉熵损失函数一文搞懂交叉熵损失--博客园
【下载地址】magnet推荐使用utorrent、BitComet等bt客户端下载
为了防止迅雷扫版权风险,本片迅雷链接,在2个小时后自动放出!
●本栏目本周最新资源列表: ·哄女友讲的睡前小故事精选150篇 ·动画片海贼王航海王分集剧情介绍301 ·充满想象力大师手绘动漫人物图片 ·大一画成这样,可以往自由插画师发展吗 ·超人漫画app ·第一动画乐园 ·东莞一女孩遭多人暴力侵害 ·黑兽1 ·超唯美的古风漫画推荐2023 ·陈凯琳真不愧是甜女子神,黑色方框丝袜搭配翻毛牛仔裤秒变靓女! | ●本栏目本周最热门资源列表: ·儿童动画片大全 ·活力美女的暗香诱惑(图) ·火影忍者 ·电视剧奶娘母子情分集剧情介绍1 ·动漫重要题材 ·大英雄狄青第52集 ·戴拿奥特曼普通话版 ·刺客伍六七漫画白其表现超强,四种武器配合,飞龙被重 ·韩剧天空之城全集在线观看 ·迪士尼动画电影百年精选珍藏版16DVD共109集+ |