跟着刘二大人学pytorch(第---10---节课之卷积神经网络)
文章目录
- 0 前言
- 0.1 课程链接:
- 0.2 课件下载地址:
- 回忆
- 卷积
- 卷积过程(以输入为单通道、1个卷积核为例)
- 卷积过程(以输入为3通道、1个卷积核为例)
- 卷积过程(以输入为N通道、1个卷积核为例)
- 卷积过程(以输入为N通道、M个卷积核为例)
- Padding
- Padding(padding=1)
- 步长stride(stride=2)
- 下采样(Max Pooling Layer)
- 一个简单的例子
- 如果有GPU的话,代码如何改
- 结果
- 作业
0 前言
0.1 课程链接:
《PyTorch深度学习实践》完结合集
有大佬已经写好了笔记:大佬的笔记
pytorch=0.4
0.2 课件下载地址:
链接:https://pan.baidu.com/s/1_J1f5VSyYl-Jj2qIuc1pXw
提取码:wyhu
回忆
全连接
通道×宽×高
如果按全连接的话就破坏了原来的空间信息
下采样:通道数不变,目的是减少数据量,降低运算
构建一个神经网络之前首先考虑输入的张量的维度是什么,输出的张量维度是什么,使得卷积神经网络顺利先跑起来。
所有的卷积层+下采样合起来被称为:特征提取器(Feature Extraction),即找出某种特征。
接下来介绍卷积、下采样
通过下图直观的认识这两个东西
卷积
讲解卷积之前,先讨论一下图像是什么
在计算机领域遇到的图像都称为RGB图像,要表示一个像素,图片被分成一个一个单元格子,每个格子有一个颜色值,这样就构成一个图像,这样的图像被称为栅格图像,相机、显微镜在处理图像时
中学时学的一个东西叫光敏电阻,该电阻可以根据光照电阻发生变化.
通过多个个光敏电阻,做成一个阵列,每个光阻通过光阻都可以反映一个范围内的光的强度,通过光的强度与电阻之间的对应关系关系,可以画出阵列所反映的图,由电阻值转变为光的强度值,该图即为黑白图。
像素为2×2
光阻放的越多,得到的图片的像素越大,有的手机虚表像素值,是因为将没有的像素进行了插值,取临近的一些像素值的平均值,
1)红色传感器对红色波段比较敏感,R,红色传感器中的电阻值可以反应灰度级别,即到底有多红,用0-255中的值来定义灰度的级别,以下类似
2)蓝色传感器对蓝色波段比较敏感,G
3)绿色传感器对绿色波段比较敏感,B
由上即可将光阻值转变为彩色图像
下面的额小方格就是由红绿蓝传感器组成的阵列
因此我们遇到的图片一般是栅格图像,还有一类图像是矢量图,这种图描述方式不和栅格图像一样。
描述矢量图是描述圆心、直径、边是什么颜色,填充什么颜色(不重要)
拿到一个图像将使用三个通道来表示
图像的坐标系的介绍见我的另一篇文章:
卷积过程(以输入为单通道、1个卷积核为例)
数乘:对应元素想 乘
卷积过程(以输入为3通道、1个卷积核为例)
每一个通道配一个核,通道数=核的数量
上面画出来的三个红色的小方块儿对应为图像中的一个patch。
图像的一个patch与一个卷积核先数乘再相加,即下面红色框出来的大方框操作称为卷积
见下图
进一步表示:
卷积过程(以输入为N通道、1个卷积核为例)
上图中,一个卷积可以得到一个最终的通道为1的结果,如果再使用一个卷积核就可以得到另外一个通道为1的结果,以此延
卷积过程(以输入为N通道、M个卷积核为例)
由上图发现:
1)卷积核的个数和输入的通道数是一样的(这一句应该是写错了,应修改为:卷积核的通道数和输入的图片的通道数是一样的)
2)输出的通道数和卷积核的总个数是一样的(因此只要看到输出是多少个通道,上一步的卷积就有多少个卷积核)
由上图知:可以将m个卷积核可以拼成一个4维的张量
定义一个卷积层只需要关系4个值:
1、输入的通道数
:决定了卷积核的通道数
2、输出的通道
:决定了使用了多少个卷积核
3、卷积核的大小(宽和高)
:这个是必须的
卷积层的定义和输入图像的大小无关
Padding
Padding(padding=1)
torch.nn.Conv2d(输入的通道数,输出的通道数,kernel_size,padding,bias=False)
bias是偏置量
conv_layer.weight.data = kernel.data就是将定义的卷积核的张量数值给卷积层的权重
步长stride(stride=2)
通过以上的代码得到上面的结果
下采样(Max Pooling Layer)
这一层没有权重,通道数不会变
例如一个2×2的max pooling,则默认步长为2,
通过以下的代码得到上面的结果
一个简单的例子
用卷积、池化来代替之前的全连接
最后接的是交叉熵损失,所以不做激活
如果有GPU的话,代码如何改
1)模型迁移到GPU
cuda:0,表示使用第一块显卡,cuda:1表示使用第二块显卡
model.to(device):指的是将模型的参数、缓存、所有的模块,都放到cuda里面,都转成相应的tensor,所有涉及的权重都放进显卡里面,此时将把之前在cpu上定义模型、权重全部迁移到GPU上面
2)计算时把数据迁移到GPU
把要计算的张量迁移到GPU上面,主要是输入和输出
注意要将数据迁移到的显卡要和模型所要迁移的显卡要一致
训练部分需要加
测试部分也需要加上
结果
作业
比较不同配置对应的网络的性能。
相关文章:

跟着刘二大人学pytorch(第---10---节课之卷积神经网络)
文章目录 0 前言0.1 课程链接:0.2 课件下载地址: 回忆卷积卷积过程(以输入为单通道、1个卷积核为例)卷积过程(以输入为3通道、1个卷积核为例)卷积过程(以输入为N通道、1个卷积核为例)…...
transformer实战
1.pipeline() 首先下载transformer,之后 from transformers import pipeline# 加载一个用于文本分类的pipeline # Use a pipeline as a high-level helperpipe pipeline("zero-shot-classification", model"https://hf-mirror.com/morit/chinese_…...
【Starrocks docker-compose部署】
一、docker-compose部署starrocks 官方的docker-compose地址:docker-compose地址 version: "3.9" services:starrocks-fe-0:image: starrocks/fe-ubuntu:latesthostname: starrocks-fe-0container_name: starrocks-fe-0command:- /bin/bash- -c- |/opt/starrocks/f…...

Nginx 精解:正则表达式、location 匹配与 rewrite 重写
一、常见的 Nginx 正则表达式 在 Nginx 配置中,正则表达式用于匹配和重写 URL 请求。以下是一些常见的 Nginx 正则表达式示例: 当涉及正则表达式时,理解各个特殊字符的含义是非常重要的。以下是每个特殊字符的例子: ^࿱…...
代码随想录算法训练营Day37|56.合并区间、738.单调递增的数字、968.监控二叉树
合并区间 56. 合并区间 - 力扣(LeetCode) 和之前的思路类似,先创建一个ans二维数组,创建start和end来指明添加进入ans数组的区间下标,先对数组按照首元素排序从小到大排序后,根据当前元素是否小于下一个元…...
Web前端开发12章:深入探索与实战解析
Web前端开发12章:深入探索与实战解析 在数字化浪潮的推动下,Web前端开发技术日新月异,成为了构建互联网应用的重要基石。本文将以12章的篇幅,从四个方面、五个方面、六个方面和七个方面,深入探索Web前端开发的精髓&am…...
八股操作系统和计算机网络
5.线程间的同步的方式有哪些? 6.PCB(不熟悉) 进程状态 什么是僵尸进程和孤儿进程? 进程调度算法 死锁的理解 举个发生死锁的例子 解决死锁的方式 内存管理做了哪些事情 什么是内存碎片 常见的内存管理 段表通过什么数据结构实现地址映射 分段机制为什么会…...

正能量情感语录热门素材文案去哪里找?文案素材网站分享
正能量情感语录热门素材文案去哪里找?文案素材网站分享 想为你的作品注入正能量和情感温度?不知如何获取热门情感语录素材?别担心,今天我将为大家推荐一些海外知名的素材网站,让你轻松找到受欢迎的文案素材ÿ…...

bean实例化
黑马程序员SSM 文章目录 一、bean是如何创建的二、实例化bean的三种方式3.1 构造方法(常用)3.2 静态工厂3.3 实例化工厂(了解)3.4 FactoryBean 一、bean是如何创建的 Spring 创建bean的时候使用的是无参构造 二、实例化bean的三…...

Django中间件探索:揭秘中间件在Web应用中的守护角色与实战应用
系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游ÿ…...

【PL理论】(24) C- 语言:有块的作用域 | 更新的语法 | 新的语义域 | 环境 vs. 内存
💭 写在前面:我们将再次扩展之前的C语言,让我们向这种语言引入“作用域”的概念。 目录 0x00 C- 语言:有块的作用域 0x01 C- 语言:更新的语法 0x02 新的语义域 0x03 环境 vs. 内存 0x00 C- 语言:有块的…...
React native 使用Animated 优化连续setState 性能问题
再部分场景下我们需要连续更新state刷新页面。一般情况刷新使用setstate没有问题,当需要连续刷新的情况会有明显的性能问题。 场景:自定义可拖动抽屉组件 新增需求在抽屉活动是更新主页面组件样式,此时需要动态传递抽屉高度修改主页组件属性…...
Qt中的事件循环
Gui框架一般都是基于事件驱动的,Qt也不例外,在 Qt 框架中,事件循环(Event Loop)是一个核心机制,负责管理和分发应用程序中的所有事件和消息。它确保了应用程序能够响应用户输入、定时器事件、窗口系统事件等…...
JVM常用概念之线程本地分配缓冲区(ThreadLocal Allocation Buffer,TLAB)
当实例化一个Java类时,运行时环境必须为相关实例分配存储空间,在JRE中此存储空间分配操作是由内存管理器实现的(其实是JVM的垃圾回收器),由于内存管理器通常使用与运行时目标语言不同的语言编写(例如&#…...

大模型生成的常见Top-k、Top-p、Temperature参数
参考: https://zhuanlan.zhihu.com/p/669661536 topK,topP https://www.douyin.com/video/7380126984573127945 主要是softmax产生的词表每个词的概率分布后, topK,比如K3,表示采样概率最大的前3个,其他全…...

ppt添加圆角矩形,并调整圆角弧度方法
一、背景 我们看的论文,许多好看的图都是用PPT做的,下面介绍用ppt添加圆角矩形,并调整圆角弧度方法。 二、ppt添加圆角矩形,并调整圆角弧度 添加矩形: 在顶部工具栏中,点击“插入”选项卡。 在“插图”…...
测评要求+基本措施+对应产品
基本要求项测评项基本措施对应产品 网络架构 网络架构 网络架构应保证网络各个部分的带宽满足业务高峰期需要;带宽管理流量控制系统 网络架构 网络架构 网络架构应避免将重要网络区域部署在边界处,重要网络区域与其他网络区域之间应采取可靠的技术隔离手…...

什么是git?
前言 Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是的,我对git的介绍就一条,想看简介的可以去百度一下😘😘😘 为什么要用git? OK,想象一下…...

C/C++中内存开辟与柔性数组
C/C中内存的开辟 在C中,我们都知道有三个区: 1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结 束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指…...
编程App软件优化是什么
编程App软件优化是什么 在数字化时代,编程App软件已成为我们日常生活和工作中不可或缺的一部分。然而,随着技术的不断进步和用户需求的日益多样化,如何对编程App软件进行优化,以提供更高效、更流畅的用户体验,成为了开…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...

Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解
文章目录 一、开启慢查询日志,定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...