pytorch神经网络之卷积层与全连接层参数的设置方法


Posted in Python onAugust 18, 2019

当使用pytorch写网络结构的时候,本人发现在卷积层与第一个全连接层的全连接层的input_features不知道该写多少?一开始本人的做法是对着pytorch官网的公式推,但是总是算错。

后来发现,写完卷积层后可以根据模拟神经网络的前向传播得出这个。

全连接层的input_features是多少。首先来看一下这个简单的网络。这个卷积的Sequential本人就不再??铝耍?衷诳?n.Linear(???, 4096)这个全连接层的第一个参数该为多少呢?

请看下文详解。

class AlexNet(nn.Module):
  def __init__(self):
    super(AlexNet, self).__init__()

    self.conv = nn.Sequential(
      nn.Conv2d(3, 96, kernel_size=11, stride=4),
      nn.ReLU(inplace=True),
      nn.MaxPool2d(kernel_size=3, stride=2),

      nn.Conv2d(96, 256, kernel_size=5, padding=2),
      nn.ReLU(inplace=True),
      nn.MaxPool2d(kernel_size=3, stride=2),

      nn.Conv2d(256, 384, kernel_size=3, padding=1),
      nn.ReLU(inplace=True),
      nn.Conv2d(384, 384, kernel_size=3, padding=1),
      nn.ReLU(inplace=True),
      nn.Conv2d(384, 256, kernel_size=3, padding=1),
      nn.ReLU(inplace=True),
      nn.MaxPool2d(kernel_size=3, stride=2)
    )

    self.fc = nn.Sequential(
      nn.Linear(???, 4096)
      ......
      ......
    )

首先,我们先把forward写一下:

def forward(self, x):
    x = self.conv(x)
    print x.size()

就写到这里就可以了。其次,我们初始化一下网络,随机一个输入:

import torch
from Alexnet.AlexNet import *
from torch.autograd import Variable

if __name__ == '__main__':
  net = AlexNet()

  data_input = Variable(torch.randn([1, 3, 96, 96])) # 这里假设输入图片是96x96
  print data_input.size()
  net(data_input)

结果如下:

(1L, 3L, 96L, 96L)
(1L, 256L, 1L, 1L)

显而易见,咱们这个全连接层的input_features为256。

以上这篇pytorch神经网络之卷积层与全连接层参数的设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中精确输出JSON浮点数的方法
Apr 18 Python
Python中的列表知识点汇总
Apr 14 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 Python
Python实现基本数据结构中队列的操作方法示例
Dec 04 Python
浅谈Python中range和xrange的区别
Dec 20 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
python生成带有表格的图片实例
Feb 03 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
在python中使用nohup命令说明
Apr 16 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
Python二元算术运算常用方法解析
Sep 15 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 #Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 #Python
pytorch 自定义数据集加载方法
Aug 18 #Python
PyTorch的Optimizer训练工具的实现
Aug 18 #Python
Pytorch反向求导更新网络参数的方法
Aug 17 #Python
pytorch 模型可视化的例子
Aug 17 #Python
pytorch 输出中间层特征的实例
Aug 17 #Python
You might like
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
2020/11/10 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
Js之软键盘实现(js源码)
2007/01/30 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
jquery 快速回到页首的方法
2013/12/05 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
一个检测表单数据的JavaScript实例
2014/10/31 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
图片上传之FileAPI与NodeJs
2017/01/24 NodeJs
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
vue项目中使用百度地图的方法
2018/06/08 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
javascript实现计算指定范围内的质数示例
2018/12/29 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
[47:42]完美世界DOTA2联赛PWL S2 GXR vs Ink 第一场 11.19
2020/11/20 DOTA
Python创建模块及模块导入的方法
2015/05/27 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
python障碍式期权定价公式
2019/07/19 Python
python3 enum模块的应用实例详解
2019/08/12 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
python中加背景音乐如何操作
2020/07/19 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
Canvas与Image互相转换示例代码
2013/08/09 HTML / CSS
int *p=NULL和*p= NULL有什么区别
2014/10/23 面试题
销售实习自我鉴定
2013/12/07 职场文书
中学生家长评语大全
2014/04/16 职场文书
暂停营业通知
2015/04/25 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js