Pytorch 抽取vgg各层并进行定制化处理的方法


Posted in Python onAugust 20, 2019

工作中有时候需要对vgg进行定制化处理,比如有些时候需要借助于vgg的层结构,但是需要使用的是2 channels输入,等等需求,这时候可以使用vgg的原始结构用class重写一遍,但是这样的方式比较慢,并且容易出错,下面给出一种比较简单的方式

def define_vgg(vgg,input_channels,endlayer,use_maxpool=False): 
  vgg_ad = copy.deepcopy(vgg)
  model = nn.Sequential()
  i = 0
  for layer in list(vgg_ad.features):
    if i > endlayer:
      break
    if isinstance(layer, nn.Conv2d) and i is 0:
      name = "conv_" + str(i)
      layer = nn.Conv2d(input_channels,
               layer.out_channels,
               layer.kernel_size,
               stride = layer.stride,
               padding=layer.padding)
      model.add_module(name, layer)
    if isinstance(layer, nn.Conv2d):
      name = "conv_" + str(i)
      model.add_module(name, layer)
 
    if isinstance(layer, nn.ReLU):
      name = "leakyrelu_" + str(i)
      layer = nn.LeakyReLU(inplace=True) 
      model.add_module(name, layer)
 
    if isinstance(layer, nn.MaxPool2d):
      name = "pool_" + str(i)
      if use_maxpool:
        model.add_module(name, layer)
      else:
        avgpool = nn.AvgPool2d(kernel_size=layer.kernel_size, stride=layer.stride, padding=layer.padding)
        model.add_module(name, avgpool)
    i += 1
  return model

函数输入项中的vgg 是直接使用的import torchvision.models.vgg16 传入的是vgg16 非预训练版本。end_layer 是需要提取的层数,这里使用了vgg.features 是指仅仅在vgg.features 上进行层的提取;也可以根据定制在classifier上进行提取。

下面是我的一个提取前7层的示例,可以使用pyCharm evaluate 上面函数返回的model,可以看到这个示例的情况,这里我的定制条件是输入通道为2 ,需要提取前7层,并且将ReLu更换为LeakyRelu。

Sequential(
 (conv_0): Conv2d(2, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
 (leakyrelu_1): LeakyReLU(negative_slope=0.01, inplace)
 (conv_2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
 (leakyrelu_3): LeakyReLU(negative_slope=0.01, inplace)
 (pool_4): AvgPool2d(kernel_size=2, stride=2, padding=0)
 (conv_5): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
 (leakyrelu_6): LeakyReLU(negative_slope=0.01, inplace)
 (conv_7): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
)

以上这篇Pytorch 抽取vgg各层并进行定制化处理的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python实现一个简单的项目监控
Mar 31 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
Python判断两个对象相等的原理
Dec 12 Python
Python实现可自定义大小的截屏功能
Jan 20 Python
python监控进程脚本
Apr 12 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 Python
django实现模板中的字符串文字和自动转义
Mar 31 Python
Python 无限级分类树状结构生成算法的实现
Jan 21 Python
详解python网络进程
Jun 15 Python
Python Pandas常用函数方法总结
Jun 15 Python
python实现抠图给证件照换背景源码
Aug 20 #Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 #Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 #Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 #Python
python实现证件照换底功能
Aug 20 #Python
pytorch多进程加速及代码优化方法
Aug 19 #Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 #Python
You might like
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
python一键升级所有pip package的方法
2017/01/16 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
总结python中pass的作用
2019/02/27 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Django视图扩展类知识点详解
2019/10/25 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
博士学位自我鉴定范文
2013/12/26 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
应聘文员自荐信范文
2014/03/11 职场文书
团日活动总结书
2014/05/08 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
简易版租房协议书范本
2014/10/13 职场文书
秋季运动会加油词
2015/07/18 职场文书
入党申请书怎么写?
2019/06/21 职场文书
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS