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之集成开发环境(IDE)
Sep 12 Python
python判断字符串是否纯数字的方法
Nov 19 Python
Pyhton中单行和多行注释的使用方法及规范
Oct 11 Python
python实现发送邮件功能
Jul 22 Python
使用Python监控文件内容变化代码实例
Jun 04 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
Python之变量类型和if判断方式
May 05 Python
Python urllib库如何添加headers过程解析
Oct 05 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
一个PHP并发访问实例代码
2012/09/06 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
PHP打印输出函数汇总
2016/08/28 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
php微信开发之谷歌测距
2018/06/14 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
禁止IE用右键的JS代码
2013/12/30 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
BootStrap中
2016/12/10 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
python实现图片转字符画的完整代码
2021/02/21 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
体育老师的教学自我评价分享
2013/11/19 职场文书
岗位职责范本
2013/11/23 职场文书
超市优秀员工获奖感言
2014/08/15 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
2015年毕业实习工作总结
2015/05/29 职场文书
休假证明书
2015/06/24 职场文书
那些美到让人窒息的诗句,值得你收藏!
2019/08/20 职场文书
有关花店创业的计划书模板
2019/08/27 职场文书