pytorch笔记:VGG 16
理论部分见:机器学习笔记:VGG 16_UQI-LIUWJ的博客-CSDN博客
1 直接调用
import torch, torchvisionmodel = torchvision.models.vgg16()
1.1 torchsummary 查看模型和参数
from torchsummary import summarysummary(model, (3, 224, 224))'''
----------------------------------------------------------------Layer (type) Output Shape Param #
================================================================Conv2d-1 [-1, 64, 224, 224] 1,792ReLU-2 [-1, 64, 224, 224] 0Conv2d-3 [-1, 64, 224, 224] 36,928ReLU-4 [-1, 64, 224, 224] 0MaxPool2d-5 [-1, 64, 112, 112] 0Conv2d-6 [-1, 128, 112, 112] 73,856ReLU-7 [-1, 128, 112, 112] 0Conv2d-8 [-1, 128, 112, 112] 147,584ReLU-9 [-1, 128, 112, 112] 0MaxPool2d-10 [-1, 128, 56, 56] 0Conv2d-11 [-1, 256, 56, 56] 295,168ReLU-12 [-1, 256, 56, 56] 0Conv2d-13 [-1, 256, 56, 56] 590,080ReLU-14 [-1, 256, 56, 56] 0Conv2d-15 [-1, 256, 56, 56] 590,080ReLU-16 [-1, 256, 56, 56] 0MaxPool2d-17 [-1, 256, 28, 28] 0Conv2d-18 [-1, 512, 28, 28] 1,180,160ReLU-19 [-1, 512, 28, 28] 0Conv2d-20 [-1, 512, 28, 28] 2,359,808ReLU-21 [-1, 512, 28, 28] 0Conv2d-22 [-1, 512, 28, 28] 2,359,808ReLU-23 [-1, 512, 28, 28] 0MaxPool2d-24 [-1, 512, 14, 14] 0Conv2d-25 [-1, 512, 14, 14] 2,359,808ReLU-26 [-1, 512, 14, 14] 0Conv2d-27 [-1, 512, 14, 14] 2,359,808ReLU-28 [-1, 512, 14, 14] 0Conv2d-29 [-1, 512, 14, 14] 2,359,808ReLU-30 [-1, 512, 14, 14] 0MaxPool2d-31 [-1, 512, 7, 7] 0
AdaptiveAvgPool2d-32 [-1, 512, 7, 7] 0Linear-33 [-1, 4096] 102,764,544ReLU-34 [-1, 4096] 0Dropout-35 [-1, 4096] 0Linear-36 [-1, 4096] 16,781,312ReLU-37 [-1, 4096] 0Dropout-38 [-1, 4096] 0Linear-39 [-1, 1000] 4,097,000
================================================================
Total params: 138,357,544
Trainable params: 138,357,544
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.57
Forward/backward pass size (MB): 218.78
Params size (MB): 527.79
Estimated Total Size (MB): 747.15
----------------------------------------------------------------
'''
2 自己动手搭建
除了第32层的AdaptiveAvgPool2d 之外,其他的和直接调用的是一样的
import torch.nn as nn
import torchclass VGG16(nn.Module):def __init__(self):super(VGG16,self).__init__()#输入该模块数据大小 224*224*3self.block1=nn.Sequential(nn.Conv2d(in_channels=3,out_channels=64,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=64,out_channels=64,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2))#输入该模块数据大小 112*112*64self.block2=nn.Sequential(nn.Conv2d(in_channels=64,out_channels=128,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=128,out_channels=128,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2))#输入该模块数据大小 56*56*128self.block3=nn.Sequential(nn.Conv2d(in_channels=128,out_channels=256,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=256,out_channels=256,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=256,out_channels=256,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2))#输入该模块数据大小 28*28*256self.block4=nn.Sequential(nn.Conv2d(in_channels=256,out_channels=512,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=512,out_channels=512,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=512,out_channels=512,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2))#输入该模块数据大小 14*14*512self.block5=nn.Sequential(nn.Conv2d(in_channels=512,out_channels=512,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=512,out_channels=512,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.Conv2d(in_channels=512,out_channels=512,kernel_size=3,stride=1,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=2, stride=2))#输入该模块数据大小 7*7*512self.fc_layer=nn.Sequential(nn.Linear(7*7*512,4096),nn.ReLU(),nn.Dropout(p=0.5),nn.Linear(4096,4096),nn.ReLU(),nn.Dropout(p=0.5),nn.Linear(4096,1000) )#输入该模块数据大小 1000self.Softmax=nn.Softmax(dim=0)def forward(self,x):x=self.block1(x)x=self.block2(x)x=self.block3(x)x=self.block4(x)x=self.block5(x)x=x.view(x.shape[0],-1)x=self.fc_layer(x)x=self.Softmax(x)return xvgg = VGG16()from torchsummary import summary
summary(vgg,(3,244,244))'''
----------------------------------------------------------------Layer (type) Output Shape Param #
================================================================Conv2d-1 [-1, 64, 244, 244] 1,792ReLU-2 [-1, 64, 244, 244] 0Conv2d-3 [-1, 64, 244, 244] 36,928ReLU-4 [-1, 64, 244, 244] 0MaxPool2d-5 [-1, 64, 122, 122] 0Conv2d-6 [-1, 128, 122, 122] 73,856ReLU-7 [-1, 128, 122, 122] 0Conv2d-8 [-1, 128, 122, 122] 147,584ReLU-9 [-1, 128, 122, 122] 0MaxPool2d-10 [-1, 128, 61, 61] 0Conv2d-11 [-1, 256, 61, 61] 295,168ReLU-12 [-1, 256, 61, 61] 0Conv2d-13 [-1, 256, 61, 61] 590,080ReLU-14 [-1, 256, 61, 61] 0Conv2d-15 [-1, 256, 61, 61] 590,080ReLU-16 [-1, 256, 61, 61] 0MaxPool2d-17 [-1, 256, 30, 30] 0Conv2d-18 [-1, 512, 30, 30] 1,180,160ReLU-19 [-1, 512, 30, 30] 0Conv2d-20 [-1, 512, 30, 30] 2,359,808ReLU-21 [-1, 512, 30, 30] 0Conv2d-22 [-1, 512, 30, 30] 2,359,808ReLU-23 [-1, 512, 30, 30] 0MaxPool2d-24 [-1, 512, 15, 15] 0Conv2d-25 [-1, 512, 15, 15] 2,359,808ReLU-26 [-1, 512, 15, 15] 0Conv2d-27 [-1, 512, 15, 15] 2,359,808ReLU-28 [-1, 512, 15, 15] 0Conv2d-29 [-1, 512, 15, 15] 2,359,808ReLU-30 [-1, 512, 15, 15] 0MaxPool2d-31 [-1, 512, 7, 7] 0Linear-32 [-1, 4096] 102,764,544ReLU-33 [-1, 4096] 0Dropout-34 [-1, 4096] 0Linear-35 [-1, 4096] 16,781,312ReLU-36 [-1, 4096] 0Dropout-37 [-1, 4096] 0Linear-38 [-1, 1000] 4,097,000Softmax-39 [-1, 1000] 0
================================================================
Total params: 138,357,544
Trainable params: 138,357,544
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 0.68
Forward/backward pass size (MB): 258.33
Params size (MB): 527.79
Estimated Total Size (MB): 786.80
----------------------------------------------------------------
'''
pytorch笔记:VGG 16相关推荐
- PyTorch 笔记(16)— torch.nn.Sequential、torch.nn.Linear、torch.nn.RelU
PyTorch 中的 torch.nn 包提供了很多与实现神经网络中的具体功能相关的类,这些类涵盖了深度神经网络模型在搭建和参数优化过程中的常用内容,比如神经网络中的卷积层.池化层.全连接层这类层次构 ...
- pytorch 笔记:tensorboardX
1 SummaryWriter 1.1 创建 首先,需要创建一个 SummaryWriter 的示例: from tensorboardX import SummaryWriter#以下是三种不同的初 ...
- pytorch 笔记:torchsummary
作用:打印神经网络的结构 以pytorch笔记:搭建简易CNN_UQI-LIUWJ的博客-CSDN博客 中搭建的CNN为例 import torch from torchsummary import ...
- (d2l-ai/d2l-zh)《动手学深度学习》pytorch 笔记(2)前言(介绍各种机器学习问题)以及数据操作预备知识Ⅰ
开源项目地址:d2l-ai/d2l-zh 教材官网:https://zh.d2l.ai/ 书介绍:https://zh-v2.d2l.ai/ 笔记基于2021年7月26日发布的版本,书及代码下载地址在 ...
- Pytorch笔记:风格迁移
Pytorch笔记:风格迁移 训练模型:风格迁移网络+VGG16网络 生成网络:风格迁移网络 代码如下(根据陈云<深度学习框架:Pytorch入门与实践>的代码改动) main.py im ...
- 【卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10)】
卷积神经网络CNN 实战案例 GoogleNet 实现手写数字识别 源码详解 深度学习 Pytorch笔记 B站刘二大人 (9.5/10) 在上一章已经完成了卷积神经网络的结构分析,并通过各个模块理解 ...
- PYTORCH 笔记 DILATE 代码解读
dilate 完整代码路径:vincent-leguen/DILATE: Code for our NeurIPS 2019 paper "Shape and Time Distortion ...
- 深度学习PyTorch笔记(12):线性神经网络——softmax回归
深度学习PyTorch笔记(12):线性神经网络--softmax回归 6 线性神经网络--softmax回归 6.1 softmax回归 6.1.1 概念 6.1.2 softmax运算 6.2 图 ...
- pytorch 笔记:使用Tune 进行调参
自动进行调参,我们以pytorch笔记:搭建简易CNN_UQI-LIUWJ的博客-CSDN博客的代码为基础,进行output_channel和learning rate的调参 1 导入库 from f ...
- C# 学习笔记(16)ComboBox下拉列表框宽度自适应
C# 学习笔记(16)ComboBox下拉列表框宽度自适应 当下拉列表框中内容宽度大于下拉列表框宽度时 下拉列表框不能将内容全部显示出来 可以在下拉时,对下拉列表框内容进行重绘 /// <sum ...
最新文章
- Python可视化:Seaborn(二)
- 苏宁的另类“存在感”
- 在做TLS/SSL时报错
- xml动态生成java_从XML文档动态生成Java类
- 【报告分享】2020中国商业智能化发展研究报告.pdf(附下载链接)
- redis实现分布式锁代码片段
- vba随机抽取人名不重复_excel如何实现随机抽取且不重复
- 公路通用复化辛普森公式匝道点位坐标计算4800源程序
- 3dmax导出fbx模型到unity
- 机器学习笔记之概率图模型(八)信念传播(Belief Propagation,BP)(基于树结构)
- 商用密码应用安全性评估(密评)六大基础问题解答
- 你知道青龙面板是干嘛的不?
- DPark安装及相关资料整理
- 找工作的时候怎样判断一家公司靠不靠谱
- Go语言内嵌C语言教程
- 虾皮怎么注册开店,开一个属于你的优质店铺
- 华清远见嵌入式班结业总结
- 22个高级Python知识点总结,干货!
- 3D图形:矩阵的相关知识
- 车间数字孪生解决方案(一)