Pytorch资料总结

pytorch官方中文文档

https://ptorch.com/docs/1/torch-nn

 

pytorch基础教程

https://www.jianshu.com/p/79aebbc126e6

 

pytorch常用代码段集合整理

https://blog.csdn.net/zwqjoy/article/details/90258373

 

Pytorch数据读取3种方式

超赞博客!

https://www.cnblogs.com/kk17/p/10105862.html

 

Pytorch的super类

https://blog.csdn.net/shiheyingzhe/article/details/83051471

super类的作用是继承的时候,调用含super的各个的基类__init__函数,如果不使用super,就不会调用这些类的__init__函数,除非显式声明。而且使用super可以避免基类被重复调用。

super的典型用法:
在具有单一继承结构的类层级中,super可以指代父类而不需要显式的声明,这对更改父类的时候是有帮助的;
在动态执行环境中支持多继承协作,这个功能是python独有的,使得有可能解决菱形图问题,指多个基类实现相同的方法。

 

PyTorch 可视化工具 Visdom 介绍

https://www.pytorchtutorial.com/pytorch-visdom/

https://blog.csdn.net/nanxiaoting/article/details/81395579

visdom 可以实现远程数据的可视化,对科学实验有很大帮助。我们可以远程的发送图片和数据,并进行在ui界面显示出来,检查实验结果,或者debug

1.安装visdom:pip install visdom

2.在shell下,输入: python -m visdom.server,则开启web服务。

3.在浏览器输入:http://localhost:8097   ,即跳出界面。

 

pytorch 加载(.pth)格式的模型

https://blog.csdn.net/u014264373/article/details/85332181

https://www.cnblogs.com/qinduanyinghua/p/9311410.html

1、保存和加载整个模型(.pkl)

torch.save(model_object, ‘model.pkl’)

model = torch.load(‘model.pkl’)

2、仅保存和加载模型参数(推荐使用)

torch.save(model_object.state_dict(), ‘params.pkl’)

model_object.load_state_dict(torch.load(‘params.pkl’))

3、pytorch保存数据的格式为.t7文件或者.pth文件,或者.pkl格式,t7文件是沿用torch7中读取模型权重的方式

 

Pytorch格式转换

Numpy转Tensor

B=torch.from_numpy(a)

 

Tensor转numpy

B=a.numpy()

 

转list

B=a.tolist()

 

pytorch dataset dataloader

https://blog.csdn.net/zw__chen/article/details/82806900

 

pytorch预训练模型下载

http://blog.sciencenet.cn/home.php?mod=space&uid=538909&do=blog&id=1127538

 

pytorch预训练模型相关问题:

https://blog.csdn.net/chanbo8205/article/details/89923453

载入变量和权重组成的字典:torch.load

pretrain_dict=torch.load(r'../pretrained_model/se_resnext101_32x4d-3b2fe3d8.pth')

载入新的模型self.basemodel = tvm.resnet50(pretrained=False)

获取模型的变量和权重组成的字典:basemodel.state_dict()

model_dict = self.basemodel.state_dict()

 

名称不同的时候更换dict中的变量名:

方法1:

            for k, v in pretrained_dict.items():

                print("pretrained k,v:",k,v)

                if not k.find("basemodel") == -1: #if find pretrain model name, delete it

                    name = k[(len("basemodel")+1):]   # remove `module.`

                    model_dict[name] = v

                else:

                    name = k

                print("new_name:",name)

方法2:

            pretrained_dict = {k[(len("basemodel")+1):]: v for k, v in pretrained_dict.items() if k[(len("basemodel")+1):] in model_dict}  #去除上次预训练时模型的变量前面添加的”basemodel”字样

 

查看变量和权重字典中的某一个:

            #-----------------------------------------------------

            self.basemodel = tvm.resnet50(pretrained=False)

            count=0

            model_dict=torch.load(r'../pretrained_model/resnet50-19c8e357.pth')

            for k, v in model_dict.items():

                count+=1

                if count==10:               

                    print("resnet50_dict resnet50 k,v:",k,v)

            #-----------------------------------------------------

            count=0

            for k, v in pretrained_dict.items():

                count+=1

                if count==10:               

                    print("pretrained_dict resnet50 k,v:",k,v)

            #-----------------------------------------------------

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值