pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法


Posted in Python onAugust 17, 2019

如下所示:

#获取模型权重
for k, v in model_2.state_dict().iteritems():
 print("Layer {}".format(k))
 print(v)
#获取模型权重
for layer in model_2.modules():
 if isinstance(layer, nn.Linear):
  print(layer.weight)
#将一个模型权重载入另一个模型
model = VGG(make_layers(cfg['E']), **kwargs)
if pretrained:
 load = torch.load('/home/huangqk/.torch/models/vgg19-dcbb9e9d.pth')
 load_state = {k: v for k, v in load.items() if k not in ['classifier.0.weight', 'classifier.0.bias', 'classifier.3.weight', 'classifier.3.bias', 'classifier.6.weight', 'classifier.6.bias']}
 model_state = model.state_dict()
 model_state.update(load_state)
 model.load_state_dict(model_state)
return model
# 对特定层注入hook
def hook_layers(model):
 def hook_function(module, inputs, outputs):
  recreate_image(inputs[0])

 print(model.features._modules)
 first_layer = list(model.features._modules.items())[0][1]
 first_layer.register_forward_hook(hook_function)
#获取层
x = someinput
for l in vgg.features.modules():
 x = l(x)
modulelist = list(vgg.features.modules())
for l in modulelist[:5]:
 x = l(x)
keep = x
for l in modulelist[5:]:
 x = l(x)
# 提取vgg模型的中间层输出
# coding:utf8
import torch
import torch.nn as nn
from torchvision.models import vgg16
from collections import namedtuple


class Vgg16(torch.nn.Module):
 def __init__(self):
  super(Vgg16, self).__init__()
  features = list(vgg16(pretrained=True).features)[:23]
  # features的第3,8,15,22层分别是: relu1_2,relu2_2,relu3_3,relu4_3
  self.features = nn.ModuleList(features).eval()

 def forward(self, x):
  results = []
  for ii, model in enumerate(self.features):
   x = model(x)
   if ii in {3, 8, 15, 22}:
    results.append(x)

  vgg_outputs = namedtuple("VggOutputs", ['relu1_2', 'relu2_2', 'relu3_3', 'relu4_3'])
  return vgg_outputs(*results)

以上这篇pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 生成不重复的随机数的代码
May 15 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
解决python测试opencv时imread导致的错误问题
Jan 26 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
Oct 12 Python
python3连接kafka模块pykafka生产者简单封装代码
Dec 23 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
Jan 06 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
matplotlib阶梯图的实现(step())
Mar 02 Python
python-for x in range的用法(注意要点、细节)
May 10 Python
关于PyTorch源码解读之torchvision.models
Aug 17 #Python
django项目用higcharts统计最近七天文章点击量
Aug 17 #Python
Django对models里的objects的使用详解
Aug 17 #Python
python3.6中@property装饰器的使用方法示例
Aug 17 #Python
对django的User模型和四种扩展/重写方法小结
Aug 17 #Python
python3.6编写的单元测试示例
Aug 17 #Python
python3 实现的对象与json相互转换操作示例
Aug 17 #Python
You might like
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
json+jQuery实现的无限级树形菜单效果代码
2015/08/27 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
python cookielib 登录人人网的实现代码
2012/12/19 Python
Python中Collection的使用小技巧
2014/08/18 Python
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
python实现狄克斯特拉算法
2019/01/17 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python面向对象魔法方法和单例模块代码实例
2020/03/25 Python
python神经网络编程实现手写数字识别
2020/05/27 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
美国马匹用品和骑马配件购物网站:Horse.com
2018/01/08 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
中职生自我鉴定范文
2013/10/03 职场文书
护士实习生自我鉴定范文
2013/12/10 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
争先创优演讲稿
2014/09/15 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
Python基础之条件语句详解
2021/06/16 Python
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
Python 中面向接口编程
2022/05/20 Python