vgg16网络结构:

源码:

import torch
import torch.nn as nn
from torch.autograd import Variablecfg = {'vgg16':[64, 64, 'M', 128, 128, 'M', 256, 256, 256, 'M', 512, 512, 512, 'M', 512, 512, 512, 'M']}class VGG16(nn.Module):def __init__(self):super(VGG16,self).__init__()self.features = self._make_layers(cfg['vgg16'])print(self.features)self.classifier = nn.Linear(512,10) #主要是实现CIFAR10,不同的任务全连接的结构不同def forward(self, x):x = self.features(x)x = x.view(x.size(0),-1)x = self.classifier(x)return xdef _make_layers(self,cfg):layers = []in_channels = 3for x in cfg:  #遍历listif x == 'M':layers += [nn.MaxPool2d(2,2)]else:layers += [nn.Conv2d(in_channels,x,3,1,1),nn.BatchNorm2d(x),nn.ReLU(inplace=True)] ##inplace为True,将会改变输入的数据 ,# 否则不会改变原输入,只会产生新的输出in_channels = x#print(layers)return nn.Sequential(*layers)def main():vgg16 = VGG16()if __name__ == '__main__':main()

输出:

Sequential((0): Conv2d(3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(2): ReLU(inplace)(3): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(4): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(5): ReLU(inplace)(6): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(7): Conv2d(64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(8): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(9): ReLU(inplace)(10): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(11): BatchNorm2d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(12): ReLU(inplace)(13): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(14): Conv2d(128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(15): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(16): ReLU(inplace)(17): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(18): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(19): ReLU(inplace)(20): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(21): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(22): ReLU(inplace)(23): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(24): Conv2d(256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(25): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(26): ReLU(inplace)(27): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(28): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(29): ReLU(inplace)(30): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(31): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(32): ReLU(inplace)(33): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)(34): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(35): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(36): ReLU(inplace)(37): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(38): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(39): ReLU(inplace)(40): Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(41): BatchNorm2d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)(42): ReLU(inplace)(43): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
)

可以看到输出与网络结构图一一对应

【PyTorch】PyTorch搭建基础VGG16网络相关推荐

  1. 使用eNSP搭建基础IP网络 和 单交换机与VLAN分布实验(二层+三层)

    Hello, 好久不见.上学期因为个人原因一直没有更新(主要原因是上学期小小的摆了一下),这个学期我会继续在平台上分享我的学习经验.主要包括网络互联以及攻防的内容,也可能会更新深度学习相关的东西,主要 ...

  2. Pytorch:自定义构建VGG16网络

      有的时候会遇上这样的问题,需要使用一个神经网络但是需要自定义,增加或者删减某层,这个时候没有办法使用pytorch自带的model来进行训练,这时怎么办呢?于是我研究出来了一种简单可行的办法供大家 ...

  3. 断点续训 Pytorch 和 Tensorflow 框架 VGG16 模型 猫狗大战 鸢尾花分类

    神经网络训练模型的过程中,如果程序突然中断,竹篮打水一场空? >>>断点续训来解决! 目录 (1)Pytorch框架的断点续训(猫狗大战) (2)Tensorflow框架的断点续训( ...

  4. Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本)

    Faster-RCNN.pytorch的搭建.使用过程详解 引言 faster-rcnn pytorch代码下载 faster-rcnn pytorch配置过程 faster-rcnn pytorch ...

  5. Pytorch快速搭建Alexnet实现手写英文字母识别+PyQt实现鼠标绘图

    Pytorch快速搭建Alexnet实现手写英文字母识别+PyQt实现鼠标绘图 前言 一.案例要求 二.训练数据准备 1.下载手写英文字母数据集 2.构建自己的数据集 三.AlexNet实现 1.Al ...

  6. Pytorch 含并行连结的网络 GoogLeNet

    Pytorch 含并行连结的网络 GoogLeNet 0. 环境介绍 环境使用 Kaggle 里免费建立的 Notebook 教程使用李沐老师的 动手学深度学习 网站和 视频讲解 小技巧:当遇到函数看 ...

  7. 使用PyTorch构建GAN生成对抗网络源码(详细步骤讲解+注释版)02 人脸识别 上

    文章目录 1 数据集描述 2 GPU设置 3 设置Dataset类 4 设置辨别器类 5 辅助函数与辅助类 1 数据集描述 此项目使用的是著名的celebA(CelebFaces Attribute) ...

  8. 运用PyTorch动手搭建一个共享单车预测器

    本文摘自 <深度学习原理与PyTorch实战> 我们将从预测某地的共享单车数量这个实际问题出发,带领读者走进神经网络的殿堂,运用PyTorch动手搭建一个共享单车预测器,在实战过程中掌握神 ...

  9. Pytorch ——基础指北_叁 [Pytorch API 构建基础模型]

    Pytorch --基础指北_叁 系列文章目录 Pytorch --基础指北_零 Pytorch --基础指北_壹 Pytorch --基础指北_贰 Pytorch --基础指北_叁 文章目录 Pyt ...

最新文章

  1. 检验是否相关-------假设检验
  2. 规格表管理之更新规格表数据
  3. 《穿越计算机的迷雾》读书笔记三
  4. columnproperty server sql_导出SQL Server数据库表中字段的说明/备注
  5. 如何删除git远程分支
  6. 信息系统项目管理师-信息系统范围管理核心知识点思维脑图
  7. 南方日报专访 | 网易云信沈青松: 企业上云正热,PaaS将迎来爆发
  8. VS2013无法启动IIS Express Web的解决办法
  9. CentOS 6.0正式版终于发布
  10. 火币生态链项目SuperNova与Poly Network达成战略合作
  11. 重定向和请求转发后面加“return;”语句
  12. rtmp直播推流软件推荐
  13. 智能随访系统:提升患者综合服务能力和就医体验,提高医院品牌价值与服务质量
  14. 一个炒鸡好用的 indicator 开源指示器
  15. Win10以太网没有有效的IP配置解决方法
  16. 如何选择适合你的兴趣爱好(二十二),羽毛球
  17. 百度地图Polyline画直线
  18. What?Tomcat 竟然也算中间件?
  19. 述职答辩提问环节一般可以问些什么_什么是述职。述职会问些什么问题。
  20. DJL-Java开发者动手学深度学习之线性回归

热门文章

  1. SyntaxError: EOL while scanning string literal【已解决】
  2. ISO27001和ISO20000两大体系认证的区别和联系
  3. fiddler抓包——手机添加代理后APP连不上网的常见4种原因及解决办法
  4. [展览人周刊]华展云20170626期
  5. 苹果手机怎么信任软件_苹果手机怎么下载一款农历提醒的便签软件?
  6. 【一周头条盘点】中国软件网(2018.9.17~2018.9.21)
  7. Piping OV7670 video to VGA output on ZYBO
  8. myBase Desktop 6.5.1 无限期试用
  9. echarts柱状图自动轮播
  10. 关注Android,关注Android相关论坛。