pytorch 预训练层的使用方法

yipeiwu_com6年前Python基础

pytorch 预训练层的使用方法

将其他地方训练好的网络,用到新的网络里面

加载预训练网络

1.原先已经训练好一个网络 AutoEncoder_FC()

2.首先加载该网络,读取其存储的参数

3.设置一个参数集

cnnpre = AutoEncoder_FC()
cnnpre.load_state_dict(torch.load('autoencoder_FC.pkl')['state_dict'])
cnnpre_dict =cnnpre.state_dict()

加载新网络

1.设置新的网络

2.设置新网络参数集

cnn= AutoEncoder()
cnn_dict = cnn.state_dict()

更新新网络参数

1.将两个参数集比对,存在的网络参数保留

2.使用保留下的参数更新新网络参数集

3.加载新网络参数集到新网络中

cnnpre_dict = {k: v for k, v in cnnpre_dict.items() if k in cnn_dict}
cnn_dict.update(cnnpre_dict)
cnn.load_state_dict(cnn_dict)

以上这篇pytorch 预训练层的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

详解Python3中字符串中的数字提取方法

逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错误的解析,针对这个错误,博主已经给出解决办法,...

Python实现matplotlib显示中文的方法详解

Python实现matplotlib显示中文的方法详解

本文实例讲述了Python实现matplotlib显示中文的方法。分享给大家供大家参考,具体如下: 【注意】 可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两...

使用Python的SymPy库解决数学运算问题的方法

摘要:在学习与科研中,经常会遇到一些数学运算问题,使用计算机完成运算具有速度快和准确性高的优势。Python的Numpy包具有强大的科学运算功能,且具有其他许多主流科学计算语言不具备的免...

9种python web 程序的部署方式小结

主流的web server 一个巴掌就能数出来,apache,lighttpd,nginx,iis application,中文名叫做应用服务,就是你基于某个web framework写...

Python守护线程用法实例

本文实例讲述了Python守护线程用法。分享给大家供大家参考,具体如下: 如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。如果你的主...