PyTorch搭建LeNet神经网络

news2024/11/18 21:37:42

函数的参数

1、PyTorch Tensor的通道排序

[batch, channel, height, width]

        batch: 要处理的一批图像的个数

        channel: 通道数(一般是R G B 三个通道)

        height: 图像的高度

        width: 图像的宽度

2.Conv 2d 卷积层的参数 

[in_channels, out_channels, kernel_size, stride = 1,padding = 0]

        in_channels: 输入特征矩阵的深度 (一般为RGB深度为3)

        out_channels:使用卷积核的个数(使用n个卷积核,那么就会生成一个深度为n维的特征矩阵)

        kernel_size:卷积和的大小

        stride = 1: 默认步长为1

        padding = 0: 默认填充为0

卷积层输出尺寸计算公式看深度学习-图像处理-卷积神经网络_cnn卷积神经网络 像素处理-CSDN博客

3.MaxPool2d 池化层的参数 

[kernel_size, stride = None, padding = 0]

        kernel_size:池化核大小,手动设定

        stride = None:步长不设置默认值,但如果没有指定步长,将会与池化核大小相同

        padding = 0:默认填充为0

池化层不改变深度,只改变图像的高度宽度

4.全连接层

全连接层需要输入一维向量,所有我们需要把前面得到的向量展平,通过使用view函数把向量数据展成一维向量。

通过设置节点个数来缩小数据,第一层设置为120,第二层设置为84,第三次最后的设置大小根据数据自身的情况类别来设置。

代码实现

import torch.nn as nn   # 导入包
import torch.nn.functional as F


class LeNet(nn.Module):
    def __init__(self):  # 初始化函数
        super(LeNet, self).__init__()
        self.conv1 = nn.Conv2d(3, 16, 5)  # 卷积层
        self.pool1 = nn.MaxPool2d(2, 2)  # 下采样层
        self.conv2 = nn.Conv2d(16, 32, 5)
        self.pool2 = nn.MaxPool2d(2, 2)
        self.fc1 = nn.Linear(32*5*5, 120)  # 全链接层
        self.fc2 = nn.Linear(120, 84)
        self.fc3 = nn.Linear(84, 10)

    def forward(self, x):  # 正向传播函数
        x = F.relu(self.conv1(x))  # 采用relu激活函数
        x = self.pool1(x)
        x = F.relu(self.conv2(x))
        x = self.pool2(x)
        x = x.view(-1, 32*5*5)  # view函数实现数据展成一维向量
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = self.fc3(x)
        return x

# 测试实例
import torch
input1 = torch.rand([32, 3, 32, 32])  # 输入tensor的通道参数
mode1 = LeNet()
print(mode1)
output = mode1(input1)

 运行结果

 学习碎碎念

深度学习是真难啊,我反复观看视频然后还记了笔记,最后总结成了这一篇(虽然不是很多,但是对我来说都是精华知识了)搭建这个网络主要是为了实现pytorch官网上的一个demo案例,明天我会继续学习的!

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

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

相关文章

从零开始学习PX4源码2(PX4姿态误差计算)

目录 文章目录 目录摘要1.源码1.1源码路径1.2源码程序1.3源码功能 2.源码分析 摘要 本节主要记录PX4姿态误差计算过程,欢迎批评指正。 1.源码 1.1源码路径 PX4-Autopilot/src/modules/mc_att_control/AttitudeControl/AttitudeControl.cpp1.2源码程序 matrix::…

JetBrains TeamCity 身份验证绕过漏洞(CVE-2024-27198)

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

从零开始在kitti数据集上训练yolov5

0.准备工作 0.1 在kitti官网下载kitti数据集 KITTI官网:https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark2d 只需要下载图片和标签 解压后应该有一个training和和testing文件夹,training文件夹下应该有一个image_2文件夹和一个…

(vue)适合后台管理系统开发的前端框架

(vue)适合后台管理系统开发的前端框架 1、D2admin 开源地址:https://github.com/d2-projects/d2-admin 文档地址:https://d2.pub/zh/doc/d2-admin/ 效果预览:https://d2.pub/d2-admin/preview/#/index 开源协议:MIT 2、vue-el…

通过Apple Configurator 2导出iOS ipa包

通过Apple Configurator 2导出iOS ipa包 安装Apple Configurator 2 从Mac AppStore安装Apple Configurator 2 下载ipa 准备工作: 1、 电脑已经安装了Apple Configurator 2 2、 手机已经安装了目标软件 3、 Apple 账号已经下载过目标软件 打开后连接设备&#xf…

Node.js安装及环境配置详细教程

一、下载Node.js安装包 官网下载链接[点击跳转] 建议下载LTS版本(本教程不适用于苹果电脑) 二 、安装Node.js 2.1 下载好安装包后双击打开安装包,然后点击Next 2.2 勾选同意许可后点击Next 2.3 点击Change选择好安装路径后点击Next&#…

基于springboot实现在线考试系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线考试系统演示 摘要 时代在变化,科技技术以无法预测的速度在达到新的高度,并且被应用于社会生活的各个领域,随着生活的加快,也使很多潜在的点逐渐突显出来,社会对于人才的要总是非常迫切的&…

Claude 3 模型发布,压力来到OpenAI这边了~

Anthropic 发布了 Claude 3 系列,包含了三款模型 各具特色,旨在为用户提供更智能、更快速、更高效的选择,可以说是是迄今为止最快、最强大的人工模型! Anthropic 一度是 OpenAI 最强力的竞争对手! 随着 Claude3 的发…

优优嗨聚集团:美团代运营服务,商家增长的新引擎

在当今数字化时代,线上平台已成为商家拓展业务、提升品牌影响力的重要渠道。美团作为国内领先的本地生活服务平台,拥有庞大的用户群体和丰富的商业资源。然而,对于许多商家而言,如何在美团平台上进行有效运营,实现业务…

java核心面试题汇总

文章目录 1. Java1.1. TCP三次握手/四次挥手1.2 HashMap底层原理1.3 Java常见IO模型1.4 线程与线程池工作原理1.5 讲一讲ThreadLocal、Synchronized、volatile底层原理1.6 了解AQS底层原理吗 2. MySQL2.1 MySQL索引为何不采用红黑树,而选择B树2.2 MySQL索引为何不采…

【中国电信】光猫 PT632 使用超管权限修改 IP 地址租期时间

背景 由于光猫默认设置的动态 IP 租期是 24 小时,所以每天都会断网一次,严重影响用网体验,所以打算通过修改动态 IP 租期为 一周(最长就一周,没有永久的选项)来改善。 需求 一台电脑(已开启 …

Git保姆级使用教程

一、版本控制 1.1 团队开发问题 企业项目一般以团队形式实施开发,那团队开发中会出现哪些问题呢? 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之…

【OBS】obs-websocket实战技巧,让你更快的了解OBS

▒ 目录 ▒ 🛫 导读开发环境 1️⃣ 修改OBS-web源码2️⃣ 常用api汇总获取输入源类型列表获取输入源列表获取属性列表打开输入源属性设置框获取设置输入源静音状态获取特殊输入源设置(全局音频设备)打开输入源属性设置框 🛬 文章小…

vue3 ts setup 组合式API 使用教程

vue3中新增了组合式API,本文讲解组合式API setup 的使用 关于setup 的出现和 vue3 js setup 的使用,笔者已经在2022年的文章中说明,这里不再赘述,需要的朋友可以阅读:《vue3 setup 使用教程》 官网文档:h…

MobaXterm无法上传整个文件夹,只能上传的单个文件

问题描述: 本来想使用MobaXterm上传.vscode文件夹上传到服务器,但是选择文件夹打开后只能选择文件夹下面的子文件无法上传整个文件。 解决方案: 1、简单暴力 2、压缩后解压

8个优秀的CSS实践,开发web应用

HTML面试题部分 1.H5的新特性有哪些 2.Label的作用是什么?是怎么用的? 3.HTML5的form如何关闭自动完成功能 4.dom如何实现浏览器内多个标签页之间的通信? 5.实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都 能保持一…

STM32FreeRTOS-事件组1(STM32Cube高效开发教程)

文章目录 一、事件组的原理和功能1、事件组与队列信号量特点2、事件组存储结构3、事件组运行原理 二、事件组部分函数1、xEventGroupCreate()创建事件组函数2、xEventGroupSetBits()事件组置位函数3、xEventGroupSetBitsFromISR()…

PCM会重塑汽车OTA格局吗(2)

目录 1.概述 2. PCM技术视角下的OTA 3.小结 1.概述 上一篇文章,我们着重讲解了OTA的概述内容,和意法半导体推出的跨域融合MCU的四大特征,其中就包含了OTA技术。 他们针对OTA做了比较创新的设计,在总的可用memory容量不变情况…

【go语言开发】yaml文件配置和解析

本文主要介绍使用第三方库来对yaml文件配置和解析。首先安装yaml依赖库;然后yaml文件中配置各项值,并给出demo参考;最后解析yaml文件,由于yaml文件的配置在全局中可能需要,可定义全局变量Config,便于调用 文…

【基于HTML5的网页设计及应用】——float实现页面布局

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…