iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python深度学习pytorch卷积神经网络LeNet
  • 574
分享到

Python深度学习pytorch卷积神经网络LeNet

2024-04-02 19:04:59 574人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录LeNet模型训练不变性 在本节中,我们将介绍LeNet,它是最早发布的卷积神经网络之一。这个模型是由AT&T贝尔实验室的研究院Yann LeCun在1989年提出的(并

在本节中,我们将介绍LeNet,它是最早发布的卷积神经网络之一。这个模型是由AT&T贝尔实验室的研究院Yann LeCun在1989年提出的(并以其命名),目的是识别手写数字。当时,LeNet取得了与支持向量机性能相媲美的成果,成为监督学习的主流方法。LeNet被广泛用于自动取款机中,帮助识别处理支票的数字。

LeNet

总体来看,LeNet(LeNet-5)由两个部分组成:

  • 卷积编码器: 由两个卷积层组成
  • 全连接层密集快: 由三个全连接层组成

在这里插入图片描述

每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均池化层。这里,虽然ReLU和最大池化层更有效,但它们在20世纪90年代还没有出现。每个卷积层使用 5 × 5 5\times5 5×5卷积核和一个sigmoid激活函数。这些层将输入映射到多个二维特征输出,通常同时增加通道的数量。第一卷积层有6个输出通道,而第二个卷积层有16个输出通道。每个 2 × 2 2\times2 2×2池操作通过空间下采样将维数减少4倍。

为了将卷积块中的输出传递给稠密块,我们必须在小批量中战平每个样本。LeNet的稠密快有三个全连接层,分别有120、84和10个输出。因为我们仍在执行分类,所以输出层的10维对应于最后输出结果的数量。

通过下面的LeNet代码,我们会相信深度学习框架实现此类模型非常简单。我们只需要实例化一个Sequential块并将需要的层连接在一起。


import torch
from torch import nn
from d2l import torch as d2l

class Reshape(torch.nn.Module):
	def forward(self, x):
		return x.view(-1, 1, 28, 28)

net = torch.nn.Sequential(
	Reshape(),
	nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),
	nn.AvgPool2d(kernel_size=2, stride=2),
	nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
	nn.AvgPool2d(kernel_size=2, stride=2),
	nn.Flatten(),
	nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
	nn.Linear(120, 84), nn.Sigmoid(),
	nn.Linear(84, 10)
)

我们对原始模型做了一点小改动,去掉了最后一层的高斯激活。除此之外,这个网络与最初的LeNet-5一致。下面,我们将一个大小为 28 × 28 28\times28 28×28的单通道(黑白)图像通过LeNet。通过在每一层打印输出的形状,我们可以检查模型,以确保其操作与我们期望的下图一致。

在这里插入图片描述


X = torch.rand(size=(1, 1, 28, 28), dtype=torch.float32)
for layer in net:
	X = layer(X)
	print(layer.__class__.__name__, 'output shape: \t', X.shape)

Reshape output shape: torch.Size([1, 1, 28, 28])
Conv2d output shape: torch.Size([1, 6, 28, 28])
Sigmoid output shape: torch.Size([1, 6, 28, 28])
AvgPool2d output shape: torch.Size([1, 6, 14, 14])
Conv2d output shape: torch.Size([1, 16, 10, 10])
Sigmoid output shape: torch.Size([1, 16, 10, 10])
AvgPool2d output shape: torch.Size([1, 16, 5, 5])
Flatten output shape: torch.Size([1, 400])
Linear output shape: torch.Size([1, 120])
Sigmoid output shape: torch.Size([1, 120])
Linear output shape: torch.Size([1, 84])
Sigmoid output shape: torch.Size([1, 84])
Linear output shape: torch.Size([1, 10])

请注意,在整个卷积块中,与上一层相比,每一层特征的高度和宽度都减小了。第一个卷积层使用2个像素的填充,来补偿 5 × 5 卷积核导致的特征减少。相反,第二个卷积层没有填充,因此高度和宽度都减少了4个像素。随着层叠的上升,通道的数量从输入时的1个,增加到第一个卷积层之后的6个,再到第二个卷积层之后的16个。同时,每个汇聚层的高度和宽度都减半。最后,每个全连接层减少维度,最终输出一个维数与结果分类数相匹配的输出。

模型训练

现在我们已经实现了LeNet,让我们看看LeNet在Fashion-MNIST数据集上的表现。


batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size = batch_size)

虽然卷积神经网络的参数较少,但与深度的多层感知机相比,它们的计算成本仍然很高,因为每个参数都参与更多的乘法。
如果我们有机会使用GPU,可以用它加快训练。

这里介绍的卷积神经网络是一类强大的、为处理图像数据而设计的神经网络。
基于卷积神经网络结构的模型在计算机视觉领域中已经占主导地位,当今几乎所有的图像识别、对象检测或语义分割相关的问题都是以这种方法为基础。

卷积神经网络需要的参数少于全连接结构的网络,而且卷积也很容易用GPU并行计算。

卷积神经网络是机器学习利用自然图像中一些已知结构的创造性方法。

不变性

卷积神经网络将空间不变性这一概念系统化,从而基于这个模型使用较少的参数来学习有用的表示。

现在,我们归纳下帮助我们设计适合于计算机视觉的神经网络结构的想法:

1.平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反映,即为“平移不变性”。
2.局部性(locality):神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系,这就是“局部性”原则。最终,在后续神经网络,整个图像级别上可以集成这些局部特征用于预测

以上就是python深度学习PyTorch卷积神经网络LeNet的详细内容,更多关于pytorch卷积神经网络LeNet的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python深度学习pytorch卷积神经网络LeNet

本文链接: https://www.lsjlt.com/news/137748.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python深度学习pytorch卷积神经网络LeNet
    目录LeNet模型训练不变性 在本节中,我们将介绍LeNet,它是最早发布的卷积神经网络之一。这个模型是由AT&T贝尔实验室的研究院Yann LeCun在1989年提出的(并...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络图像卷积运算详解
    目录互相关运算卷积层特征映射由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。 互相关运算 严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算(cros...
    99+
    2022-11-12
  • Python深度学习之实现卷积神经网络
    目录一、卷积神经网络二、网络架构三、卷积四、卷积层五、在Keras中构建卷积层六、池化层七、全连接层八、Python实现卷积神经网络九、总结一、卷积神经网络 Yann LeCun 和...
    99+
    2022-11-12
  • Pytorch深度学习经典卷积神经网络resnet模块训练
    目录前言一、resnet二、resnet网络结构三、resnet181.导包2.残差模块2.通道数翻倍残差模块3.rensnet18模块4.数据测试5.损失函数,优化器6.加载数据集...
    99+
    2022-11-11
  • 深度学习实验3 - 卷积神经网络
    文章目录 实验要求数据集定义1 手写二维卷积1.1 自定义卷积通道1.2 自定义卷积层1.3 添加卷积层导模块中1.4 定义超参数1.5 初始化模型、损失函数、优化器1.6 定义模型训练和测试...
    99+
    2023-09-02
    深度学习 cnn python
  • Pytorch深度学习经典卷积神经网络resnet模块实例分析
    这篇文章主要介绍“Pytorch深度学习经典卷积神经网络resnet模块实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Pytorch深度学习经典卷积神经网络resnet模块实例分析”文章能帮...
    99+
    2023-06-30
  • Python编程pytorch深度卷积神经网络AlexNet详解
    目录 容量控制和预处理读取数据集2012年,AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。AlexNet使用了8...
    99+
    2022-11-12
  • Python Pytorch深度学习之神经网络
    目录一、简介二、神经网络训练过程2、通过调用net.parameters()返回模型可训练的参数3、迭代整个输入4、调用反向传播5、计算损失值6、反向传播梯度7、更新神经网络参数总结...
    99+
    2022-11-12
  • 深度学习—卷积神经网络(CNN)全笔记,附代码
     本文内容为哔站学习笔记【卷积神经网络-CNN】深度学习(唐宇迪带你学AI):卷积神经网络理论详解与项目实战,计算机视觉,图像识别模块实战_哔哩哔哩_bilibili 目录 深度学习基础 什么是深度学习? 机器学习流程  特征工程的作...
    99+
    2023-10-23
    神经网络 深度学习 cnn python 图像处理
  • Python深度学习pytorch神经网络块的网络之VGG
    目录VGG块VGG网络训练模型与芯片设计中工程师从放置晶体管到逻辑元件再到逻辑块的过程类似,神经网络结构的设计也逐渐变得更加抽象。研究人员开始从单个神经元的角度思考问题,发展到整个层...
    99+
    2022-11-12
  • Pytorch卷积神经网络resent网络实践
    目录前言一、技术介绍二、实现途径三、总结前言 上篇文章,讲了经典卷积神经网络-resnet,这篇文章通过resnet网络,做一些具体的事情。 一、技术介绍 总的来说,第一步首先要加载...
    99+
    2022-11-11
  • Pytorch卷积神经网络迁移学习的目标及好处
    目录前言一、经典的卷积神经网络二、迁移学习的目标三、好处四、步骤五、代码前言 在深度学习训练的过程中,随着网络层数的提升,我们训练的次数,参数都会提高,训练时间相应就会增加,我们今天...
    99+
    2022-11-11
  • Python深度学习pytorch神经网络汇聚层理解
    目录最大汇聚层和平均汇聚层填充和步幅多个通道我们的机器学习任务通常会跟全局图像的问题有关(例如,“图像是否包含一只猫呢?”),所以我们最后一层的神经元应该对整个输入的全局敏感。通过逐...
    99+
    2022-11-12
  • TensorFlow深度学习另一种程序风格实现卷积神经网络
    import tensorflow as tf import numpy as np import input_data mnist = input_data.read_data...
    99+
    2022-11-12
  • Python深度学习pytorch神经网络Dropout应用详解解
    目录扰动的鲁棒性实践中的dropout简洁实现扰动的鲁棒性 在之前我们讨论权重衰减(L2​正则化)时看到的那样,参数的范数也代表了一种有用的简单性度量。简单性的另一个有用...
    99+
    2022-11-12
  • Python深度学习理解pytorch神经网络批量归一化
    目录训练深层网络为什么要批量归一化层呢?批量归一化层全连接层卷积层预测过程中的批量归一化使用批量归一化层的LeNet简明实现争议训练深层神经网络是十分困难的,特别是在较短的实践内使他...
    99+
    2022-11-12
  • Pytorch 使用Google Colab训练神经网络深度学习
    目录学习前言什么是Google Colab相关链接利用Colab进行训练一、数据集与预训练权重的上传1、数据集的上传2、预训练权重的上传二、打开Colab并配置环境1、笔记本的创建2...
    99+
    2022-11-10
  • Python深度学习神经网络残差块
    目录ResNet模型训练模型 ResNet沿用VGG完整的KaTeX parse error: Undefined control sequence: \time at posit...
    99+
    2022-11-12
  • python机器学习GCN图卷积神经网络原理解析
    目录1. 图信号处理知识1.1 图的拉普拉斯矩阵1.1.1 拉普拉斯矩阵的定义及示例1.1.2 正则化拉普拉斯矩阵1.2 图上的傅里叶变换1.3 图信号滤波器2. 图卷积神经网络2....
    99+
    2022-11-11
  • Python深度学习pytorch神经网络多输入多输出通道
    目录多输入通道多输出通道 1×1卷积层虽然每个图像具有多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来指示红、绿和蓝。但是到目前为止,我们仅展示了单个输入和单个输出...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作