J8 inceptionv1

  • 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
  • 🍖 原作者:K同学啊

前言

卷积神经网络大家族中有很多经典的网络,前面已经学习resnet,densenet相关网络,今天学习一种更久远的一种网络GoogLenet

网络结构

其核心模块为inception块,这些模块由多层不同滤波器尺寸(1x1、3x3和5x5卷积)和池化操作组成。通过并行使用不同尺寸的滤波器,网络可以在多个尺度上捕获信息,从而学习更复杂的特征。

此外,为了防止由于网络深度和宽度的增加而导致参数数量爆炸,Inception v1在3x3和5x5卷积之前使用了1x1卷积等降维技术。这有助于降低计算成本和过拟合,同时保持甚至改善网络的表示能力。其结构如下图所示
在这里插入图片描述

在这里插入图片描述
同时1x1卷积的使用也影响着后续网络结构的设计如resnet继续将1x1卷积的使用发扬光大。

模型代码

class inception_block(nn.Module):def __init__(self, in_channels, ch1x1, ch3x3red, ch3x3, ch5x5red, ch5x5, pool_proj):super().__init__()# 1x1 分支self.branch1 = nn.Sequential(nn.Conv2d(in_channels, ch1x1, kernel_size=1),nn.BatchNorm2d(ch1x1),nn.ReLU(inplace=True))# 1x1 -> 3x3 分支self.branch2 = nn.Sequential(nn.Conv2d(in_channels, ch3x3red, kernel_size=1),nn.BatchNorm2d(ch3x3red),nn.ReLU(inplace=True),nn.Conv2d(ch3x3red, ch3x3, kernel_size=3, padding=1),nn.BatchNorm2d(ch3x3),nn.ReLU(inplace=True))# 1x1 -> 5x5 分支self.branch3 = nn.Sequential(nn.Conv2d(in_channels, ch5x5red, kernel_size=1),nn.BatchNorm2d(ch5x5red),nn.ReLU(inplace=True),nn.Conv2d(ch5x5red, ch5x5, kernel_size=5, padding=2),nn.BatchNorm2d(ch5x5),nn.ReLU(inplace=True))# 3x3 -> 1x3 分支self.branch4 = nn.Sequential(nn.MaxPool2d(kernel_size=3, stride=1, padding=1),nn.Conv2d(in_channels, pool_proj, kernel_size=1),nn.BatchNorm2d(pool_proj),nn.ReLU(inplace=True))def forward(self, x):branch1_output = self.branch1(x)branch2_output = self.branch2(x)branch3_output = self.branch3(x)branch4_output = self.branch4(x)outputs = [branch1_output, branch2_output, branch3_output, branch4_output]return torch.cat(outputs, 1)

class InceptionV1(nn.Module):def __init__(self, num_classes=1000):super().__init__()self.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3)self.maxpool1 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)self.conv2 = nn.Conv2d(64, 64, kernel_size=1, stride=1, padding=0)self.conv3 = nn.Conv2d(64, 192, kernel_size=3, stride=1, padding=1)self.maxpool2 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)self.inception3a = inception_block(192, 64, 96, 128, 16, 32, 32)self.inception3b = inception_block(256, 128, 128, 192, 32, 96, 64)self.maxpool3 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)self.inception4a = inception_block(480, 192, 96, 208, 16, 48, 64)self.inception4b = inception_block(512, 160, 112, 224, 24, 64, 64)self.inception4c = inception_block(512, 128, 128, 256, 24, 64, 64)self.inception4d = inception_block(512, 112, 144, 288, 32, 64, 64)self.inception4e = inception_block(528, 256, 160, 320, 32, 128, 128)self.maxpool4 = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)self.inception5a = inception_block(832, 256, 160, 320, 32, 128, 128)self.inception5b = nn.Sequential(inception_block(832, 384, 192, 384, 48, 128, 128),nn.AvgPool2d(kernel_size=7, stride=1, padding=0),nn.Dropout(0.4))# 全连接层self.classifier = nn.Sequential(nn.Linear(in_features=1024, out_features=1024),nn.ReLU(),nn.Linear(in_features=1024, out_features=num_classes),nn.Softmax(dim=1))def forward(self, x):x = self.conv1(x)x = F.relu(x)x = self.maxpool1(x)x = self.conv2(x)x = F.relu(x)x = self.conv3(x)x = F.relu(x)x = self.maxpool2(x)x = self.inception3a(x)x = self.inception3b(x)x = self.maxpool3(x)x = self.inception4a(x)x = self.inception4b(x)x = self.inception4c(x)x = self.inception4d(x)x = self.inception4e(x)x = self.maxpool4(x)x = self.inception5a(x)x = self.inception5b(x)x = torch.flatten(x, start_dim=1)x = self.classifier(x)return xmodel = InceptionV1().to(device)

模型验证

猴痘病数据集
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于数据集很小的缘故模型准确率不高,但是模型不存在很严重的过拟合现象。

总结

这周主要学习了inceptionv1模型,主要学习了1x1卷积的运用,其大大降低了输入特征图的通道数,减少了网络参数与计算量,这为以后改进网络模型提供了启发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java--数据结构】模拟实现ArrayList

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 LIst 顺序表ArrayList 顺序表优点 IList接口 ArrayList中定义要操作的数组 在MyArrayList中 重写接口方法 新增元素 在指定位置插入元素 pos不合法异常 判断和查找元素…

华为配置 dhcp snooping

1、开启snooping功能前必须先全局开启dhcp的功能 [HUAWEI] dhcp enable //全局开启 2、全局开启snooping功能 [HUAWEI] dhcp snooping enable ipv4 //全局单独开启IPv4的snooping功能,这样将能够有效的节约设备的CPU利用率 3、接口或VLAN下开启DH…

二维码相册怎么做?图片转换为二维码的方法

二维码现在可以用来承载大量的内容,通过扫描二维码即可通过扫描设备获取信息。图片生成二维码之后,用户可以在不保存图片直接扫码来查看图片,这种方式可以有效的提高图片的安全性,防止图片信息泄露。 怎么用二维码来作为相册展现…

STM32F401RCT6电子元器件芯片LQFP64 32位微控制器MCU单片机

STM32F401RCT6微控制器具有丰富的外设接口和较高的处理能力,适用于多种嵌入式应用。以下是一些典型的STM32F401RCT6应用案例: 1. 机器人控制:STM32F401RCT6可以用于制作自动导航机器人、遥控机器人等,负责处理传感器数据、控制电…

Centos7虚拟机与真机乎ping以及虚拟机ping不通的原因

虚拟机网络完全正常的标准 物理机可以ping通虚拟机的IP虚拟机可以ping通物理机的IP虚拟机可以ping通baidu.com等网站 使用工具版本:Centos7 前提: 虚拟机必须开机才可以连接访问 克隆出来的虚拟机一定要手动修改IP,IP冲突的情况下不能联网 …

hbase安装

安装 前置条件 需要启动Hadoop 并需要验证状态信息需要启动Zookeeper 并需要验证状态信息 在master上传jar包并解压 tar -zxvf hbase-2.1.9-bin.tar.gz 配置环境变量 export HBASE_HOME/usr/local/soft/hbase-2.1.9 export PATH H B A S E H O M E / b i n : HBASE_HOME/bin:…

android开发 使用Messenger进行进程间通信

Messenger有两个构造方法。 Messenger recevierMessenger new Messenger(IBinder target); Messenger recevierMessenger new Messenger(Handler target); 能传handler和ibinder, 服务端进程 com.jn.testmessagerservice 创建一个servic…

水位传感器优点有哪些

水位传感器是一种用于检测液体水位的重要设备,在各种工业和民用场景中起着至关重要的作用。其中,光学液位传感器作为一种先进的水位检测技术,在市场上备受青睐,其优点主要包括以下几个方面。 光学液位传感器内部所有元器件均经过…

如果使用0x对node项目进行性能分析

0x 是一个强大的 Node.js 性能分析工具,它可以帮助你进行堆栈追踪和火焰图分析。使用 0x 可以帮助你理解 Node.js 应用在运行时的性能瓶颈,进而优化代码。以下是如何使用 0x 对 Node.js 项目进行性能分析的步骤: 安装0x 首先,你…

基于一款最多能够支持10000路的 modbus RS485 led灯光控制板做灯控程序

背景 介绍一款之前用过的一款设备,基于RS485通讯协议,控制LED灯或RGB灯带。 设备介绍 之前用它来做智能中药柜的灯控板,结合物联网网关,modbus采集,mqtt转发,以及mqtt的rpc指令下发 设备图片 功能说明 …

LPA算法简介

1. 背景 标签传播算法(Label Propagation Algorithm)是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。 2. 算法流程 1. 为每个节点随机的指定一个自己特有的标签; 2. 逐轮刷新所有节点的标签&#xff0…

前沿论文 | LLM推理性能优化最佳实践

原文:安全验证 - 知乎​ 来源 题目:LLM Inference Performance Engineering: Best Practices 地址:https://www.databricks.com/blog/llm-inference-performance-engineering-best-practices 在这篇博文中,MosaicML工程团队分析了…

2024-4-22 群讨论:微服务启动预热相关

以下来自本人拉的一个关于 Java 技术的讨论群。关注公众号:hashcon,私信进群拉你 Hotspot JVM 进程启动后,流量到来的时候 JIT 吃掉很多 CPU,如何观察到? 很多途径都能观察到: top -Hp:这个需…

ApiHug 的初心-ApiHug101

视频 秒懂 ApiHug -019 HOPE 🔥 H.O.P.E.: Help other people excellent 💝 是这个项目最初的初心 🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ 🏠 gitee github search ApiHug ApiHug 🤗 ApiHug {Post…

云架构(五)BBF模式

BFF模式(Backends for Frontends pattern)- https://learn.microsoft.com/en-us/azure/architecture/patterns/backends-for-frontends。 创建单独的后台服务用以提供给特定的前端或者接口。当你希望避免为多个接口定制单独的后台时,此模…

7天录用!录用→检索仅21天!CCF推荐毕业神刊

本周投稿推荐 SSCI • 2/4区经管类,2.5-3.0(录用率99%) SCIE(CCF推荐) • 计算机类,2.0-3.0(最快18天录用) SCIE(CCF-C类) • IEEE旗下,1/2…

阿里开源黑白图片上色算法DDColor的部署与测试并将模型转onnx后用c++推理

阿里开源黑白图片上色算法DDColor的部署与测试并将模型转onnx后用c++推理 文章目录 阿里开源黑白图片上色算法DDColor的部署与测试并将模型转onnx后用c++推理简介环境部署下载源码安装环境下载模型测试一下看看效果模型转onnx测试一下生成的onnx模型看看效果C++ 推理简介 DDCo…

C# 中的 null 类型详解与在使用null类型时,有哪些常见陷阱需要避免?

在 C# 中,null 是一个非常特殊的概念,它是表示一个变量没有分配任何值的占位符。在本博客中,我们将深入探讨 C# 中的 null 类型,包括它的定义、特性、使用方法以及如何在面向对象编程中发挥作用。 1. null 类型在 C# 中的定义及特…

限时疯抢!阿里云服务器十大优惠活动合集,手慢无

限时疯抢!阿里云服务器十大优惠活动合集,手慢无阿里云服务器优惠活动(2024年最新整理),阿里云服务器优惠活动大全、2024阿里云优惠政策整理,包括官方优惠活动主会场、2024年4月优惠活动分为:免费…

遥测、遥信、遥控和遥调

遥测、遥信、遥控和遥调是电力系统自动化、远程监控和控制领域的关键术语,尽管它们在应用范围广泛的工业控制系统中也普遍存在。它们描述了远程测量和控制过程中的不同方面。 遥测(Telemetry) 遥测是指从远程或不便接近的地方自动测量和传输…