专栏首页marsggboPytorch 各种奇葩古怪的使用方法

Pytorch 各种奇葩古怪的使用方法

不间断更新。。。

增减layer

增加layer

增加layer很方便,可以使用model.add_module('layer name', layer)

删减layer

删减layer很少用的到,之所以我会有这么一个需求,是因为我需要使用vgg做迁移学习,而且需要修改最后的输出。

而vgg由两个部分组成:featuresclassifier,这两个部分都是torch.nn.Sequential,所以不能单独对其中某一层做修改。

而如果对整个Sequential做修改,那么这个模型的参数会被初始化,而我又需要保留这些参数,所以才想到是否有办法把最后一层fc删掉,重新再填加一个不就行了?具体方法如下:

以vgg16为例,假设我们现在只需要对classifier的最后一层全连接层的输出做修改:

model = models.vgg16(pretrained=True)

先看一下未做修改之前的classifier的参数:

  • 截取要修改的layer之前的网络
removed = list(model.classifier.children())[:-1]
  • 添加fc层
model.add_module('fc', torch.nn.Linear(4096, out_num)) # out_num是你希望输出的数量 

此时我们看一下model以及classifier的参数有什么变化:

这达到了我预期的效果。

MARSGGBO♥原创 2018-4-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Andrew Ng机器学习课程笔记--week11(图像识别&总结划重点)

    一、内容概要 Photo OCR Problem Decription and pipeline(问题描述和流程图) Sliding Windows(滑动窗口...

    marsggbo
  • Detectron2代码阅读笔记-(二)

    上图画出了detectron2文件夹中的三个子文件夹(tools,config,engine)之间的关系。那么剩下的文件夹又是如何起作用的呢?

    marsggbo
  • 【GAMES101-现代计算机图形学课程笔记】Lecture 07 Shading 1 (Illumination, Shading and Graphics Pipeline)

    真实世界中的物体之间相对于相机是有远近关系的,那么在2D平面上如何反应物体的先后关系呢?一个常用的方法是Painter's Algorithm (画家算法),即...

    marsggbo
  • CAGradientLayer颜色渐变器

    下面是我用上面的代码实现的最终效果,startPoint是(0,0),endPoint是(1,1)。

    周希
  • 数据猿专访 | 力美科技CTO陈昱:大数据与DSP的融合之道

    <数据猿导读> DSP究竟靠不靠谱?DSP的未来究竟在哪?数据猿为此专访了力美科技CTO陈昱,让我们看看他是怎么说的。 ? 来源:数据猿 记者:大文 今年4月,...

    数据猿
  • circos 可视化手册-tile 篇

    tile用来展示基因组上区域的分布,和之前介绍过的highlight不同,这些区域在图中并不是位于同一层的。为了避免不同区域之间的重叠,tile会将有重叠的区域...

    生信修炼手册
  • 如何解决企业远程办公视频通话系统EasyRTC,用WinSCP远程上传文件15秒无通信?

    关于EasyRTC,我们也做了新的升级,虽然比其他视频平台的更新慢了些,但好在也开始投入测试了。EasyRTC在EasyRTC开发部署过程中,经常使用WinSC...

    EasyNVR
  • EDR获公安部销售许可证书

    EDR将是安全的主战场 2016年的RSA大会后,以前颇为冷门的终端安全,突然火爆起来,这其实是一种必然的趋势,是一种安全技术的回归。 一个安全事件,无论在网络...

    安恒信息
  • 人脸识别 | 卷积深度置信网络工具箱的使用

    本文主要以ORL_64x64人脸数据库识别为例,介绍如何使用基于matlab的CDBN工具箱。至于卷积深度置信网络(CDBN,Convolutional Dee...

    用户1332428
  • TCP/IP五层协议体系结构的各层功能

    软测小生

扫码关注云+社区

领取腾讯云代金券