PyTorch搭建LeNet神经网络

函数的参数

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 Fclass 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.mzph.cn/news/722437.shtml

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

相关文章

Golang 开发实战day01 - Variable String Numeric

Golang 教程01 - Variable String Numeric 1. Go语言的重要性 Go语言,又称Golang,是一种由Google开发的静态编译型编程语言。它于2009年首次发布,并在短短几年内迅速流行起来。Go语言具有以下特点: 语法简单易学:Go…

【牛客】SQL137 第二快/慢用时之差大于试卷时长一半的试卷-窗口函数

描述 现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长, release_time发布时间): idexam_idtagdifficultydurationrelease_time19001SQLhard602021-09-01 06:00:0029002Chard602021-09-0…

C 运算符

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 将逐一介绍算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和…

第一节 JDBC是什么?

JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语言编程中与数据库连接的API。 JDBC库包括通常与数据库使用相关,如下面提到的…

链表哨兵例子

哨兵链表例子_根据值删除链表 package linklist;public class leetcode203 {public static void main(String[] args) {ListNode listNode new ListNode(1,new ListNode(2,new ListNode(3)));ListNode listNode1 removeElements(listNode,2);System.out.println(listNode1);…

LeetCode.232. 用栈实现队列

题目 232. 用栈实现队列 分析 先了解一下栈和队列的特点: 栈:先进后出队列:先进先出 想用栈实现队列的特点,就需要使用两个栈。因为两个栈就可以将列表倒序。 假设第一个栈 s1 [1,2,3],第二个栈 s2 [] 。若循环…

php压缩一个文件,多个文件,目录生成zip压缩包,压缩并下载zip包

我们将一个文件生成一个压缩包。 <?php $path "c:/wamp/www/log.txt"; $filename "test.zip"; $zip new ZipArchive(); $zip->open($filename,ZipArchive::CREATE); //打开压缩包 $zip->addFile($path,basename($path)); //向压缩包中添…

STM32FreeRTOS消息队列(STM32Cube高效开发)

文章目录 一、队列&#xff08;一&#xff09;简介&#xff08;二&#xff09;FreeRTOS队列特点1、入队阻塞&#xff1a;队列满了&#xff0c;此时无法继续写入数据2、出队阻塞&#xff1a;队列为空&#xff0c;此时无法读出数据3、入队阻塞解除&#xff0c;有多个任务等待时&a…

【李沐论文精读】GAN精读

论文&#xff1a;Generative adversarial nets 参考&#xff1a;GAN论文逐段精读、生成对抗网络、李沐视频精读系列 一、介绍 什么是GAN? GAN(Generative adversarial network&#xff0c;生成对抗网络&#xff09;&#xff0c;它由生成器G&#xff08;Generator Neural Netwo…

原理篇-- 定时任务xxl-job-服务端(admin)项目执行器注册执行器任务状态回调

文章目录 前言一、执行器注册&执行器任务状态回调触发时机&#xff1a;二、服务端接收执行器和任务执行状态请求&#xff1a;2.1 JobApiController&#xff1a;2.2 AdminBiz 接口:2.3 AdminBiz 接口实现类AdminBizImpl&#xff1a;2.4 执行器注册&#xff1a;2.5 执行器的移…

长电科技斥资45亿元收购晟碟半导体80%股权

2024年3月3日&#xff0c;西部数据公司旗下间接全资子公司SanDisk中国有限公司与长电科技有限公司&#xff08;JCET集团有限公司的全资子公司&#xff09;签订了股权购买协议。根据协议&#xff0c;SanDisk中国将向JCET出售其间接全资子公司、在中国注册成立的外商独资有限责任…

如何把已安装的nodejs高版本降级为低版本

第一步.先清空本地安装的node.js版本 按健winR弹出窗口&#xff0c;键盘输入cmd,然后敲回车&#xff08;或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出&#xff0c;输入cmd再点击回车键&#xff09; 然后进入命令控制行窗口&#xff0c;并输入where node查看之前本地安装…

HTML(基本标签)

HTML标签 <div>div标签</div> <span>这是一个span标签</span> <p>段落标签</p> 图片标签 --相对路径 <img src"../images/手.bmp/" alt"图像显示不出来的时候用文字替换" title"这是一个提示文本"…

android开发游戏加速器,Android架构组件Room功能详解

Java基础 Java Object类方法HashMap原理&#xff0c;Hash冲突&#xff0c;并发集合&#xff0c;线程安全集合及实现原理HashMap 和 HashTable 区别HashCode 作用&#xff0c;如何重载hashCode方法ArrayList与LinkList区别与联系GC机制Java反射机制&#xff0c;Java代理模式Jav…

【Spring Cloud原理详解】介绍

Spring Cloud Spring Cloud基于Spring Boot提供了在分布式系统&#xff08;如配置管理、服务发现、断路器、智能路由、微代理、控制总线&#xff09;中常见模式的一站式解决方案&#xff0c;Spring Cloud使用了Spring Boot的开发便利性&#xff0c;简化了分布式系统基础设施的…

dolphinescheduler调用API

&#xff08;作者&#xff1a;陈玓玏&#xff09; 1. 打开api文档 api文档地址&#xff1a;http://{api server ip}:12345/dolphinscheduler/swagger-ui/index.html?languagezh_CN&langcn&#xff0c;我是用k8s部署的&#xff0c;所以ip和端口是由service决定的&#xf…

Spring MVC 面试题及答案整理,最新面试题

Spring MVC中的DispatcherServlet是什么&#xff0c;它如何工作&#xff1f; DispatcherServlet是Spring MVC中的核心组件&#xff0c;负责协调不同的请求处理器。它的工作流程包括&#xff1a; 1、请求接收&#xff1a; 接收HTTP请求&#xff0c;并将其转发到相应的处理器。…

鱼哥赠书活动第⑩期:一本书讲透ChatGPT,实现从理论到实践的跨越!大模型技术工程师必读

鱼哥赠书活动第⑩期&#xff1a; 内容简介&#xff1a;作者简介&#xff1a;读者对象&#xff1a;直播预告&#xff1a;购书链接&#xff1a;赠书抽奖规则:往期赠书福利&#xff1a; OpenAI 在 2022 年 11 月推出了人工智能聊天应用—ChatGPT。它具有广泛的应用场景&#xff0c…

【Python 识别某滑块的距离】今天来换思维搞滑块,不用识别库,几行代码就能搞定,仅供学习

写作日期&#xff1a;2024.03.05 使用工具&#xff1a;Python 温馨提示&#xff1a;此方法仅对有完整图和缺口图的滑块有效&#xff0c;可精准识别出缺口要滑动的距离 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES处理&#xff08;直接…

SpringCloud之OpenFeign入门与实战系列

目录 一、什么是 OpenFeign? 1.1 OpenFeign 功能升级 二、OpenFeign超时重试机制 2.1 超时重试机制 2.2 自定义超时重试机制 2.2.2 自定义超时重试类 2.3 OpenFeign 超时重试的底层原理 一、什么是 OpenFeign? OpenFeign 的全称为 Spring Cloud OpenFeign(下文简称 Op…