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字典序问题实例
Sep 26 Python
python爬虫使用cookie登录详解
Dec 27 Python
python 自动去除空行的实例
Jul 24 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
Jul 23 Python
python监控nginx端口和进程状态
Sep 06 Python
Django实现文件上传下载
Oct 06 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python with (as)语句实例详解
Feb 04 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
python把一个字符串切开的实例方法
Sep 27 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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实现163邮箱自动发送邮件
2016/03/29 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
vuex入门最详细整理
2020/03/04 Javascript
Vue+Element-U实现分页显示效果
2020/11/15 Javascript
python分析网页上所有超链接的方法
2015/05/08 Python
Python判断字符串与大小写转换
2015/06/08 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
python logging设置level失败的解决方法
2020/02/19 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
python实现简单猜单词游戏
2020/12/24 Python
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
html5弹跳球示例代码
2013/07/23 HTML / CSS
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
给水工程专业毕业生自荐信
2014/01/28 职场文书
政府门卫岗位职责
2014/04/29 职场文书
公司募捐倡议书
2014/05/14 职场文书
教师教育心得体会
2016/01/19 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
Mysql数据库group by原理详解
2022/07/07 MySQL
TS 类型兼容教程示例详解
2022/09/23 Javascript