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实现实例
Apr 26 Python
Python yield 使用浅析
May 28 Python
Python在线运行代码助手
Jul 15 Python
python实现二分查找算法
Sep 21 Python
python 设置文件编码格式的实现方法
Dec 21 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
在Python中构建增广矩阵的实现方法
Jul 01 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
python 5个实用的技巧
Sep 27 Python
如何用python绘制雷达图
Apr 24 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
2016/01/14 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
python编写弹球游戏的实现代码
2018/03/12 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
python实现图像全景拼接
2020/03/27 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
生产副总岗位职责
2013/11/28 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
公司总经理岗位职责范本
2014/08/15 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
2014年幼儿园园长工作总结
2014/12/17 职场文书
实习单位推荐信
2015/03/27 职场文书
酒店客房服务员岗位职责
2015/04/09 职场文书
党员个人承诺书
2015/04/27 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python