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中split方法用法分析
Apr 17 Python
python解决Fedora解压zip时中文乱码的方法
Sep 18 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
python中树与树的表示知识点总结
Sep 14 Python
python清空命令行方式
Jan 13 Python
python 画图 图例自由定义方式
Apr 17 Python
Python趣味入门教程之循环语句while
Aug 26 Python
python面向对象版学生信息管理系统
Jun 24 Python
Python&Matlab实现灰狼优化算法的示例代码
Mar 21 Python
Python中的socket网络模块介绍
Jul 23 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
php图片的裁剪与缩放生成符合需求的缩略图
2013/01/11 PHP
php实现邮件发送并带有附件
2014/01/24 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
Gird事件机制初级读本
2007/03/10 Javascript
Javascript在IE或Firefox下获取鼠标位置的代码
2009/12/18 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
Python的Django框架中的Context使用
2015/07/15 Python
python 日志增量抓取实现方法
2018/04/28 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
python递归全排列实现方法
2018/08/18 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
建筑安全生产目标责任书
2014/07/23 职场文书
青年志愿者活动方案
2014/08/17 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
公司2014年度工作总结
2014/12/10 职场文书
2014年变电站工作总结
2014/12/19 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL