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查询阿里巴巴关键字排名的方法
Jul 08 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
正确理解Python中if __name__ == '__main__'
Jan 24 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
基于Python实现股票收益率分析
Apr 02 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
Js 中debug方式
2010/02/07 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)
2020/04/03 Javascript
python实现批量修改文件名代码
2017/09/10 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
基于Python实现简单学生管理系统
2020/07/24 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
美国最古老的精致书写工具制造商:A.T. Cross(高仕)
2018/01/30 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
村级换届选举方案
2014/05/10 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
党的群众路线剖析材料
2014/10/09 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS
SpringCloud超详细讲解Feign声明式服务调用
2022/06/21 Java/Android