当前位置: 首页 > article >正文

CNN(卷积神经网络)

什么是CNN

CNN(卷积神经网络),是通过提取特征来压缩计算的一个网络结构,主要由卷积层、池化层、全连接层组成。

卷积层

在卷积层中,通过卷积核的移动对不同的区域提取特征生成一个新的矩阵,比如一个原始数据是55的矩阵,卷积核的大小是22,每次移动一步,我们就能从这个原始数据中提取出有9有效数据的5*5矩阵

池化层

在提取出特征矩阵后,依旧是一个5*5的矩阵,这是就可以通过池化层来缩小这个矩阵,从而减小矩阵的大小,最常见的池化有平均池化、最大池化

激活函数

激活函数的作用就是让上面的线性变换引入非线性的因果,从而形成非线性变换函数。常见的激活函数有Sigmoid、tanh、Relu、Leaky Relu、Maxout、ELU。
问题一:为什么我们要使用激活函数呢?

如果不使用激活函数,我们的每一层输出只是承接了上一层输入函数的线性变换,无论神经网络有多少层,输出都是输入的线性组合。如果使用的话,激活函数给神经元引入了非线性的因素,使得神经网络可以逼近任何非线性函数,这样神经网络就可以应用到非线性模型中。

问题二:那么为什么我们需要非线性函数?

非线性函数是那些一级以上的函数,而且当绘制非线性函数时它们具有曲率。现在我们需要一个可以学习和表示几乎任何东西的神经网络模型,以及可以将输入映射到输出的任意复杂函数。神经网络被认为是通用函数近似器(Universal Function Approximators)。这意味着他们可以计算和学习任何函数。几乎我们可以想到的任何过程都可以表示为神经网络中的函数计算。

全连接层

在池化层中缩小矩阵后,就需要通过全连接层来进行分类,从而达到记住这个特征的目的

LeNet网络

下面是一个案例去实现一个简单的卷积神经网络,通过pytorch编写的一个LeNet网络,在这个网络中有两层卷积操作

import torch
from torch import nn
from torchsummary import summaryclass LeNet(nn.Module):def __init__(self):super().__init__()# 卷积核# in_channels:输入的图像通道数,比如黑白图像就是1个通道,彩色图像也就是RGB是3通道# out_channels:输出的通道数,也就是通过这个卷积核要输出多少个特征图# kernel_size:卷积核的大小,用于去做特征图投影的大小  # padding:在输出图的边缘补2像素的0以保持尺寸self.conv1 = nn.Conv2d(1, 6, 5,padding=2)# 激活函数self.sig = nn.Sigmoid()# 池化层self.s1 = nn.AvgPool2d(2, 2)self.conv2 = nn.Conv2d(6, 16, 5)self.s2 = nn.AvgPool2d(2, 2)# 展平,将经过卷积后的数据展平成tensorself.flatten = nn.Flatten()# 全链接层self.fc1 = nn.Linear(16*5*5, 120)self.fc2 = nn.Linear(120, 84)self.fc3 = nn.Linear(84, 10)def forward(self, x):x = self.sig(self.conv1(x))x = self.s1(x)x = self.sig(self.conv2(x))x = self.s2(x)x = self.flatten(x)x = self.fc1(x)x = self.fc2(x)y = self.fc3(x)return y
if __name__ == "__main__":device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")model = LeNet().to(device)print(summary(model, (1, 28, 28)))

相关文章:

CNN(卷积神经网络)

什么是CNN CNN(卷积神经网络),是通过提取特征来压缩计算的一个网络结构,主要由卷积层、池化层、全连接层组成。 卷积层 在卷积层中,通过卷积核的移动对不同的区域提取特征生成一个新的矩阵,比如一个原始…...

Linux 内核网络协议栈中的 struct packet_type:以 ip_packet_type 为例

在 Linux 内核的网络协议栈中,struct packet_type 是一个核心数据结构,用于注册特定协议类型的数据包处理逻辑。它定义了如何处理特定协议的数据包,并通过协议类型匹配机制实现协议分发。本文将通过分析 ip_packet_type 的定义和作用,深入探讨其在网络协议栈中的重要性。 …...

网络问题之TCP/UDP协议

1. TCP是什么? TCP(Transmission Control Protocol,传输控制协议)是互联网核心协议之一,属于传输层协议,为应用程序提供可靠的、面向连接的字节流服务。 基本特性 可靠性:通过确认机制、重传机…...

vue3腾讯云直播 前端拉流(前端页面展示直播)

1、引入文件&#xff0c;在index.html <link href"https://tcsdk.com/player/tcplayer/release/v5.3.2/tcplayer.min.css" rel"stylesheet" /><!--播放器脚本文件--><script src"https://tcsdk.com/player/tcplayer/release/v5.3.2/t…...

【MYSQL从入门到精通】数据库基础操作、数据类型

目录 一些基础操作语句 创建库名 选择要操作的数据库 删除数据库 磁盘中删除文件的原理 数据库安全的各种措置 查看MYSQL的帮助 数值类型 字符串类型 日期类型 一些基础操作语句 1.使用客户端工具连接数据库服务器&#xff1a;mysql -uroot -p 2.查看所有数据库&am…...

JS里对于集合的简单介绍

JS的集合 前言一、集合二、基本使用1. 创建集合2. 添加元素3. 删除元素4. 检查元素5. 清空集合6. 集合的大小 三、扩展使用1. 遍历集合2. 从数组创建集合3. 集合的应用场景 四、总结 前言 JS里对于集合的简单介绍 同数学的集合&#xff0c;有无序性、唯一性 注意&#xff1a;…...

论文阅读笔记——Multi-Token Attention

MTA 论文 在 Transformer 中计算注意力权重时&#xff0c;仅依赖单个 Q 和 K 的相似度&#xff0c;无法有效捕捉多标记组合信息。&#xff08;对于 A、B 两个词&#xff0c;单标记注意力需要分别计算两个词的注意力分数&#xff0c;再通过后处理定位共同出现的位置或通过多层隐…...

Sql with as 语句

在SQL查询中&#xff0c;经常会遇到需要重复使用的子查询。为了简化查询语句并提高可读性&#xff0c;SQL引入了WITH AS语法。通过使用WITH AS&#xff0c;我们可以创建临时表或视图&#xff0c;将子查询的结果保存起来&#xff0c;并在主查询中使用。本文将通过示例介绍SQL中W…...

vue3 antdesign table表格特定单元格背景变色

效果&#xff1a; <a-table :columns"columnsAll" :data-source"tableAllData"bordered size"middle" :scroll"{ x: 100,y: 600 }" :pagination"false"style"margin: 0 10px 10px 10px;" ><template #…...

【C语言】--- 编译和链接

编译和链接 1. 翻译环境和运行环境2. 翻译环境2.1 预处理2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 3. 运行环境 1. 翻译环境和运行环境 计算机只能运行二进制指令&#xff0c;所以我们的.c的文本程序需要先翻译为二进制程序才能被计算机执行。在…...

Qwen2.5-7B-Instruct FastApi 部署调用教程

1 环境准备 基础环境最低要求说明&#xff1a; 环境名称版本信息1Ubuntu22.04.4 LTSCudaV12.1.105Python3.12.4NVIDIA CorporationRTX 3090 首先 pip 换源加速下载并安装依赖包 # 升级pip python -m pip install --upgrade pip # 更换 pypi 源加速库的安装 pip config set g…...

深入解析Python爬虫技术:从基础到实战的功能工具开发指南

一、引言:Python 爬虫技术的核心价值 在数据驱动的时代,网络爬虫作为获取公开数据的重要工具,正发挥着越来越关键的作用。Python 凭借其简洁的语法、丰富的生态工具以及强大的扩展性,成为爬虫开发的首选语言。根据 Stack Overflow 2024 年开发者调查,68% 的专业爬虫开发者…...

前端 Vue: Cannot find module XX or its corresponding type declarations.

记一个常见错误&#xff0c;每次创建完新的vuetsvite项目&#xff0c;在配置路由的时候总会找不到vue文件&#xff0c;我用的是Webstorm&#xff0c;在设置里面修改以下设置&#xff0c;即可消除警告。...

数字内容体验案例解析与行业应用

数字内容案例深度解析 在零售行业头部品牌的实践中&#xff0c;数字内容体验的革新直接推动了用户行为模式的转变。某国际美妆集团通过搭建智能内容中台&#xff0c;将产品信息库与消费者行为数据实时对接&#xff0c;实现不同渠道的动态内容生成。其电商平台首页的交互式AR试…...

Webpack中的文件指纹:给资源戴上个“名牌”

你是否想过&#xff0c;当你修改代码后&#xff0c;浏览器为什么仍然拿着旧版资源不放&#xff1f;秘密就在于——文件指纹&#xff01;简单来说&#xff0c;文件指纹就像给每个构建出来的文件贴上独一无二的“姓名牌”&#xff0c;告诉浏览器&#xff1a;“嘿&#xff0c;我更…...

HBuilderX中uni-app打包Android(apk)全流程超详细打包

一、Android生成打包证书 1、Android平台签名证书(.keystore)生成指南_android 签名生成-CSDN博客&#xff08;如果不上架应用商店可以跳过&#xff0c;可以使用云端证书&#xff09; 二、打开manifest.json配置基础设置 三、配置安卓应用图标 四、配置安卓启动页图片 五、…...

多模态大模型重塑自动驾驶:技术融合与实践路径全解析

目录 1、 引言&#xff1a;AI与自动驾驶的革命性融合 2、五大领先多模态模型解析 2.1 Qwen2.5-Omni&#xff1a;全模态集大成者 2.2. LLaVA&#xff1a;视觉语言理解专家 2.3. Qwen2-VL&#xff1a;长视频理解能手 2.4. X-InstructBLIP&#xff1a;跨模态理解框架 2.5. …...

MySQL 中查询 VARCHAR 类型 JSON 数据的

在数据库设计中&#xff0c;有时我们会将 JSON 数据存储在 VARCHAR 或 TEXT 类型字段中。这种方式虽然灵活&#xff0c;但在查询时需要特别注意。本文将详细介绍如何在 MySQL 中有效查询存储为 VARCHAR 类型的 JSON 数据。 一、问题背景 当 JSON 数据存储在 VARCHAR 列中时&a…...

vue2 el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值。

项目场景&#xff1a; <el-table-column label"税率" prop"TaxRate" width"180" align"center" show-overflow-tooltip><template slot-scope"{row, $index}"><el-form-item :prop"InquiryItemList. …...

OFDM CP 对解码影响

OFDM符号间会存在ISI&#xff0c;为了解决该问题在符号间插入了循环前缀&#xff0c;可以说这个发明是OFDM能够实用的关键&#xff0c;在多径信道中CP可以有效的解决符号间干扰。3GPP中对于不同SCS 定义了不同的CP长度&#xff1a; 5G Cyclic Prefix (CP) Design -5G Physical …...

oracle em修复之路

很早以前写的文章&#xff0c;再草稿中存放太久了&#xff0c;今天开始整理20年来工作体会&#xff0c;以后陆续发出&#xff0c;希望给大家提供小小的帮助。 去年做的项目使用的oracle数据库&#xff0c;最近要看一下&#xff0c;启动机器进入系统&#xff0c;出现无法加载数…...

STM32学习之ARM内核自带的中断

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

【Windows】Win2008服务器SQL服务监控重启脚本

以下是一个用于监控并自动重启 SQL Server 服务的批处理脚本&#xff0c;适用于 Windows Server 2008 和 SQL Server 2012&#xff08;默认实例&#xff09;&#xff1a; echo off setlocal enabledelayedexpansion:: 配置参数 set SERVICE_NAMEMSSQLSERVER set LOG_FILEC:\SQ…...

大型语言模型中的工具调用(Function Calling)技术详解

一、引言 随着大型语言模型&#xff08;LLM&#xff09;能力的飞速发展&#xff0c;它们在自然语言理解、文本生成、对话交互等方面展现出了令人惊叹的表现。然而&#xff0c;LLM 本身并不具备执行外部操作的能力&#xff0c;比如访问网页、调用第三方 API、执行精确数学运算等…...

Vue3.5 企业级管理系统实战(十四):动态主题切换

动态主题切换是针对用户体验的常见的功能之一&#xff0c;我们可以自己实现如暗黑模式、明亮模式的切换&#xff0c;也可以利用 Element Plus 默认支持的强大动态主题方案实现。这里我们探讨的是后者通过 CSS 变量设置的方案。 1 组件准备 1.1 修改 Navbar 组件 在 src/layo…...

解决Ubuntu20.04安装ROS2的问题(操作记录)

一、ROS 系统安装版本选择 每版的Ubuntu系统版本都有与之对应ROS版本&#xff0c;每一版ROS都有其对应版本的Ubuntu版本&#xff0c;切记不可随便装。ROS 和Ubuntu之间的版本对应关系如下&#xff1a;&#xff08; 可以从这个网站查看ROS2的各个发行版本的介绍信息。&#xff…...

C# 设置Excel中文本的对齐方式、换行、和旋转

在 Excel 中&#xff0c;对齐、换行和旋转是用于设置单元格内容显示方式的功能。合理的设置这些文本选项可以帮助用户更好地组织和展示 Excel 表格中的数据&#xff0c;使表格更加清晰、易读&#xff0c;提高数据的可视化效果。本文将介绍如何在.NET 程序中通过C# 设置Excel单元…...

Python 的 re.split()

文章目录 栗子&#xff1a;关键点&#xff1a;进阶用法&#xff1a;对比普通 split()&#xff1a;典型应用场景&#xff1a; 如何使用 Python 的 re.split() 方法通过正则表达式分割字符串。 栗子&#xff1a; import re s "apple123banana456orange" print(re.sp…...

大数据(6)【Kettle入门指南】从零开始掌握ETL工具:基础操作与实战案例解析

目录 为什么需要Kettle&#xff1f;‌一、Kettle基础概念与核心功能‌1.1 什么是Kettle&#xff1f;‌‌1.2 核心组件‌1.3 优势亮点‌ 二、Kettle安装与快速上手‌‌2.1 环境准备‌‌2.2 启动Spoon‌ ‌‌三、实战案例&#xff1a;从CSV到MySQL的数据迁移与清洗‌‌3.1 创建转…...

5.DJI-PSDK:Psdk开发负载与Msdk的应用app进行交互:

DJI-PSDK:Psdk开发负载与Msdk的应用app进行交互: 负载设备和无人机使用数据传输模块,在控制命令传输通道上以透传的方式在PSDK和MSDK间传输控制指令。在高速数据传输通道上以透传的方式在PSDK和MSDK间传输数据信息以及用户自定义的数据。使用数据传输功能,不仅可以设置不同…...