简单易懂的PyTorch版VGG19复现代码
VGG19网络结构
VGG的创新点包括使用3x3小核替换传统的5x5或7x7大核卷积,其整个网络除全连接层外,均采用步长为 1 填充为 1 的 3x3 卷积 + ReLU 和步长为 2 填充为 0 的 2x2 最大池化,网络结构非常简洁。VGG网络的输入维度为 3x224x224,在全连接层之前没有使用全局平均值池化压缩特征图的空间维度,而是直接将特征图的后 3 维 Flatten 后输入到全连接层中,这样导致第一个全连接层有较多的参数,且VGG包括 3 个全连接层,在训练时需要使用Dropout等正则化方法防止过拟合。VGG19的网络结构如下图所示:
PyTorch复现代码
# VGG19.py
import torch
import torch.nn as nnclass Conv(nn.Module):def __init__(self, in_channels, out_channels, kernel_size=1, stride=1,padding=None, groups=1, activation=True):super(Conv, self).__init__()padding = kernel_size // 2 if padding is None else paddingself.conv = nn.Conv2d(in_channels, out_channels, kernel_size, stride,padding, groups=groups, bias=True)self.act = nn.ReLU(inplace=True) if activation else nn.Identity()def forward(self, x):return self.act(self.conv(x))class VGG19(nn.Module):def __init__(self, num_classes):super(VGG19, self).__init__()self.stages = nn.Sequential(*[self._make_stage(3, 64, num_blocks=2, max_pooling=True),self._make_stage(64, 128, num_blocks=2, max_pooling=True),self._make_stage(128, 256, num_blocks=4, max_pooling=True),self._make_stage(256, 512, num_blocks=4, max_pooling=True),self._make_stage(512, 512, num_blocks=4, max_pooling=True)])self.head = nn.Sequential(*[nn.Flatten(start_dim=1, end_dim=-1),nn.Linear(512 * 7 * 7, 4096),nn.ReLU(inplace=True),nn.Linear(4096, 4096),nn.ReLU(inplace=True),nn.Linear(4096, num_classes)])@staticmethoddef _make_stage(in_channels, out_channels, num_blocks, max_pooling):layers = [Conv(in_channels, out_channels, kernel_size=3, stride=1)]for _ in range(1, num_blocks):layers.append(Conv(out_channels, out_channels, kernel_size=3, stride=1))if max_pooling:layers.append(nn.MaxPool2d(kernel_size=2, stride=2, padding=0))return nn.Sequential(*layers)def forward(self, x):return self.head(self.stages(x))if __name__ == "__main__":inputs = torch.rand((8, 3, 224, 224)).cuda()model = VGG19(num_classes=1000).cuda().train()outputs = model(inputs)print(outputs.shape)
简单易懂的PyTorch版VGG19复现代码相关推荐
- 首个大众可用PyTorch版AlphaFold2复现,哥大开源OpenFold,star量破千
作者丨小舟 来源丨机器之心 AlphaFold2 是 2021 年 AI for Science 领域最耀眼的一颗星.现在,有人在 PyTorch 中复现了它,并已在 GitHub 上开源.这一复现在 ...
- 【代码分析】Pytorch版YOLO V4代码分析
YOLO V4出来也几天了,论文大致看了下,然后看到大量的优秀者实现了各个版本的YOLOV4了. Yolo v4 论文: https://arxiv.org/abs/2004.10934 AB大神Da ...
- YOLOv3最全复现代码合集(含PyTorch/TensorFlow和Keras等)
点击上方"CVer",选择"置顶公众号" 重磅干货,第一时间送达 前戏 2018年3月26日,CVer第一时间推文:YOLOv3:你一定不能错过 2019年3月 ...
- 何恺明一作论文 MAE 已有人复现!PyTorch 版!(附链接)
来源:AI算法与图像处理 本文多图,建议阅读5分钟 CV大神何恺明论文复现. 大家好,我是红色石头.之前介绍过CV大神何恺明又出力作!论文「Masked Autoencoders Are Scalab ...
- 【CV】YOLOv4最全复现代码合集(含PyTorch/TF/Keras和Caffe等)
前言 2020年4月24日,CVer第一时间推文:大神接棒,YOLOv4来了! 2020年6月28日,CVer第一时间推文:YOLOv4-Tiny来了!371 FPS! 距离YOLOv4正式推出,已经 ...
- 【经典重温】所有数据无需共享同一个卷积核!谷歌提出条件参数化卷积CondConv(附Pytorch复现代码)...
关注公众号,发现CV技术之美 ▊ 写在前面 卷积层是深度神经网络的基本组成部分之一,目前的卷积网络的一个基本假设是卷积核应该为数据集中的所有样本所共享 .在本文中,作者打破了这个假设,提出了条件参数化 ...
- 何恺明一作论文 MAE 已有人复现!PyTorch 版!
来源 | AI算法与图像处理 仅作学术分享,不代表本公众号立场,侵权联系删除 CV大神何恺明又出力作!论文「Masked Autoencoders Are Scalable Vision Learne ...
- 史上最详细的Pytorch版yolov3代码中文注释详解(四)
史上最详细的Pytorch版yolov3代码中文注释详解(一):https://blog.csdn.net/qq_34199326/article/details/84072505 史上最详细的Pyt ...
- 《动手学深度学习》(PyTorch版)代码注释 - 26 【GoogLeNet_Learning】
目录 说明 配置环境 此节说明 代码 说明 本博客代码来自开源项目:<动手学深度学习>(PyTorch版) 并且在博主学习的理解上对代码进行了大量注释,方便理解各个函数的原理和用途 配置环 ...
- 《动手学深度学习》(PyTorch版)代码注释 - 25 【NiN_Learning】
目录 说明 配置环境 此节说明 代码 说明 本博客代码来自开源项目:<动手学深度学习>(PyTorch版) 并且在博主学习的理解上对代码进行了大量注释,方便理解各个函数的原理和用途 配置环 ...
最新文章
- python调用c++动态库 linux_linux中使用boost.python调用c++动态库的方法
- 一个项目学会前端实现登录拦截
- MySQL部署2002_MySQL入门02-MySQL二进制版本快速部署
- vmware安装centos8步骤
- linux 单用户密码修改
- mysql中字符串拼接函数_MySQL字符串连接函数
- PMF镜像中文件提取/diskgenius做的镜像文件
- 深度网络自适应DCC算法
- Easyrecovery激活码生成器分享
- 关于校园流浪猫狗的调查报告 新生研讨课校内调查
- PC历史上的20位英雄
- python中bin函数如何使用?
- php正则匹配一个汉字,php正则表达式匹配中文
- 数据库置疑的处理方法
- openoffice安装及使用,linux文件资源下载及windows资源下载
- 物联网技术的应用领域
- NC | 中科院蔡磊组揭示跨界合成菌群增强番茄对镰刀枯萎病抗病能力
- 20172304 2018-2019-1 《程序设计与数据结构》课程总结
- 工程伦理 第九章习题 答案
- 公开数据集集合MedMNIST和Chest x-rays14
热门文章
- android手机录屏工具,安卓手机上有什么好用的屏幕录屏软件可以推荐?
- oracle系统的物料编码,物料编码汇总专题[大家一起努力将其补充完善!以方便大家查阅!] - □-Oracle ER......
- 在微信公众平台做HTML 5游戏的一些经验
- 物联管家PDA 无缝对接网店管家云端 电商erp 实现电商条码无线仓储
- 有什么推荐的软件工程本科的毕业设计题目嘛?
- studioOne安装教程与简单使用(图文)
- [概率论与数理统计-1]: 总体架构、知识结构、知识体系
- appium环境搭建android版,【appium】自动化测试appium教程(环境搭建上)
- css实现文字左右滚动效果
- data-bi(3):大数据分析软件 CBoard有了一个另外的ui,vuejs写的