resnet18实现cifar10分类

article/2025/11/10 13:22:12

实验步骤

搭建resnet18网络

数据集加载

模型训练和改进

分析评估

Kaggle提交

网络构建

实验初期拟采用torchvision中实现的resnet18作为网络结构,为了方便修改网络结构,于是重新实现了resnet18网络

resnet18由一个7x7的降采样卷积,一个max pooling层,8个basicblock,一个全局池化层,最后接一个全连接层组成,如下图

image-20211223160315574image-20211223160156154

tensorboard网络结构可视化,左图为torchvision中的resnet实现,右图为自定义实现

代码如下

定义残差块

class IdentityBlock(nn.Module):def __init__(self, in_channels, out_channels, down_sampling=False):super().__init__()self.down_sampling = down_samplingself.in_channels = in_channelsself.out_channels = out_channelsself.conv1 = nn.Sequential(OrderedDict([('conv1', nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=3,stride=(1 if in_channels == out_channels else 2), padding=1,bias=False)),('bn1', nn.BatchNorm2d(out_channels)),('relu1', nn.ReLU())]))self.shortcut = nn.Sequential(OrderedDict([('conv',nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=1, stride=2, bias=False)),('bn', nn.BatchNorm2d(out_channels))])) if in_channels != out_channels else nn.Sequential()self.conv2 = nn.Sequential(OrderedDict([('conv2', nn.Conv2d(in_channels=out_channels, out_channels=out_channels, kernel_size=3, stride=1, padding=1,bias=False)),('bn2', nn.BatchNorm2d(out_channels))]))self.relu2 = nn.ReLU()def forward(self, x):fx = self.conv1(x)fx = self.conv2(fx)x = self.shortcut(x)hx = fx + xhx = self.relu2(hx)return hx

定义模型网络

class Resnet18(nn.Module):def __init__(self, num_classes):super(Resnet18, self).__init__()self.conv1 = nn.Sequential(OrderedDict([('conv', nn.Conv2d(in_channels=3, out_channels=64, kernel_size=7, stride=2, padding=3, bias=False)),('bn', nn.BatchNorm2d(64)),('relu', nn.ReLU()),]))self.max_pool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1)self.layer1 = self.make_layer(64

http://chatgpt.dhexx.cn/article/kRh370fS.shtml

相关文章

resnet18 结构

可以看到 在fc 层之前的一层是avgpool 层 其实就是卷积 只有alenet 才是3个全连接吧

【深度学习】基于PyTorch搭建ResNet18、ResNet34、ResNet50、ResNet101、ResNet152网络

一、使用PyTorch搭建ResNet18网络并使用CIFAR10数据集训练测试 1. ResNet18网络结构 所有不同层数的ResNet: 这里给出了我认为比较详细的ResNet18网络具体参数和执行流程图: 2. 实现代码 这里并未采用BasicBlock和BottleNeck复现ResNet18 具体ResN…

【Pytorch项目实战】之ResNet系列:resnet18、resnet34、resnet50、resnet101、resnet152

文章目录 一、项目思路二、源码下载(1)网络模型:resnet.py(2)附属代码1:_internally_replaced_utils.py(3)附属代码2:utils.py 三、源码详解3.1、导入模块3.2、API接口&a…

Tensorflow2.0使用Resnet18进行数据训练

在今年的3月7号,谷歌在 Tensorflow Developer Summit 2019 大会上发布 TensorFlow 2.0 Alpha 版,随后又发布了Beta版本。 Resnet18结构 Tensorflow搭建Resnet18 导入第三方库 import tensorflow as tf from tensorflow import keras from tensorflow.k…

resnet 18 实现

一、残差块 让我们聚焦于神经网络局部:如图7.6.2所示,假设我们的原始输入为x,而希望学出的理想映射为f(x)(作为 图7.6.2上方激活函数的输入)。 图7.6.2左图虚线框中的部分需要直接拟合出该映射f(x),而右图…

ResNet18复现

ResNet18的网络架构图 首先将网络分为四层(layers),每层有两个模块组成,除了第一层是两个普通的残差块组成,其它三层有一个普通的残差块和下采样的卷积块组成。输入图像为3x224x224格式,经过卷积池化后为64…

ResNet18和ResNet50的keras实现

注意低版本的keras对一些包的引用方式跟高版本有区别,注意看章节1的代码注释部分。 TensorFlow跟Keras也有版本的对应关系,https://master–floydhub-docs.netlify.app/guides/environments/。 例如: 1.ResNet18 ResNet18 from tensorfl…

【学习笔记】resnet-18 pytorch源代码解读

目录 ResNet-18网络结构简图ResNet-18的代码结构残差块结构ResNet类构造方法和forward_make_layer方法 完整的ResNet-18结构图 使用的resnet-18的源代码来源于 PyTorch1.0, torchvision0.2.2 ResNet-18网络结构简图 ResNet(Residual Neural Network&a…

ResNet18详细原理(含tensorflow版源码)

ResNet18原理 ResNet18是一个经典的深度卷积神经网络模型,由微软亚洲研究院提出,用于参加2015年的ImageNet图像分类比赛。ResNet18的名称来源于网络中包含的18个卷积层。 ResNet18的基本结构如下: 输入层:接收大小为224x224的RG…

resnet18

前言 在前篇vgg16之后,无法成功训练vgg16,发现是自己电脑可用的显存太低了,遂放弃。 在2015 ILSVRC&COCO比赛中,何恺明团队提出的Resnet网络斩获第一,这是一个经典的网络。李沐说过,如果要学习一个CNN网…

ResNet18网络的具体构成

一、基础 RetNet网络的基础是残差块。 以下是原始论文所给出的最基础的残差块。后续可以对单残差块进行处理,如加入池化,批量化归一等各种操作。 二、最基本的的ResNet18 ResNet18的基本含义是,网络的基本架构是ResNet,网络的深…

【神经网络】(10) Resnet18、34 残差网络复现,附python完整代码

各位同学好,今天和大家分享一下 TensorFlow 深度学习中如何搭载 Resnet18 和 Resnet34 残差神经网络,残差网络利用 shotcut 的方法成功解决了网络退化的问题,在训练集和校验集上,都证明了的更深的网络错误率越小。 论文中给出的具…

Resnet 18网络模型

1. 残差网络:(Resnet) 残差块: 让我们聚焦于神经网络局部:如图左侧所示,假设我们的原始输入为x,而希望学出的理想映射为f(x)(作为上方激活函数的输入)。左图虚线框中…

【ResNet】Pytorch从零构建ResNet18

Pytorch从零构建ResNet 第一章 从零构建ResNet18 第二章 从零构建ResNet50 文章目录 Pytorch从零构建ResNet前言一、ResNet是什么?1. 残差学习2. ResNet具体结构 二、ResNet分步骤实现三、完整例子测试总结 前言 ResNet 目前是应用很广的网络基础框架,所…

HTML+CSS 简单的顶部导航栏菜单制作

导航栏的制作: 技术要求: CSSHTML各类标签 实现目的: 制作导航栏菜单 代码分析: 基本样式清除无序列原点删除下划线删除文字默认居中a标签设置块级元素伪类选择器对a状态修饰 分步实现: 分三栏布局:…

WEB前端(7)—— 简单的 HTML+CSS 导航栏案例

适合每个新手的导航栏&#xff1a; 代码与运行效果如图&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>导航栏</title><style type"text/css">ul{/*设置导航栏的框框*/margin: 30px…

CSS — 导航栏篇(一)

Navigation Bar Navigation Bar 是什么&#xff1f;这就是每个网站都会有的导航栏&#xff0c;本文将会带你接触导航栏的世界。首先我们需要了解导航栏的作用——它能快速帮助用户进行需求选择。一个清晰的导航栏能让用户第一时间了解网站的基本模块功能&#xff0c;而且作为网…

CSS + HTML导航栏效果

今天写了一个导航栏&#xff0c;需要的效果如下&#xff1a; 实现的代码思路如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>导航栏</title><style type"text/css&qu…

html+css创建侧边导航栏

效果&#xff1a; 代码&#xff1a; .left{position: fixed;width: 250px;height: 2000px;background-color: rgb(100, 93, 93);float: left;text-align: center; } .nav a{display: block;width: 247px;height: 70px;background-color: rgb(100, 93, 93);color: rgb(254, 254…

HTML5+CSS3制作底部导航栏

目录 前言 一、底部导航栏示例图 二、HTML框架 1.一号盒子 2.二号盒子 总结 ​​​​​​ 前言 在日常的网上冲浪中&#xff0c;我们常常在网页最底部&#xff0c;看到一大堆链接&#xff0c;非常整齐&#xff0c;一目了然&#xff0c;那么是如何实现的呢&#xff1f;..…