自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

--

  • 博客(122)
  • 资源 (3)
  • 收藏
  • 关注

原创 【动手学深度学习】4.10 实战Kaggle比赛:预测房价

模型定义return net损失函数:对数均方根误差(log RMSE)训练函数。

2025-07-09 20:59:16 396

原创 【动手学深度学习】4.9. 环境和分布偏移

.机器学习应用常被忽视数据来源和模型输出处理。许多模型在测试集上表现好,但数据分布改变时会部署失败,甚至模型决策本身可能破坏数据分布(如贷款模型基于“穿牛津鞋就会还款”决策,导致所有人都穿牛津鞋但信用未提升)。解决这些问题需多方面的思考和方法,如优化数据、强化学习、考虑算法伦理等,以提升机器学习系统的可靠性和适应性。.分布偏移指训练与测试数据分布不同,如训练数据来自分布 pS(x,y)p_S(\mathbf{x}, y)pS​(x,y),测试数据来自 pT(x,y)p_T(\mathbf{x}, y)pT​

2025-07-09 20:55:27 940

原创 【动手学深度学习】4.8. 数值稳定性和模型初始化

此外,当反向传播通过许多层时,除非我们在刚刚好的地方, 这些地方sigmoid函数的输入接近于零,否则整个乘积的梯度可能会消失。模型参数的初始化方案在神经网络学习中极为关键,它关乎数值稳定性、优化算法的收敛速度,还与非线性激活函数选择紧密相连,不当的初始化易导致梯度爆炸或消失。如果我们不指定初始化方法, 框架将使用默认的随机初始化方法,对于中等难度的问题,这种方法通常很有效。尽管在上述数学推理中,“不存在非线性”的假设在神经网络中很容易被违反, 但Xavier初始化方法在实践中被证明是有效的。

2025-06-26 08:00:00 234

原创 【动手学深度学习】4.7. 前向传播、反向传播和计算图

计算的顺序与前向传播中执行的顺序相反,因为我们需要从计算图的结果开始,并朝着参数的方向工作。因此,在训练神经网络时,在初始化模型参数后, 我们交替使用前向传播和反向传播,利用反向传播给出的梯度来更新模型参数。前向传播在神经网络定义的计算图中按顺序计算和存储中间变量,它的顺序是从输入层到输出层。反向传播按相反的顺序(从输出层到输入层)计算和存储神经网络的中间变量和参数的梯度。另一方面,反向传播期间参数的梯度计算, 取决于由前向传播给出的隐藏变量的当前值。在训练深度学习模型时,前向传播和反向传播是相互依赖的。

2025-06-24 22:22:27 1000

原创 【动手学深度学习】4.6. 暂退法(Dropout)

我们使用Fashion-MNIST数据集。定义具有两个隐藏层的多层感知机,每个隐藏层包含256个单元。我们可以将暂退法应用于每个隐藏层的输出(在激活函数之后), 并且可以为每一层分别设置暂退概率: 常见的技巧是在靠近输入层的地方设置较低的暂退概率。下面的模型将第一个和第二个隐藏层的暂退概率分别设置为0.2和0.5, 并且暂退法只在训练期间有效。# 只有在训练模型时才使用dropout# 在第一个全连接层之后添加一个dropout层# 在第二个全连接层之后添加一个dropout层return out。

2025-06-24 21:25:50 811

原创 【动手学深度学习】4.5. 权重衰减

范数是衡量向量或矩阵大小的一种度量,它是更一般的LpL_pLp​范数的特殊情况。在机器学习中,范数可以用来衡量模型参数的大小。L2L_2L2​范数:是向量中各元素平方和的平方根,用于衡量向量的大小。L1L_1L1​范数:是向量中各元素绝对值的和,用于衡量向量的稀疏性。L2L_2L2​下面的代码将模型拟合训练数据集,并在测试数据集上进行评估。从 3节以来,线性网络和平方损失没有变化, 所以我们通过d2l.linreg和导入它们。唯一的变化是损失现在包括了惩罚项。

2025-06-20 19:18:12 486

原创 【动手学深度学习】4.4. 模型选择、欠拟合和过拟合

因此,这个过于复杂的模型会轻易受到训练数据中噪声的影响。模型能否真正泛化很关键。在实际中,我们只能通过将模型应用于一个独立的测试集来估计泛化误差, 该测试集由随机选取的、未曾在训练集中出现的数据样本构成。(generalization error):模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的期望。统计学家认为,能轻松解释任意事实的模型是复杂的,而表达能力有限但仍能解释数据的模型更有现实用途。哲学上,波普尔的可证伪性标准指出,能拟合数据且可被证伪的理论是好的,这强调了模型的可检验性。

2025-06-20 19:14:54 934

原创 【动手学深度学习】4.2~4.3 多层感知机的实现

与softmax回归的简洁实现相比, 唯一的区别是我们添加了2个全连接层(之前我们只添加了1个全连接层)。对于相同的分类问题,多层感知机的实现与softmax回归的实现相同,只是多层感知机的实现里增加了带有激活函数的隐藏层。训练过程的实现与我们实现softmax回归时完全相同, 这种模块化设计使我们能够将与模型架构有关的内容独立出来。为了确保我们对模型的细节了如指掌, 我们将实现ReLU激活函数, 而不是直接调用内置的。首先,我们将实现一个具有单隐藏层的多层感知机, 它包含256个隐藏单元。

2025-06-17 20:30:20 898

原创 【动手学深度学习】4.1. 多层感知机

当输入为负时,ReLU函数的导数为0,而当输入为正时,ReLU函数的导数为1。下面我们绘制ReLU函数的导数。应用于隐藏层的激活函数通常既按行操作,也按元素操作,意味着在计算每一层的线性部分后,可单独计算每个活性值,无需查看其他隐藏单元的值,多数激活函数如此。:以收入和还款概率为例,收入从低到中等增加,还款可能提升明显,而高收入段再增影响小,非线性,可对数据预处理(如取对数)使线性更合理。假设: 任何特征的增大都会导致模型输出的增大(如果对应的权重为正), 或者导致模型输出的减小(如果对应的权重为负)。

2025-06-17 12:31:51 1016

原创 【动手学深度学习】3.7. softmax回归的简洁实现

我们也希望保留传统的softmax函数,以备我们需要评估通过模型输出的概率。但是,我们没有将softmax概率传递到损失函数中,而是在交叉熵损失函数中传递未规范化的预测,并同时计算softmax及其对数,这是一种类似"LogSumExp技巧"的聪明方式。在许多情况下,深度学习框架在这些著名的技巧之外采取了额外的预防措施,来确保数值的稳定性。在前面, 我们计算了模型的输出,然后将此输出送入交叉熵损失。这与我们在线性回归例子中的相同,这说明了优化器的普适性。接下来,我们调用上一节中定义的训练函数,来训练模型。

2025-06-16 21:00:40 876

原创 【动手学深度学习】3.6. softmax回归的从零开始实现

给定一个矩阵X,我们可以对所有元素求和(默认情况下)。也可以只求同一个轴上的元素,即同一列(轴0)或同一行(轴1)。如果X是一个形状为(2, 3)的张量,我们对列进行求和, 则结果将是一个具有形状(3,)的向量。当调用sum运算符时,我们可以指定保持在原始张量的轴数,而不折叠求和的维度。这将产生一个具有形状(1, 3)的二维张量。# 输出:[15.]]))回想一下,实现softmax由三个步骤组成:对每个项求幂(使用exp对每一行求和(小批量中每个样本是一行),得到每个样本的规范化常数;

2025-06-16 20:55:40 1499

原创 【动手学深度学习】3.5. 图像分类数据集

Fashion-MNIST是一个服装分类数据集,由10个类别的图像组成。函数,获取Fashion-MNIST数据集,返回训练集和验证集的数据迭代器。现在已经准备好使用Fashion-MNIST数据集,便于下面的章节调用来评估各种分类算法。可以通过框架中的内置函数将Fashion-MNIST数据集下载并读取到内存中。通过内置数据迭代器,我们可以随机打乱了所有样本,从而无偏见地读取小批量。我们将使用Fashion-MNIST数据集,作为图像分类数据集。我们将高度像素,宽度像素图像的形状记为或(,)。

2025-06-13 21:59:04 373

原创 【动手学深度学习】3.4. softmax回归

(克劳德・香农):量化指标:用。

2025-06-13 21:54:19 772

原创 【动手学深度学习】3.3. 线性回归的简洁实现

在实现复杂模型时,使用框架预定义的层可以简化过程。我们定义一个模型变量net,它是Sequential类的实例,用于将多个层串联在一起。尽管当前模型仅包含一个层,但使用Sequential可以熟悉标准流程。全连接层(fully-connected layer)是单层网络架构,每个输入通过矩阵 - 向量乘法得到每个输出。在 PyTorch 中,全连接层在Linear类中定义,需要指定输入和输出特征形状。计算均方误差使用的是MSELoss类,也称为平方范数。默认情况下,它返回所有样本损失的平均值。

2025-06-10 20:55:15 832

原创 【动手学深度学习】3.2. 线性回归的从零开始实现

线性回归模型通过矩阵 - 向量乘法将输入特征X与权重w相乘,再加偏置 b 得到输出。广播机制会将标量 b 加到每个分量上。"""线性回归模型"""使用平方损失函数,同时,需将真实值 y 的形状转换为与预测值 y_hat 相同。"""均方损失"""采用小批量随机梯度下降(SGD),每步用随机抽取的小批量计算损失梯度,朝减少损失方向更新参数。更新大小由学习速率 lr 决定,用批量大小 batch_size 规范化步长。

2025-06-10 20:42:23 1122

原创 【动手学深度学习】3.1. 线性回归

另外,我们将更多的数学运算放到库中,而无须自己编写那么多的计算,从而减少了出错的可能性。损失函数(loss function):用于衡量目标实际值与预测值之间的差距,通常为非负数,且数值越小表示损失越小,完美预测时损失为 0。(gradient descent)是一种通用的优化方法,通过计算损失函数关于模型参数的导数(梯度),沿着梯度递减方向更新参数以降低误差。对于复杂模型(如深度神经网络),损失平面上存在多个最小值,实践中更关注找到在未见数据上低损失的参数组合,即实现良好的。

2025-06-06 21:16:13 844

原创 【动手学深度学习】2.6. 概率

概率是事件集合到实数的映射函数,事件 A 在样本空间 S 中的概率记为 P(A)。

2025-06-06 20:49:43 746

原创 C++:回调函数

是一种以函数指针作为参数的函数。这种函数可以在代码的其他部分被调用,从而实现一种类似高级编程语言中的“回调”机制。是一种编程模式,它允许将代码(函数)作为参数传递给其他函数,并在特定事件发生后被调用。

2025-06-01 20:18:42 273

原创 Markdown渲染微信图文

推荐一款工具,可将Markdown文档自动即时渲染为微信图文。声明:资源可能存在第三方来源,若有侵权请联系删除!

2025-06-01 19:53:04 153

原创 打字练习:平台推荐

声明:资源可能存在第三方来源,若有侵权请联系删除!下面推荐两个打字练习平台。

2025-05-31 09:53:10 366

原创 【动手学深度学习】2.5. 自动微分

来使用,而不是用来计算梯度的变量。这时,就可以用“分离计算图”的方法,把计算图中的一部分“切断”,让它不参与反向传播。换言之,对于任何a,存在某个常量标量k,使得f(a)=k*a,其中k的值取决于输入a;神经网络中,计算图 = 节点(神经元/参数/数学运算等)+ 边(数据流动方向)。这里,我们的目的不是计算微分矩阵,而是单独计算批量中每个样本的偏导数之和。它从输出端(损失函数)开始,向输入端(模型参数)反向计算梯度。有时,我们希望将某些计算移动到记录的计算图之外。,自动计算出目标函数关于模型参数的导数。

2025-05-30 23:01:42 2052

原创 【动手学深度学习】2.4. 微积分

泛化(generalization):数学原理和实践者的智慧,能够指导我们生成出有效性超出用于训练的数据集本身的模型。我们可以连结一个多元函数对其所有变量的偏导数,以得到该函数的梯度(gradient)向量。现在考虑一个更一般的场景,即函数具有任意数量的变量的情况。导数可以被解释为函数相对于其变量的瞬时变化率,它也是函数曲线的切线的斜率。微分和积分是微积分的两个分支,前者可以应用于深度学习中的优化问题。梯度是一个向量,其分量是多变量函数相对于其所有变量的偏导数。是一个具有 n 个变量的函数。

2025-05-30 22:56:55 1068

原创 C++:设计模式--工厂模式

抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。2.提供一个具体工厂类:实现了在抽象工厂创建产品的工厂方法。3.提供一个抽象产品类:抽象产品中声明了产品具有的业务方法。1.提供一个抽象工厂类:声明一组创建一族产品的工厂方法。1.提供一个抽象工厂类 :所有具体工厂类的父类。

2025-05-27 22:08:50 1832

原创 Conda:环境移植及更新1--使用conda-pack

在相同Linux设备上移植Miniconda3(Anaconda3同理)常用方法有。直接拷贝法:直接拷贝整个Miniconda3文件夹。声明:资源可能存在第三方来源,若有侵权请联系删除!使用conda-pack:使用。

2025-05-27 21:56:23 524

原创 CMSIS-NN:2.神经网络到CMSIS-NN的转换

该网络的输入是一个32x32像素的彩色图像,它将被分类到10个输出类之一。当输入张量维度是4的倍数时,使用arm_convolve_HWC_q7_fast(),因为这可以很好地利用8位操作上的SIMD 32读取和交换行为。最大池的输出的Q格式与其输入格式相同,因为该算法在CMSIS-NN中是如此实现的。CMSIS-NN只支持几个层,不支持的层,应尝试CMSIS-NN和CMSIS-DSP功能的等效组合。饱和效应:网络中的激活函数,当输入值过大或过小,它们的输出值会趋于饱和,即输出值接近于最大或最小值。

2025-05-24 19:25:44 1015

原创 CMSIS-NN:1.简介

提供一个DSP(数字信号处理器)功能库,它包括了一系列与信号处理相关的数学函数和算法常用数学函数,如加法、乘法、平方、平方根、指数、对数等;信号处理算法,如滤波器设计、傅里叶变换、快速傅里叶变换等。ARM_MATH_DSP库可简化信号处理和数字计算任务的实现过程,并且可以提高计算效率和性能。在CMSIS-NN库中,可以使用ARM_MATH_DSP库来进行神经网络的计算优化。提供的数学函数接口,用于实现多向量扩展整数运算。提供以下功能:支持多种数据类型:包括整数、浮点数和固定点数。

2025-05-24 19:12:35 695

原创 C++:动态刷新打印内容

本文介绍一个用于命令行动态覆盖输出的C++实现(Display类);效果说明:普通输出会直接换行显示。分段输出(如进度条)会在同一行动态刷新,模拟进度条效果。中文内容也能正确显示和自动换行。你可以修改参数,观察自动换行效果。

2025-05-23 23:24:44 429

原创 【动手学深度学习】2.3. 线性代数

仅包含一个数值的量称为标量(零维张量),例如温度值。

2025-05-23 23:21:45 962

原创 【动手学深度学习】2.2. 数据预处理

处理缺失的数据时,我们可根据情况选择用插值法和删除法。对数值缺失值用均值插值,对类别缺失值编码为独立特征。预处理原始数据,并将原始数据转换为张量格式的步骤。声明:资源可能存在第三方来源,若有侵权请联系删除!软件包是Python中常用的数据分析工具中,最终将数据转为张量格式,适配后续模型训练。本节我们将简要介绍使用。读取 CSV 文件。)的模拟数据并保存。

2025-05-22 21:40:35 210

原创 【动手学深度学习】2.1. 数据操作

torch张量和numpy数组将共享它们的底层内存,就地操作更改一个张量也会同时更改另一个张量。其次,张量类支持自动微分。:涵盖存储、操作与预处理,核心技能为高效管理表格数据(样本为行,属性为列)。:矩阵运算是处理多维数据的基础,重点理解基本原理与实现,如矩阵乘法与操作。指向的张量,而是指向新分配的内存处的张量。:张量元素通过索引访问,第一个元素索引0,最后一个元素索引-1。张量维度:1轴为向量,2轴为矩阵,更高维度无特定数学名称。要将大小为1的张量转换为Python标量,我们可以调用。

2025-05-22 21:38:26 835

原创 【动手学深度学习】1.4~1.8 深度学习的发展及其特征

从第一代的Caffe、Torch和Theano,到第三代的PyTorch、MXNet的Gluon API和Jax,这些工具极大地简化了深度学习模型的构建和训练,使得复杂的神经网络建模变得容易。:2005年后,随着计算能力提升(如GPU)和大规模数据集(如MNIST)的出现,深度学习逐渐复兴,结合深度神经网络与反向传播算法,推动了现代AI的突破。最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。整个系统优化是获得高性能的关键环节。

2025-05-21 20:27:26 802

原创 【动手学深度学习】1.3. 各种机器学习问题

"回归"指的是通过建立输入变量(自变量)与输出结果(因变量)之间的数学关系模型,来预测一个具体的数值结果。比如,给定一组用户的网页浏览记录,我们能否将具有相似行为的用户聚类呢?与环境互动的学习模式推动机器学习从静态预测迈向动态决策,解决更复杂的现实问题,但需应对环境反馈、动态变化及策略影响等挑战。:输入是音频录音,输出是对应的文本记录,音频帧数远多于文本字符数,属于输出比输入短得多的序列到序列学习。预测标签:将没有见过的样本特征放到“已完成学习的模型”中,使用模型的输出作为相应标签的预测。

2025-05-21 20:22:58 1182

原创 【动手学深度学习】1.1~1.2 机器学习及其关键组件

然后,它在可以减少损失的方向上优化参数。深度学习与经典方法的区别主要在于:前者关注的功能强大的模型,这些模型由神经网络错综复杂的交织在一起,包含层层数据转换,因此被称为。在上面的监督学习问题中,要预测的是一个特殊的属性,它被称为。然而,在训练数据上表现良好的模型,并不一定在“新数据集”上有同样的性能,这里的“新数据集”通常称为。在机器学习中,我们需要定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的,这被称之为。当每个样本的特征类别数量都是相同时,其特征向量是定长的,这个长度被称为数据的。

2025-05-20 22:57:15 771

原创 【动手学深度学习】系列

《动手学深度学习》第二版由李沐等人编著,系统讲解深度学习基础知识与核心技术,涵盖卷积神经网络、循环神经网络、注意力机制等前沿模型,结合Jupyter笔记本提供可运行的代码实践。本书以交互式学习为特色,通过理论讲解与代码实操相结合的方式,帮助读者从零构建AI知识体系,配套丰富教学资源和社区支持,适合学生、工程师及研究者入门与进阶。

2025-05-20 22:47:11 971

原创 sherpa-ncnn:音频处理跟不上采集速度 -- 语音转文本大模型

具体是,调用sherpa-ncnn-alsa_Test时,音频是实时采集的,在采集到音频后会对音频数据进行额外处理。音频处理速度跟不上音频采集速度时。在音频额外处理期间,停止音频识别采集,在运行结束时恢复音频识别采集。在其他API处理这个句子时,语音还在实时采集,这是就会导致处理速度跟不上音频采集速度。在音频额外处理期间,停止音频识别采集,在运行结束时恢复音频识别采集,以避免数据溢出。这个错误表明音频处理速度跟不上音频采集速度,导致缓冲区溢出。类中,添加暂停和恢复音频采集的功能,即。

2025-05-19 21:30:47 426

原创 CLIP:论文阅读 -- 视觉模型

CLIP(Contrastive Language–Image Pre-training)是一种创新的计算机视觉模型,旨在解决传统目标检测模型依赖固定分类体系和大量标注数据的局限性。该模型通过在4亿对互联网收集的图文数据上进行预训练,采用“预测图文匹配”的简单任务,成功从零开始学习到强大的图像表征能力。突破固定分类限制:利用自然语言作为通用接口,既能引用已学视觉概念,也可描述新类别,实现零样本迁移(zero-shot transfer),无需针对特定任务微调跨任务泛化性能。

2025-05-19 21:21:30 1933 1

原创 sherpa-ncnn:Endpointing(断句规则)

如果激活了其中任何一个,我们假设检测到终端节点。在以下示例中,解码内容后,当尾随静默的持续时间大于用户指定的值。中,我们要求它必须先解码一些内容,然后才能计算尾随的静默。当尾随静默的持续时间达到 2.4 秒时,没有解码任何内容。在尾随静默的持续时间达到 2.4 秒之前,解码了一些内容。Python API中,您可以在构造。Python API中,您可以在构造。Python API中,您可以在构造。C++ API中,您可以在创建。C++ API中,您可以在创建。C++ API中,您可以在创建。

2025-05-08 20:18:01 403

原创 sherpa:介绍

sherpa是项目的部署框架。sherpa支持在各种平台上部署与语音相关的预训练模型,并提供多种语言绑定。目前,sherpa拥有以下子项目:项目安装难度困难容易神经网络库PyTorchncnnCPU支持arm32arm64arm32arm64**RISC-V**GPU支持是(使用CUDA支持 NVIDIA GPU)是是(使用Vulkan支持 ARM GPU)操作系统支持macOSmacOS,iOSAndroidmacOS,iOSAndroid是否支持 batch_size > 1。

2025-05-08 20:14:43 515

原创 GLIBC:GLIBCXX not found

当GLIBC出现版本不满足时,可下载预编译的libstdc++和libc的库,在使用时指定即可。例如,ARM64平台Linux aarch64,存在以下报错:GLIBCXX not found。此时,可下载预编译的libstdc++.so.6和libc.so.6,在运行时指定即可。以下wget命令下载的文件,可能会下载不完整,推荐浏览器中下载。声明:资源可能存在第三方来源,若有侵权请联系删除!

2025-05-06 17:44:22 562

原创 GCC:Linux x86_64 编译 Linux aarch64 上运行的程序

编译类型:编译器和目标程序都是相同架构的编译过程,被称为本地编译。编译器和目标程序运行在不同架构的编译过程,被称为交叉编译。编译工具链命名:如 gcc-arm-xxx-x86_64-aarch64-none-linux-gnu:gcc-arm-xxx: 表示ARM 架构工具链。x86_64: 工具链的目标平台。aarch64: 生成的可执行文件或目标代码的目标架构,默认采用小端字节序。

2025-05-06 17:42:58 778

循迹识别小车(上传版).zip

循迹+识别的小车 使用STM32板、树莓派3B+板、python语言、opencv、openmv4等等,简单易懂。

2021-01-20

MSP430数据手册+用户手册中英文

亲自使用个,很好用。——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

2020-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除