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 29 Python
Python过滤txt文件内重复内容的方法
Oct 21 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
Python WEB应用部署的实现方法
Jan 02 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
python和c语言的主要区别总结
Jul 07 Python
python集合的创建、添加及删除操作示例
Oct 08 Python
python爬虫模拟浏览器的两种方法实例分析
Dec 09 Python
浅谈pytorch中的BN层的注意事项
Jun 23 Python
python判断一个变量是否已经设置的方法
Aug 13 Python
Python Map 函数的使用
Aug 28 Python
详解Python中的进程和线程
Jun 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
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
jQuery 的 ready()的纯js替代方法
2016/11/20 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
vue 动态表单开发方法案例详解
2019/12/02 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
python冒泡排序简单实现方法
2015/07/09 Python
简单上手Python中装饰器的使用
2015/07/12 Python
python文件与目录操作实例详解
2016/02/22 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
高中生物教学反思
2014/02/05 职场文书
数学教研活动总结
2014/07/02 职场文书
工作失职检讨书500字
2014/10/17 职场文书
感谢信格式范文
2015/01/22 职场文书
工程主管竞聘书
2015/09/15 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python