vgg16-pytorch

2023-10-27

基于pytorch实现VGG16模型

刚听完土哥的入门pytorch,试着写一个不完善的vgg16

VGG16具体的架构:
在这里插入图片描述
VGG16模型构建:

卷积池化后尺寸计算公式:
在这里插入图片描述
在这里插入图片描述
引入库:

from torch import nn
from torch.nn.modules.flatten import Flatten

dilation默认为1,计算第一个卷积的步长和填充:

224 =224+2xpadding-1x(3-1)-1/stride + 1
因为padding和stride都为整数,当padding=1,stride=1时,等式成立。

图片为3通道,输出后维64通道,卷积核为3x3,第一个卷积层为:

nn.Conv2d(in_channels=3,out_channels=64,kernel_size=3,stride=1,padding=1),
# 第二个尺寸不变,步长跟填充不变
nn.Conv2d(64,64,3,1,1),

在第一个池化这里,图片长宽都缩小二倍,当池化核为2x2时,取最显著的一个特征可达到这个标准,因此池化核为2,输入长和宽为224,输出长和宽为112,计算池化的步长

112 =224 + 2*padding - 1x(2-1-1/stride + 1
因为padding和stride都为整数,当padding=0,stride=2时,等式成立。padding默认为0可不写

在这里插入图片描述
因此,池化层为:

nn.MaxPool2d(kernel_size=2,stride=2)

完整模型代码如下:

from torch import nn
from torch.nn.modules.flatten import Flatten


class Vgg16(nn.Module):
    def __init__(self,category):
        super(Vgg16,self).__init__()
        self.model = nn.Sequential(
            nn.Conv2d(in_channels=3,out_channels=64,kernel_size=3,stride=1,padding=1),
            nn.Conv2d(64,64,3,1,1),
            nn.MaxPool2d(kernel_size=2,stride=2),
            nn.Conv2d(64,128,3,1,1),
            nn.Conv2d(128,128,3,1,1),
            nn.MaxPool2d(2,stride=2),
            nn.Conv2d(128,256,3,1,1),
            nn.Conv2d(256,256,3,1,1),
            nn.Conv2d(256,256,3,1,1),
            nn.MaxPool2d(2,stride=2),
            nn.Conv2d(256,512,3,1,1),
            nn.Conv2d(512,512,3,1,1),
            nn.Conv2d(512,512,3,1,1),
            nn.MaxPool2d(2,stride=2),
            nn.Conv2d(512, 512, 3, 1, 1),
            nn.Conv2d(512, 512, 3, 1, 1),
            nn.Conv2d(512, 512, 3, 1, 1),
            nn.MaxPool2d(2, stride=2),
            Flatten(),
            nn.Linear(512 * 7 * 7, 4096),
            nn.Linear(4096,4096),
            nn.Linear(4096, category)
        )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vgg16-pytorch 的相关文章

随机推荐

  • Jupyterlab 3以及Kite代码补全插件安装

    Jupyterlab 3 以及Kite代码补全插件安装 为啥安个这玩意儿 之前一直用Jupyter写一些机器学习和深度学习的东西 尤其是去年一年里白嫖谷歌的Colab很长时间 甚至还开了pro 他们的工作台就是Jupyter类型的 用多了就
  • 【Bias 03】Benchmarking Robustness in Object Detection: Autonomous Driving when Winter is Coming

    Related work Improving corruption robustness 去除腐蚀 1 提出一种基于DNN 恢复雨雾图片质量的方法 2 预处理中去除雨 但这种方法都是针对某种腐蚀 数据增强 把腐蚀数据加入训练 1 blurr
  • C++类模板和static数据成员

    静态数据成员对象之间共享的 当静态数据成员遇上类模板式也是如此吗 现有demo类模板 类中包含static数据成员 template
  • Linux modules-load 启动时加载驱动模块

    Linux modules load 启动时加载驱动模块 Linux 内核包含非常多驱动以及其他功能模块 驱动开发时 我们可以通过insmod命令向内核中载入模块 rmmod卸载模块 lsmod列出加载的所有模块 一般情况下 模块会根据硬件
  • 【MATLAB】常见语法结构和实用操作

    目录 语法结构 循环 遍历 结构 函数结构 画图操作 绘制函数图像 ezplot figure多图绘制 创建多项式 按照系数创建多项式 利用多项式零点创建多项式 解方程组 语法结构 循环 遍历 结构 与其它编程语言类似 Matlab也有循环
  • 对象存储oss的使用

    分为两个大块 1 阿里云oss配置 2 写代码 阿里云oss配置的最终木电的拿到这几个东西 1 accessKeyId 相当于身份认证 在注册完成之后 就可以拿到 2 accessKeySecret 相当于认证的密码 同样注册完成之后 就会
  • word图片撑满_word图片满页 word图片铺满整个页面

    word中如何让图片占满整个页面 确定 再确定 不OK了 7厘米 页面设置 里设置页面方向及纸张大小 当然也要根据你打印机性能 请将下面 锁定纵横比 那个钩取消 如将页面边距设置为0 点 版式 如图片太大你打印机不一定打印得了 再点右下角的
  • Python报错:IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in

    Python报错如下 E anaconda envs pytorch gpu python exe D project graphsage graphsage model py D project graphsage graphsage e
  • 自动找Bug/插件-代码静态检查findbugs-idea安装以及使用

    目录 简介 IDEA安装FindBugs Findbugs配置 配置排除一些类 扫描级别 IDEA中使用FindBugs 一些常见错误 补充 简介 Findbugs是一个静态分析工具 它检查类或者JAR 文件 将字节码与一组缺陷模式进行对比
  • 闲谈云计算

    其实一直到处看到关于云计算的东西和话题 云计算一直是一个很火的关键字 最近几天才有时间找来一本 云那些事 来看看 只是很粗略的看了关于云计算发展方向的一些问题 具体的云技术是一盘丰盛的大餐 得慢慢吃 其实我一直在没有认真去看云计算的时候 觉
  • Future和FutureTask用法详细介绍

    Future和FutureTask 文章目录 Future和FutureTask Future FutureTask Demo code output 在并发编程中 多线程的实现有继承Thread和Runnable 因为单继承的原因我们往往
  • Java阿里巴巴代码规范

    目录 1 编程规约 1 1 方法参数类型必须一致 不要出现自动装箱拆箱操作 1 1 1 反例 1 1 2 正例 1 2 SimpleDateFormat是线程不安全的 1 2 1 反例 1 2 2 正例 1 3 使用equals方法应该注意
  • 软件项目管理(第二版 宁涛)问答题(个人背诵)

    目录 第一章 概述 1 什么是软件项目管理 2 项目管理的 9 大知识领域是什么 3 项目管理的 5 个过程组是什么 5 项目经理的主要职责是什么 6 项目的特点是什么 7 项目和运营的共同点有哪些 8 项目集成管理是什么 9 规划过程组的
  • Flutter学习 — 从新页面返回数据给上一个页面

    效果图一 点击按钮 效果图二 点击YES后 返回上一级页面并传值 效果图三 收到值 并用底部弹出框显示结果 注释 代码 import package flutter material dart void main runApp new Ma
  • 关于Git的一点思考

    GIT历史 很多人都知道 Linus在1991年创建了开源的Linux 从此 Linux系统不断发展 已经成为最大的服务器系统软件了 Linus虽然创建了Linux 但Linux的壮大是靠全世界热心的志愿者参与的 这么多人在世界各地为Lin
  • YOLOV5之TensorRT模型部署

    目录 一 环境版本 1 1 概述 1 2 Ubuntu版本 1 3 python pytorch与tensorrt版本 1 4 cudnn版本 1 5 驱动版本 1 6 opencv版本 二 TensorRT与opencv环境安装 2 1
  • 虚拟化概念详解

    虚拟化的定义 虚拟化技术可以认为是一种对物理资源抽象化 进而形成虚拟化的版本的技术 虚拟化的目的 物理资源组成庞大的资源池 然后可以按需分配 随意切割物理资源 虚拟化资源分类 服务器虚拟化 服务器虚拟化就是将虚拟化技术应用于服务器 将一台服
  • 【STM32标准库】【基础知识】ADC转换,非DMA的单通道和多通道

    文章目录 ADC概述 ADC初始化 GPIO初始化 时钟 全局ADC设置 定义结构体 是否使用DMA 工作模式 分频 采样延迟 例程 单独ADC设置 定义结构体 连续转换 数据对齐 外部触发 通道数量 分辨率 扫描模式 例程 设置规则 打开
  • 【Git】(五)切换分支

    1 切换分支 git checkout newBranch 2 如果需要保留本地修改 git status git add git commit amend git checkout newBranch 3 强制切换分支 放弃本地修改 强制
  • vgg16-pytorch

    基于pytorch实现VGG16模型 刚听完土哥的入门pytorch 试着写一个不完善的vgg16 VGG16具体的架构 VGG16模型构建 卷积池化后尺寸计算公式 引入库 from torch import nn from torch n