深度学习——几种学习类型

2023-05-16

迁移学习

深度学习中,最强大的理念之一就是,有的时候神经网络可以从一个任务中习得知识,并将这些知识应用到另一个独立的任务中。所以例如,也许你已经训练好一个神经网络,能够识别像猫这样的对象,然后使用那些知识,或者部分习得的知识去帮助您更好地阅读 x 射线扫描图,这就是所谓的迁移学习。

example

假设你已经训练好一个图像识别神经网络,所以你首先用一个神经网络,
并在(𝑥, 𝑦)对上训练,其中𝑥是图像,𝑦是某些对象,图像是猫、狗、鸟或其他东西。
如果你把这个神经网络拿来,然后让它适应或者说迁移,在不同任务中学到的知识,比如放射科诊断,就是说阅读𝑋射线扫描图。
你可以做的是把神经网络最后的输出层拿走,就把它删掉,还有进入到最后一层的权重删掉,然后为最后一层重新赋予随机权重,然后让它在放射诊断数据上训练。
在这里插入图片描述
具体来说:在第一阶段训练过程中,当你进行图像识别任务训练时,你可以训练神经网络的所有常用参数,所有的权重,所有的层,然后你就得到了一个能够做图像识别预测的网络
在训练了这个神经网络后,要实现迁移学习,你现在要做的是,把数据集换成新的(𝑥, 𝑦)对,现在这些变成放射科图像,而𝑦是你想要预测的诊断,你要做的是初始化最后一层的权重,让我们称之为𝑤[𝐿]和𝑏[𝐿]随机初始化。
在这里插入图片描述
经验规则是,如果你有一个小数据集,就只训练输出层前的最后一层,或者也许是最后一两层。但是如果你有很多数据,那么也许你可以重新训练网络中的所有参数
预训练和微调
如果你重新训练神经网络中的所有参数,那么这个在图像识
别数据的初期训练阶段,有时称为预训练(pre-training),因为你在用图像识别数据去预先初始化,或者预训练神经网络的权重。然后,如果你以后更新所有权重,然后在放射科数据上训练,有时这个过程叫微调(fine tuning)
Q:为什么这样做有效果呢?
A:有很多低层次特征,比如说边缘检测、曲线检测、阳性对象检测(positive
objects),从非常大的图像识别数据库中习得这些能力可能有助于你的学习算法在放射科诊断中做得更好,算法学到了很多结构信息,图像形状的信息,其中一些知识可能会很有用,所以学会了图像识别,它就可能学到足够多的信息,可以了解不同图像的组成部分是怎样的,学到线条、点、曲线这些知识,也许对象的一小部分,这些知识有可能帮助你的放射科诊断
网络学习更快一些,或者需要更少的学习数据

另外一个例子是语音识别系统:假设你已经训练出一个语音识别系统,现在𝑥是音频或音频片段输入,而𝑦是听写文本,所以你已经训练了语音识别系统,让它输出听写文本。
现在我们说你想搭建一个“唤醒词”或“触发词”检测系统,所谓唤醒词或触发词就是我们说的一句话,可以唤醒家里的语音控制设备,比如你说“Alexa”可以唤醒一个亚马逊 Echo 设备,或用“OK Google”来唤醒 Google 设备,用"Hey Siri"来唤醒苹果设备,用"你好百度"唤醒一个百度设备。
要做到这点,你可能需要去掉神经网络的最后一层,然后加入新的输出节点,但有时你可以不只加入一个新节点,或者甚至往你的神经网络加入几个新层,然后把唤醒词检测问题的标签𝑦喂进去训练。再次,这取决于你有多少数据,你可能只需要重新训练网络的新层,也许你需要重新训练神经网络中更多的层。在这里插入图片描述

Q:迁移学习什么时候有意义?
A:在这里插入图片描述
所以总结一下,迁移学习最有用的场合是,如果你尝试优化任务𝐵的性能,通常这个任务数据相对较少,例如,在放射科中你知道很难收集很多𝑋射线扫描图来搭建一个性能良好的放射科诊断系统,所以在这种情况下,你可能会找一个相关但不同的任务,如图像识别,其中你可能用 1 百万张图片训练过了,并从中学到很多低层次特征,所以那也许能帮助网络在任务𝐵在放射科任务上做得更好,尽管任务𝐵没有这么多数据。
通俗来讲,如果有想要训练的任务B已经有很多数据了,且比相关的任务A数据多,那就直接用B的数据训练就好了,不必用A的数据训练再迁移到任务B上,没有什么意义。

多任务学习

迁移学习中,你的步骤是串行的,你从任务𝐴里学习知识然后迁移到任务𝐵。在多任务学习中,你是同时开始学习的,试图让单个神经网络同时做几件事情,然后希望这里每个任务都能帮到其他所有任务

example

假设你在研发无人驾驶车辆,那么你的无人驾驶车可能需要同时检
测不同的物体
,比如检测行人、车辆、停车标志,还有交通灯各种其他东西。比如在下面这个例子中,图像里有个停车标志,然后图像中有辆车,但没有行人,也没有交通灯。
如果这是输入图像𝑥(𝑖),那么这里不再是一个标签 𝑦(𝑖),而是有 4 个标签。在这个例子中,没有行人,有一辆车,有一个停车标志,没有交通灯。所以 𝑦(𝑖)是个 4×1 向量。
如果你从整体来看这个训练集标签和以前类似,我们将训练集的标签水平堆叠起来,像这样𝑦(1)一直到𝑦(𝑚),不过现在𝑦(𝑖)是 4×1 向量,所以这些都是竖向的列向量,所以这个矩阵𝑌现在变成4 × 𝑚矩阵。而之前,当𝑦是单实数时,这就是1 × 𝑚矩阵。
在这里插入图片描述
那么你现在可以做的是训练一个神经网络,来预测这些𝑦值,你就得到这样的神经网络,输入𝑥,现在输出是一个四维向量𝑦。请注意,这里输出我画了四个节点,所以第一个节点就是我们想预测图中有没有行人,然后第二个输出节点预测的是有没有车,这里预测有没有停车标志,这里预测有没有交通灯,所以这里𝑦^是四维的
在这里插入图片描述
要训练这个神经网络,你现在需要定义神经网络的损失函数,对于一个输出𝑦^,是个 4维向量,对于整个训练集的平均损失:
在这里插入图片描述
在这里插入图片描述
这些单个预测的损失,所以这就是对四个分量的求和,行人、车、停车标志、交通灯,而这个标志𝐿指的是 logistic 损失,我们就这么写:
在这里插入图片描述
Q:与softmax有什么不同?
A:整个训练集的平均损失和之前分类猫的例子主要区别在于,现在你要对𝑗 = 1到4求和,这与 softmax 回归的主要区别在于,与 softmax 回归不同,softmax 将单个标签分配给单个样本。而这张图可以有很多不同的标签,所以不是说每张图都只是一张行人图片,汽车图片、停车标志图片或者交通灯图片。你要知道每张照片是否有行人、或汽车、停车标志或交通灯,多个物体可能同时出现在一张图里。所以你不是只给图片一个标签,而是需要遍历不同类型,然后看看每个类型,那类物体有没有出现在图中
如果你训练了一个神经网络,试图最小化这个成本函数,你做的就是多任务学习。因为你现在做的是建立单个神经网络,观察每张图,然后解决四个问题,系统试图告诉你,每张图里面有没有这四个物体。
同时,不是所有的图像都是有标签的,也不是所有标签都存在。事实证明,多任务学习也可以处理图像只有部分物体被标记的情况。即使是这样的数据集,你也可以在上面训练算法,同时做四个任务,即使一些图像只有一小部分标签,其他是问号或者不管是什么。然后你训练算法的方式,即使这里有些标签是问号,或者没有标记,这就是对𝑗从 1 到 4 求和,你就只对带 0 和 1 标签的𝑗值求和,所以当有问号的时候,你就在求和时忽略那个项,这样只对有标签的值求和,于是你就能利用这样的数据集。

Q:多任务学习什么时候有意义?
A:在这里插入图片描述
最后多任务学习往往在以下场合更有意义当你可以训练一个足够大的神经网络,同时做好所有的工作,所以多任务学习的替代方法是为每个任务训练一个单独的神经网络。所以不是训练单个神经网络同时处理行人、汽车、停车标志和交通灯检测。你可以训练一个用于行人检测的神经网络,一个用于汽车检测的神经网络,一个用于停车标志检测的神经网络和一个用于交通信号灯检测的神经网络。

端到端学习

深度学习中最令人振奋的最新动态之一就是端到端深度学习的兴起,那么端到端学习到底是什么呢?简而言之,以前有一些数据处理系统或者学习系统,它们需要多个阶段的处理。那么端到端深度学习就是忽略所有这些不同的阶段,用单个神经网络代替它

example

以语音识别为例,你的目标是输入𝑥,比如说一段音频,然后把它映射到一个输出𝑦,就是这段音频的听写文本。所以传统上,语音识别需要很多阶段的处理。
在这里插入图片描述
首先你会提取一些特征,一些手工设计的音频特征,也许你听过 MFCC,这种算法是用来从音频中提取一组特定的人工设计的特征。在提取出一些低层次特征之后,你可以应用机器学习算法在音频片段中找到音位,所以音位是声音的基本单位,比如说“Cat”这个词是三个音节构成的,Cu-、Ah-和 Tu-,算法就把这三个音位提取出来,然后你将音位串在一起构成独立的词,然后你将词串起来构成音频片段的听写文本。
所以和这种有很多阶段的流水线相比,端到端深度学习做的是,你训练一个巨大的神经网络,输入就是一段音频,输出直接是听写文本。

事实证明,端到端深度学习的挑战之一是,你可能需要大量数据才能让系统表现良好,比如,你只有 3000 小时数据去训练你的语音识别系统,那么传统的流水线效果真的很好。但当你拥有非常大的数据集时,比如 10,000 小时数据或者 100,000 小时数据,这样端到端方法突然开始很厉害了。

下面这张图是人脸识别门禁,是百度的林元庆研究员做的。这是一个相机,它会拍下接近门禁的人,如果它认出了那个人,门禁系统就自动打开,让他通过,所以你不需要刷一个 RFID 工卡就能进入这个设施。
在这里插入图片描述
那么如何搭建这个系统呢?
可以做的第一件事是,看看相机拍到的照片,你知道,有人接近门禁了,所以这可能是相机拍到的图像𝑥。有件事你可以做,就是尝试直接学习图像𝑥到人物𝑦身份的函数映射,事实证明这不是最好的方法。其中一个问题是,人可以从很多不同的角度接近门禁,他们可能在绿色位置,可能在蓝色位置。有时他们更靠近相机,所以他们看起来更大,有时候他们非常接近相机,那照片中脸就很大了。在实际研制这些门禁系统时,他不是直接将原始照片喂到一个神经网络,试图找出一个人的身份。
相反,迄今为止最好的方法似乎是一个多步方法,首先,你运行一个软件来检测人脸,所以第一个检测器找的是人脸位置,检测到人脸,然后放大图像的那部分,并裁剪图像,使人脸居中显示,然后就是这里红线框起来的照片,再喂到神经网络里,让网络去学习,或估计那人的身份。
比起一步到位,一步学习,把这个问题分解成两个更简单的步骤。首先,是弄清楚脸在哪里。第二步是看着脸,弄清楚这是谁。这第二种方法让学习算法,或者说两个学习算法分别解决两个更简单的任务,并在整体上得到更好的表现。
在这里插入图片描述
Q:在第二步,弄清这个人是不是办公楼的员工是怎么做的呢?
A:训练网络的方式就是输入两张图片,然后你的网络做的就是将输入的两张图比较一下,判断是否是同一个人。比如你记录了 10,000 个员工 ID,你可以把红色框起来的图像快速比较……也许是全部 10,000 个员工记录在案的 ID,看看这张红线内的照片,是不是那10000 个员工之一,来判断是否应该允许其进入这个设施或者进入这个办公楼。这是一个门禁系统,允许员工进入工作场所的门禁。

Q:为什么两步法更好?
A:实际上有两个原因。一是,你解决的两个问题,每个问题实际上要简单得多。但第二,两个子任务的训练数据都很多。
实际上,把这个分成两个子问题,比纯粹的端到端深度学习方法,达到更好的表现。不过如果你有足够多的数据来做端到端学习,也许端到端方法效果更好。但在今天的实践中,并不是最好的方法。

More examples

机器翻译:
传统上,机器翻译系统也有一个很复杂的流水线,比如英语机翻得到文本,然后做文本分析,基本上要从文本中提取一些特征之类的,经过很多步骤,你最后会将英文文本翻译成法文。因为对于机器翻译来说的确有很多(英文,法文)的数据对,端到端深度学习在机器翻译领域非常好用,那是因为在今天可以收集𝑥 − 𝑦对的大数据集,就是英文句子和对应的法语翻译。所以在这个例子中,端到端深度学习效果很好。在这里插入图片描述
通过X光照片,判断孩子年龄:
处理这个例子的一个非端到端方法,就是照一张图,然后分割出每一块骨头,所以就是分辨出那段骨头应该在哪里,那段骨头在哪里,那段骨头在哪里,等等。然后,知道不同骨骼的长度,你可以去查表,查到儿童手中骨头的平均长度,然后用它来估计孩子的年龄,所以这种方法实际上很好。相比之下,如果你直接从图像去判断孩子的年龄,那么你需要大量的数据去直接训练。据我所知,这种做法今天还是不行的,因为没有足够的数据来用端到端的方式来训练这个任务。
在这里插入图片描述
所以端到端深度学习系统是可行的,它表现可以很好,也可以简化系统架构,让你不需要搭建那么多手工设计的单独组件,但它也不是灵丹妙药,并不是每次都能成功。

是否使用端到端的深度学习

端到端的深度学习的优缺点:
在这里插入图片描述
如果你在构建一个新的机器学习系统,而你在尝试决定是否使用端到端深度学习,我认为关键的问题是,你有足够的数据能够直接学到从𝑥映射到𝑦足够复杂的函数吗

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习——几种学习类型 的相关文章

  • (二)裸机开发框架构建之---点灯大师

    裸机开发框架构建 3 设备管理层抽象出结构体初始化结构体第一种初始化方法 xff08 c89标准 xff09 第二种初始化方法 xff08 C99标准 xff09 2 硬件接口层1 硬件层硬件LED层初始化函数硬件层LED控制函数 4 应用
  • 1.freertos应用系列之cubemx创建freertos

    freertos应用全系列 xff08 写完关联更新 xff09 01 freertos应用系列之cubemx创建freertos 11 freertos应用系列之cubemx创建freertos 02 freertos应用系列之cubem
  • docker中镜像源推荐

    1 xff0c 个人建议使用 网易镜像源 镜像源有以下5种 1 网易 http hub mirror c 163 com 2 Docker中国区官方镜像 https registry docker cn com 3 ustc https d
  • VScode创建C++项目

    VScode创建C 43 43 项目 假设系统已经安装了MinGW64 插件 常用插件 创建Project 配置json文件 需要修改的地方都在下方注释说明 根据MinGW64安装位置进行修改 c cpp properties json s
  • C++的一个问题点,数组作为参数传递到函数之后,不能直接求出长度

    YU 原数组 xff0c 传递参数之后 结果是作为参数传进去之后是作为指针 xff0c 是不能求出长度的 xff0c 所以需要把长度提前求出作为参数传入该函数 反思 xff1a 最近C 43 43 Python xff0c java轮流用
  • 基于from flask import Flask,render_template 上传网页遇到的问题

    我们要上传多个页面形成一个网站 xff0c 首先我们需要在index xff08 一般这个都是首页面 xff09 查看其源码 找到类似 这段代码里面包括了前面的网站 xff0c 所以这时候我们只需要把它变成带使用的状态 xff0c 操作就是
  • 跨交换机的VLAN设置

    实现目标 xff1a 进行多台主机多个vlan接口进行互相通信 需要知识 xff1a 1 不同的vlan接口的是不能进行通信的 2 在要跨越多个交换机进行通信的时候要对进行交互的交换机进行共享vlan端口的设置 3 在设置网络号的时候应该注
  • Wireshark抓取cookie:用户名...,TCP报文等信息实战

    这里我们要先安装Wireshark xff0c 这里要注意的是一些低级版本刚刚下下来的时候是找不到网络接口的 xff0c 所以这时候要更新 xff0c 然后再下应该WinPro xff08 应该是这个 xff09 xff0c 之后就有网络接
  • 计算机网络知识点总结提纲(谢希仁)

    1 IOS OSI对王道书上的缩减总结 清晰pdf xff1a 链接 xff1a https pan baidu com s 1f6DqMsHky4kP8i9WQLvCew pwd 61 the3 提取码 xff1a the3 来自百度网盘
  • C++getline和 cin的探讨

    从结果可以看出 xff0c cin是会把空格部分舍弃的 如果是输入一个 然后空格在输入其他的 xff0c 因为cin默认把空格去调 xff0c 则后面的字符我的理解就是溢出 xff1f 所以报错了 getline功能就比较强大了 xff0c
  • Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

    文章目录 硬件安装Ubuntu Server20 04下载rpiboot工具下载imager刷写系统配置USB配置WIFI 开机安装桌面配置wifi配置串口安装ROS安装mavros安装MAVSDK PythonInternet设置最后 参
  • docker迁移镜像

    docker迁移本地镜像 本文为docker基本镜像操作之一 查看本镜像 docker images 迁移 xff08 拷贝 xff09 本地镜像到其他设备 1 打包 docker save o 路径 目标包名 tar 源镜像名 标签 2
  • C++Linux服务器学习之路——1

    前言 xff1a 为了让所学的计网知识融合于实际 xff0c 让操作系统里的理论去满足工程需求 xff0c 故通过借鉴30dayMakeServer的路线以及进行相应知识点的学习 part1 首先我们要理解socket 为应用层和传输层提供
  • 计网牛客刷图总结

    久不学忘记了 xff0c 1111 1111 61 255 xff0c ip地址是32位二进制组成 xff0c x 26就是说主机号有26位 xff0c 其他都是网络号 所以后面只有2位主机号 xff0c 234 61 11101010 x
  • C++力扣算法刷题算法分析

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • Invalid bound statement (not found)问题解决

    在网上基本的解决方案就是查看 namespace有没有对应 xff0c 但是我确定我的路径都是正确的 xff0c 如果发现这类问题可以先尝试确定路径的正确 之后如果还不行 xff0c 我们进行解决 xff1a 首先在target文件中查找是
  • C指针基础普及

    https www programiz com c programming c pointers 先放网站 xff0c 等我有时间再来补我的扩展
  • Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异)

    之前在培训新生的时候 xff0c windows环境下配置opencv环境一直教的都是网上主流的vs studio配置属性表 xff0c 但是这个似乎对新生来说难度略高 虽然个人觉得完全是他们自己的问题 xff0c 加之暑假之后对cmake
  • Spring Aop的使用(含示例)

    介绍 在软件业 xff0c AOP为Aspect Oriented Programming的缩写 xff0c 意为 xff1a 面向切面编程 xff0c 通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术 AOP是OOP的延续
  • 超好用的开发工具-VScode插件EIDE

    EIDE介绍 一款适用于8051 STM8 Cortex M RSCv的单片机开发环境 在 vscode上提供8051 xff0c STM8 Cortex M xff0c RISC V 项目的开发编译烧录等功能 使用文档 xff1a 简介

随机推荐

  • 直流编码电机双闭环(速度+角度)控制

    目录 1 PID框图 2 pid控制器的表达式 3 传感器数据获取 4 硬件设计 5 工程配置 6 软件部分程序配置 7 调参过程记录 本文已更新 xff0c 加上曲线调试 xff0c 更好效果 xff0c 更多内容 xff0c 详情 xf
  • OPENMV配置记录(一)

    文章目录 1 刷写固件2 开始配置openmv3 图像获取与显示4 修改图像 xff0c 获取像素 xff0c 添加元素5 使用图像进行基本操作 颜色追踪6 xff0c 识别码7 模版匹配8 通过比例的方法来求解距离9 组合使用 正好回家带
  • 为什么你的软件编译时没问题,运行时却出错?—— Java 中的异常再复盘

    从开发工具谈起 xff1a 这是我平常用的几个编辑器 记得我刚开始学 C 语言 xff0c 学 Java 的时候 xff0c 还是用 Notepad 43 43 这种文本编辑器写代码 xff0c 老师说是为了打基础 xff0c 加深记忆 后
  • 使用stm32解析富斯i6接收机(IBUS)

    文章目录 1 通信协议解析说明2 驱动程序设计3 实测4 使用串口空闲中断 43 DMA接收5 源码 1 通信协议解析说明 常见的官方遥控器大概如下所示 xff1a 常用的搭配接收机 xff1a 这里需要注意的是 xff1a i6是可以刷十
  • 编码电机PID调试(速度环|位置环|跟随)

    文章目录 1 编码电机认识2 上位机波形显示1 功能介绍2 协议说明 3 速度环调试验证4 位置环调试验证5 实现跟随效果 前面的文章中有讲过编码电机串级PID相关的知识 xff0c 以及一些PID的调试经验 xff0c 这里我最近正好又把
  • 树莓派安装ubuntu mate记录

    文章目录 1 系统下载1 ubuntu下载2 ubuntu mate下载 2 系统安装3 系统使用1 ubuntu系统2 ubuntu mate系统 这个算个失败的记录贴吧 xff0c 这个系统安装过程不太流畅 xff0c 使用起来也有很多
  • 平衡小车的一些常见问题总结

    文章目录 1 基本理论2 直立环速度环串级pid3 代码差异的解释4 转向环 1 基本理论 PID控制 pid控制值对偏差进行比例 xff0c 积分和微分的控制 xff0c 分别是三个部分 xff0c 对应为比例单元 xff0c 积分单元和
  • Ubuntu下tar命令使用详解 .tar解压、.tar压缩

    1 tar参数选项2 tar压缩命令3 tar解压缩命令4 解压安装5 tar bz2解压缩命令6 Linux压缩和解压 bz2文件 bzip2 Linux tar 命令 在Linux平台 xff0c tar是主要的打包工具 tar命令通常
  • 裸机开发之驱动开发

    一 驱动开发的基础理解 在计算中 xff0c 设备驱动程序是一种计算机程序 xff0c 用于操作或控制连接到计算机的特定类型的设备 驱动程序提供了与硬件设备的软件接口 xff0c 使操作系统和其他计算机程序可以访问硬件功能 xff0c 而无
  • STM32HAL库使用ESP8266模块

    ESP8266模块是一个可是实现蓝牙和WiFi一体的模块 xff0c ESP8266 是一个完整且自成体系的 WiFi 网络解决方案 xff0c 能够独立运行 xff0c 也可以作为 slave 搭载于其他 Host 运行 ESP8266模
  • 几种数字传感器介绍(一)————温湿度传感器(HDC1080)

    一 温湿度采集传感器 xff08 HDC1080 xff09 1 简要概述 HDC1080是一种集成温度传感器的数字湿度传感器 xff0c 具有出色的测量精度和超低的功耗 其具有14位测量分辨率 xff0c 相对湿度精度为 2 温度精度为
  • STM32F103xx / STM32F429VET6最小系统原理图

    STM32F429VET6核心板原理图 一 前言 先前使用过的是STM32F1系列 xff0c 只使用和绘制过STM32F103C8T6和STM32F103ZET6的板子 心血来潮想试一下STM32F4系列和F1系列在编程上有什么差别 xf
  • FreeRTOS - 多任务使用要点

    一 临界段应用 1 临界段作用 在程序访问资源时 xff0c 不希望被其他任务或者中断打断 xff0c 这段要执行的代码 xff0c 称为临界代码段 1 1不想被打断访问的资源 xff08 临界段保护 xff09 读取或者修改变量 xff0
  • 项目准备及自我介绍

    项目准备及自我介绍 1 自我介绍 面试官你好 xff0c 我叫XXX xff0c 就读于重庆邮电大学 xff1b 实验室是国家信息无障碍研发中心 xff1b 研究生期间 xff0c 参与两起机器人项目 xff0c 一是基于SLAM的清洁机器
  • 卸载重装Android Studio导入先前的版本,或者是误判SDK installed解决方法。(包含window,mac,Linux)

    我安装了几次Android Studio 之前一直不太稳定 xff0c 特别是想要导入别人的项目时 xff0c 版本不兼容真的会导致很多问题 尤其是他会下载gradle版本 xff0c 花费很长时间占用内存也就罢了 xff0c 更过分的是如
  • gcc编译过程

    gcc编译过程 文章目录 gcc编译过程1 预处理 Preproceessing 2 编译 Compilation 3 汇编 Assembly 4 链接 Linking 一般在windows下编译代码的时候是直接生成了可执行文件 xff0c
  • STM32串口printf调试输出(SSCOM V5.13.1)

    文章目录 1 原理图分析2 配置使能串口USART13 添加代码4 烧录连接显示5 浮点数输出 1 原理图分析 PC与CPU相互通信就是通过USB Type C接口和USB电平转换实现的 我们可以看到 xff0c CPU通过管脚USART1
  • CMakeLists文件的编译

    文章目录 CMakeLists的编译CMakeLists编译原理 文件路径 xff1a 编写CMakeLists txt CMakeLists常用命令 CmkeLists的基本步骤1 1 CMake版本1 2 软件包名称1 3 查找相关的C
  • 决策树--CART算法

    文章目录 1 Crat算法 分类树 1 1基尼系数1 2连续型特征处理1 3CART算法1 5 举例说明1 5 代码 2 回归树 1 Crat算法 分类树 1 1基尼系数 CART是基于基尼 Gini 系数最小化准则来进行特征选择 xff0
  • 深度学习——几种学习类型

    迁移学习 深度学习中 xff0c 最强大的理念之一就是 xff0c 有的时候神经网络可以从一个任务中习得知识 xff0c 并将这些知识应用到另一个独立的任务中 所以例如 xff0c 也许你已经训练好一个神经网络 xff0c 能够识别像猫这样