- 博客(206)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 基于Transformer架构的脑瘤MRI图像分类实现
这里我们基于自定义一个架构,我们要同时考虑局部特征提取能力与全局建模能力,并在计算效率、参数规模与泛化能力之间取得平衡。这里我们设计了一种融合CNN与Transformer架构优势的自定义模型。CNN计算成本低,擅长提取局部空间特征,但在处理大规模数据时存在性能上限;而Transformer则擅长捕捉全局上下文信息,但计算成本较高。因此,我们对Transformer架构进行了优化,以降低资源消耗的同时保留其建模能力,并利用CNN的归纳偏差加快模型收敛速度。引入CNN作为前置模块。
2025-05-28 07:00:00
481
原创 深度学习模型部署(4):使用已部署的模型
本节内容展示了如何通过使用问答模型进行实时推理。我们首先介绍了Triton的API接口结构,并通过Python客户端完成了从问题构造、文本预处理、构造模型输入、发送请求到服务器、接收输出结果,再到解析logits并获取最终答案的完整推理流程。通过这一实践,我们掌握了如何将一个深度学习模型以服务形式部署并进行实时调用。
2025-05-22 07:00:00
599
原创 深度学习模型部署(3):服务器性能
本文通过实测与分析,系统评估了Triton推理服务器的三项关键优化技术:并发执行、动态批处理与TensorRT加速。我们对比了启用与未启用优化功能的模型性能差异,发现优化后的模型在吞吐量和延迟上均有显著提升。随后,我们介绍了推理服务在生产环境中的部署架构,以及如何利用Kubernetes和Prometheus实现服务的自动扩缩容与性能监控。下一篇文章,我们将学习如何构建利用 Triton 功能的自定义应用…
2025-05-21 07:00:00
681
原创 深度学习模型部署(2):提升GPU利用率—并发执行、调度与批处理
本文系统介绍了如何通过并发模型执行、调度策略和动态批处理来优化的推理性能。在实验中,我们观察了 GPU 利用率的变化,理解了单实例与多实例、静态批处理与动态批处理之间的差异和优势。高并发 + 小批量请求在单实例下可能导致资源瓶颈,而增加实例数量可以提升吞吐;动态批处理能有效整合多个小请求,进一步提升性能,同时减少内存开销;针对不同模型结构(有状态/无状态、单模型/集成模型),选择合适的调度方式是优化的关键。
2025-05-20 07:00:00
820
原创 深度学习模型部署(1):模型导出
通过本节实验,你已经成功将一个 NLP 模型(BERT)以格式部署到,并进一步探索了通过ONNX和TensorRT格式实现的部署优化。在下一篇文章中,我们将学习如何对模型本身进行优化,并以更高效的方式进行部署…
2025-05-19 07:00:00
845
原创 机器学习详解(21):K折交叉验证详解
K折交叉验证(K-Fold Cross-Validation)是一种评估机器学习模型泛化能力的有效方法。它将数据集划分为K个子集,每轮使用其中一个子集作为验证集,其余K-1个子集用于训练,确保每个数据点都至少被验证一次。相比传统的训练-测试划分,K折交叉验证能减少因数据划分方式导致的评估结果波动,提供更稳定、全面的模型性能估计。常见的K值选择为5或10,平衡计算成本与评估稳定性。此外,针对不同数据特点,还有分层K折、留一法、分组K折等变体,适用于类别不平衡、小数据集或分组结构数据等场景。通过K折交叉验证,可
2025-05-16 07:00:00
925
原创 NLP基础(6):NLP深度学习实例
这篇文章围绕深度学习在自然语言处理中的实际应用展开,通过具体实现展示了神经网络在理解语义、识别文本类别以及生成语言内容等方面的强大能力,虽然存在如训练数据规模有限、预处理简单、模型尚未充分调优等问题,但模型效果在一定程度上体现了方法的可行性。
2025-05-15 07:00:00
920
原创 NLP基础(5):NLP常见应用案例的代码实现
本文介绍了基于消费者投诉的多类别文本分类任务,旨在通过自然语言处理(NLP)技术自动识别金融行业中的投诉类别,并将其分发给相关部门。文章详细描述了从数据读取、预处理、特征提取到模型训练与评估的完整流程。通过使用TF-IDF向量化文本数据,并采用逻辑回归模型进行分类,最终实现了84.8%的准确率。文章还通过混淆矩阵和分类报告分析了模型在不同类别上的表现,发现模型对主流投诉类型分类效果较好,但对小类别的识别仍有提升空间。最后,文章展示了如何对新的投诉文本进行预测,验证了模型的实际应用能力。
2025-05-14 07:00:00
798
原创 NLP基础(4):常见NLP处理任务的实现
本文我们不仅介绍了名词短语提取、文本相似度计算、实体识别、主题建模、文本分类等文本处理技术,也深入了解了情感分析、词义消歧、语音与文本互转以及语言翻译等多模态应用。这些任务是构建智能对话系统、推荐系统、搜索引擎等高级应用不可或缺的部分。
2025-05-13 07:00:00
1547
原创 NLP基础(3):特征工程之文本向量化方法详解
虽然我们之前学习的所有文本向量化方法(如One-HotTF-IDF无法捕捉词语的上下文与语义关系在 a 中,“apple” 是 水果,在 b 中,“apple” 是苹果公司。传统方法只知道“apple 出现了”,却无法理解它的含义随上下文改变。词嵌入() 是一种将词表示为稠密向量(让相似的词在向量空间中彼此靠近,自动学习语义关系每个词用一个实数向量表示(如 100 维、300 维等)向量不仅编码了词的语义,也编码了上下文环境可以使用在分类、聚类、相似度计算、翻译等任务中特性说明稠密。
2025-05-12 07:00:00
849
原创 NLP基础(2):文本清洗与格式化
在自然语言处理任务中,模型的效果不仅取决于算法本身,更依赖于输入数据的质量。通过对文本进行清洗、规范化、去除噪声和无用词,我们才能为后续建模打下扎实基础。
2025-05-09 07:00:00
711
原创 NLP基础(1):文本数据的获取与处理
文本数据的提取是自然语言处理的第一步,也是非常关键的一步。只有掌握了从各种来源(如本地文件、网页等)高效获取数据的能力,后续的文本清洗、建模、分析工作才能顺利进行。
2025-05-08 07:00:00
1096
原创 基于扩散模型的生成式AI实战(6):MNIST手写数字图片生成
至此,我们完成了《基于扩散模型的生成式AI实战》系列的最后一篇文章。本篇的目标是巩固之前的知识,并以 MNIST 数据集为例,完整实现一个能“生成手写数字”的扩散模型。如何构建前向扩散与逆向还原过程;如何利用 U-Net 架构进行噪声预测;如何引入时间与条件嵌入;如何训练模型预测噪声;最后使用技术增强采样效果。如果你想进一步深入扩散模型,可以尝试更复杂的数据集(如CIFAR-10CelebA),引入更多控制条件(如文本或风格),或探索更强大的模型如和ControlNet。
2025-05-07 07:00:00
922
原创 基于扩散模型的生成式AI实战(5):对比语言-图像预训练模型(CLIP)
这篇文章我们围绕 CLIP 模型展开,展示了如何使用 CLIP 将图像和文本分别编码成语义向量,并利用它们之间的余弦相似度进行图文匹配。在此基础上,进一步构建了一个使用 CLIP 编码作为标签的数据集,通过将图像的编码结果预处理后存储进 CSV,加快训练效率。随后,我们用这些编码作为条件输入,结合 DDPM 扩散模型训练了一个文本生成图像的神经网络。最终,通过设计文本提示,实现了从任意文本生成符合语义的图像。
2025-05-06 07:00:00
666
原创 基于扩散模型的生成式AI实战(4):支持类别控制的条件扩散模型
本篇文章介绍了如何基于 FashionMNIST 和 TF Flowers 构建一个支持类别控制的条件扩散模型。通过在 U-Net 中引入类别嵌入和伯努利掩码,实现了无监督与有监督的统一训练,同时利用 Classifier-Free Guidance 提升图像生成质量和类别一致性。最终,模型成功在彩色图像上生成了清晰、多样的类别特定图像,为后续文本生成图像打下基础。在下一篇文章中,我们将构建完整的文本生成图像()流程来进一步提升生成效果…
2025-04-28 07:00:00
900
原创 基于扩散模型的生成式AI实战(3):去噪模型优化(组归一化、GELU、重排池化、时间嵌入和残差连接)
这篇文章围绕扩散模型的图像生成过程进行改进,逐步搭建并优化了一个能生成 FashionMNIST 图像的扩散网络。作者从基础出发,首先引入了和GELU激活函数,替代传统的 BatchNorm 和 ReLU,以提升在小 batch 下的稳定性和表达能力。接着,利用替代 MaxPooling,让网络可以通过结构性重排自主决定哪些局部特征重要。同时,加入了基于正余弦函数的,让模型能够准确感知当前所处的扩散时间步。为了进一步缓解棋盘格伪影问题,文章引入了多个。
2025-04-25 07:00:00
744
原创 基于扩散模型的生成式AI实战(2):去噪扩散概率模型
U-Net 是扩散模型中最常用的噪声预测器。为了让 U-Net 适用于扩散模型,我们需要对原始 U-Net 做一些关键修改,使其能处理“带噪图像”和“时间步信息”,完成扩散过程中的噪声预测任务。原理是将 U-Net 从“图像到图像”的架构,改造成“带噪图像 + 时间 → 噪声估计”的架构,核心是加入时间嵌入、处理带噪图像,并以噪声预测作为训练目标。
2025-04-24 07:00:00
636
原创 基于扩散模型的生成式AI实战(1):U-Net去噪
虽然在U-Net详解中已经有实现U-Net的代码例子了。如果我们给图像添加噪声,再使用 U-Net 将图像与噪声分离,会发生什么?我们是否可以仅向模型输入噪声,然后生成可识别的图像?这篇文章我们就通过构建 U-Net 网络,探索如何利用其对图像进行去噪和生成新图像的能力。学习内容包括:使用 FashionMNIST 数据集,搭建 U-Net 架构(包含下采样和上采样模块),训练模型以从图像中去除噪声,并尝试生成服装图像。本篇博客以 U-Net 为基础,探索了其在图像去噪和生成方面的能力。
2025-04-23 07:00:00
1817
原创 生成式AI(4): 扩散模型的性能、应用和影响
Latent Diffusion 是一种用来加速扩散过程的方法,Stable Diffusion 模型就是基于该技术。如下图所示,回忆一下自编码器的基本流程:我们首先将输入图像xxx编码为潜在表示zzz,然后再通过解码器将其还原为x′x'x′。Latent Diffusion 的关键在于:它将扩散和去噪过程放在潜在空间中完成,而不是直接在图像空间操作。这样可以显著提升采样效率。潜在空间(Latent Space)是原始数据在经过编码后映射到的一个低维抽象空间,它保留了数据的核心特征。
2025-04-22 07:00:00
829
原创 生成式AI(3):去噪扩散模型DDPM详解
近年来,扩散模型()在图像生成任务中展现出了极高的性能,逐渐成为继 GANs 和 VAEs 之后的一类重要生成模型。特别是在高分辨率图像合成、图像编辑和音频生成等领域,扩散模型因其稳定性强、生成质量高而备受关注。去噪扩散模型(, DDPM)是扩散模型的代表性方法,其核心思想是将一个图像逐步添加噪声变成纯噪声,再通过一个反向过程一步步去噪还原原始图像。扩散模型的关键在于两个过程:前向扩散过程 和 反向去噪过程,它们通过构建可学习的马尔可夫链,实现从随机噪声中生成高质量数据。扩散模型是一种生成模型,其特点包括:
2025-04-18 07:00:00
1147
原创 生成式AI(2):生成式模型简介之自编码器、变分自编码器和生成对抗网络
生成模型是一类可以生成新的数据实例的模型。它们不同于判别模型,后者的作用是对数据进行分类。下图展示了图像空间与潜在分布之间的关系。图中的蓝色箭头表示将图像从图像空间映射到一个低维的潜在分布空间,而橙色箭头则表示从潜在分布中生成图像的过程。也就是说,蓝色箭头代表“压缩”过程,橙色箭头代表“生成”过程。生成模型的核心思想是:我们可以从一个低维的潜在空间(这个空间的分布通常是高斯分布)生成出具有真实感的图像。你可以把潜在空间想象成一个压缩版本的“图像本质特征空间”,它只保留了最关键的信息。
2025-04-17 07:00:00
1058
原创 生成式AI(1):U-Net详解
U-Net 是一种卷积神经网络架构,最初专为生物医学图像分割任务设计。该模型于 2015 年提出,凭借其高效性和出色的性能,已成为图像分割领域中的主流架构之一。U-Net 之所以得名,是因为它具有对称的 U 形结构编码路径():通过多层卷积和最大池化操作,对输入图像进行逐步下采样,提取图像的上下文信息,即“压缩”图像。解码路径(:通过上采样与卷积操作,将编码过程中的特征图还原为与原图大小一致的分割图,即“扩展”图像。U-Net 的核心优势来自于它的跳跃连接()——连接编码器和解码器中相同层级的特征图。
2025-04-16 07:00:00
716
原创 机器学习详解(20):LSTM代码详解之情感分析
情感分析是自然语言处理中的经典任务之一,目标是判断一段文本中表达的情绪倾向,比如褒义、贬义或中性。在电商评论、舆情监测、客服反馈等场景中都有着广泛的应用价值。相比传统的机器学习方法,基于循环神经网络(RNN)尤其是长短期记忆网络(LSTM)的模型,能够更好地捕捉文本中的上下文依赖关系,从而取得更优的效果。
2025-04-09 07:00:00
1238
原创 机器学习详解(19):长短期记忆网络LSTM原理详解
虽然用公式描述时,LSTM 的结构可能看起来复杂甚至有些吓人,但只要我们一步步梳理其内部逻辑,就会发现它其实并不难理解。它通过门控机制实现了对记忆的“读、写、忘”操作,构建了一种既能保留上下文又能灵活应变的序列建模能力。但LSTM 并不是终点,注意力机制(Attention)不再依赖固定的上下文状态,而是**“主动选择”**需要关注的信息来源。例如,在图像字幕生成任务中,模型在生成每一个词时,都能自动聚焦图像中不同的区域。这种自由灵活的对齐方式,在自然语言处理和多模态任务中都展现出巨大潜力。
2025-04-08 07:00:00
1803
原创 机器学习详解(18):随机森林原理及代码实现
随机森林通过组合多棵决策树来进行预测。森林中的每棵树都在数据的一个随机子样本上进行训练,并在每次划分节点时只考虑部分随机选取的特征。每棵树就像一个“专家”,独立做出分类判断。最终结果通过多数投票决定哪一类为最终预测(如果是回归任务,则取所有树预测值的平均)。如下图所示,有一组由n棵树组成的森林,我们看前5棵,其中4棵判断为“猫”,1棵判断为“狗”,那最终结果就是“猫”。每棵树走的判断路径可能不同,因此预测也各有差异。Bootstrap抽样。
2025-04-03 07:00:00
1262
原创 机器学习详解(17):决策树原理及代码实现
决策树是一种灵活且可解释的监督学习算法,是许多经典机器学习算法(如随机森林、Bagging 和梯度提升决策树)的基础算法,核心思想是将数据表示为一棵树:根节点:包含初始的决策规则,例如“是否运动”内部节点:表示针对某个属性进行判断的条件测试分支:根据条件分裂出后续的决策路径叶节点(终端节点):表示分类标签或预测值分裂:将节点分成多个子节点的过程,基于特定条件或规则剪枝:与分裂相反的过程,通过移除不必要的决策规则简化树的结构,从而降低算法的复杂性并提高泛化能力。
2025-04-01 07:00:00
825
原创 CANopen和CAN学习(4):CANopen规范之EDS、DCF和SDO访问对象字典
EDS()和DCF()文件格式在 CANopen 中用于描述特定节点中实现的对象字典。为了向CANopen分析软件(上位机)提供一种识别 CANopen 节点中可用对象字典条目的方法,需要一种电子可读的文件格式。CANopen 规范了这种格式,称为电子数据表 (EDS)。EDS 是对象字典规范的电子可读版本。接着我们将探讨一下SDO访问对象字典的相关知识和注意事项。
2025-02-27 07:00:00
1476
原创 CANopen和CAN学习(3):CANopen规范之对象字典详解
定义对象字典就像表格,包含所有网络可访问的数据。每个CANopen节点都必须实现自己的对象字典对象字典描述了节点的CANopen配置和功能,可以被其他CANopen节点读取和写入用途对象字典不仅存储节点的应用特定信息,还可以被网络上的其他节点使用通过向节点的对象字典条目写入数据(有时通过读取数据),可以指示节点执行某种操作例如采样当前温度,并将采样数据存储在对象字典中以供其他节点读取信息获取通过读取节点的对象字典条目,其他节点可以了解该节点的功能和操作方式。
2025-02-26 07:00:00
1420
原创 CANopen和CAN学习(2):CANopen基础之对象字典、设备配置文件、EDS、SDO、PDO和网络管理
上一节,我们了解了CANopen和CAN学习(1):嵌入式网络通用术语,本节,我们将介绍CANopen协议的主要功能,以及它如何满足嵌入式网络的要求。任何 CANopen 节点的核心是对象字典(,),它是一个由 位索引和 位子索引组成的查找表。这允许在每个索引下最多有 个子条目,每个条目可以包含一个任意类型和长度的变量。对象字典不仅提供了一种将变量与索引和子索引值关联的方法,还指定了数据类型定义表。从索引1开始的条目专门用于指定数据类型。下表显示了对象字典中定义的一些常用数据类型的前七个条目。通过这种
2025-02-25 07:00:00
1816
原创 CANopen和CAN学习(1):嵌入式网络通用术语
从本篇开始,我将深入学习CANopen和CAN相关知识。但在这之前,本篇文章先来了解一下嵌入式网络相关的通用术语。
2025-02-24 07:00:00
1019
原创 机器学习详解(16):迁移学习及代码实例
上一篇文章中,我们用预训练的 ImageNet 模型来识别所有的狗。然而,这次我们希望创建一个只允许特定狗进入的宠物门。以一只名为 Bo 的狗为例,我们有 Bo 的 30 张照片,但预训练模型并未专门训练过这只狗。如果直接用这 30 张照片从头训练模型,会导致过拟合。通过迁移学习,我们可以利用预训练模型中识别狗的能力,在小数据集上实现对 Bo 的识别。本篇文章的目标准备一个预训练模型以进行迁移学习。使用自己的小型数据集对预训练模型进行迁移学习。进一步微调模型以提升性能。
2025-02-13 07:00:00
720
原创 机器学习详解(15):使用预训练模型VGG16识别动物
使用 TorchVision 加载一个训练良好的预训练模型。预处理图像以符合预训练模型的输入要求。使用预训练模型对自己的图像进行准确的推理。我们将创建一个宠物门,只允许狗进入,但将猫等其他动物留在外面。如果通过手动训练模型实现该功能,需要一个包含多种动物的大型数据集。不过,我们可以直接使用已有的预训练模型实现,VGG 模型(如 VGG16 和 VGG19)最初是在 ImageNet 数据集上的 ILSVRC 挑战中提出,并使用该数据集进行了预训练。
2025-02-11 07:00:00
1192
原创 机器学习详解(14):模型的保存和部署实例
通过保存模型,可以将训练成果持久化,避免重复训练节省时间和计算资源。加载模型则使得我们能够方便地在不同环境中复用模型,如本地测试、云端部署或边缘设备运行。此外,保存和加载还便于团队协作和版本管理,确保模型的可追溯性和持续优化能力。这些优势使模型的应用更高效、更灵活。
2025-02-10 07:00:00
1104
原创 机器学习详解(13):CNN图像数据增强(解决过拟合问题)
flattened_img_size = 75 * 3 * 3 # 扁平化后图像的大小# 构建Sequential模型MyConvBlock(IMG_CHS, 25, 0), # 输入:1x28x28,输出:25x14x14MyConvBlock(25, 50, 0.2), # 输出:50x7x7MyConvBlock(50, 75, 0), # 输出:75x3x3nn.Flatten(), # 扁平化nn.Linear(flattened_img_size, 512), # 全连接层。
2024-12-31 07:00:00
1353
1
原创 机器学习详解(12):正则化和标准化
未知或非高斯分布当数据分布未知或不符合正态分布时(例如,房价分布通常有很高的偏态)。归一化可以让目标变量误差更均匀分布,提升模型性能。基于距离的算法在使用依赖距离的机器学习算法时(如 k-近邻算法),归一化能防止大尺度特征主导距离计算。归一化的目标正则化目标变量,使误差分布更加平滑;确保输入变量的不同尺度不会互相干扰,避免模型对大值特征的偏倚。通过正确应用归一化,特征缩放不仅能让模型训练更高效,还能使结果更具解释性。与归一化将特征缩放到特定范围不同,标准化通过将数据调整为均值为000。
2024-12-30 07:00:00
975
原创 机器学习详解(11):分类任务的模型评估标准
过拟合和欠拟合是导致机器学习算法性能不佳的两个主要原因。过拟合:模型在训练数据上表现得非常好,但对新数据泛化能力很差。模型过于复杂,捕捉了数据中的噪声和无关信息,而非真正的规律。欠拟合:模型过于简单,未能从训练数据中学习到充分的模式和规律,导致训练集和测试集上的性能都很差。特性过拟合欠拟合模型复杂度过高过低训练集性能极好较差测试集性能较差较差原因学习了数据中的噪声和细节未能充分学习数据中的规律解决方法简化模型、正则化、增加数据量、早停。
2024-12-27 07:00:00
1423
原创 机器学习详解(10):优化器optimizer总结
优化器通过调整模型参数来最小化损失函数,从而提高模型的预测能力。它使用损失函数的梯度来确定参数更新的方向,并通过反向传播计算每个模型参数的梯度,进而更新模型的权重。优化算法通过迭代调整参数,直到损失函数达到最小值或达到允许的最大迭代次数为止。学习率的选择是关键,过低的学习率会导致收敛速度缓慢,而过高的学习率可能导致训练不稳定或无法收敛。方法适用场景梯度下降法小型数据集,目标函数平滑、凸优化问题。适用于批量更新参数的场景,计算梯度需要全数据集。随机梯度下降。
2024-12-26 07:00:00
1719
原创 机器学习详解(9):损失函数总结
损失函数使用场景公式特点适用场景特点均方误差(MSE)用于回归任务,衡量预测值与实际值之间的平方差,例如预测房价、温度等连续变量。对较大的误差赋予更高权重,因此对异常值敏感,适合需要精确预测的任务。当异常值较少时表现较好,优化时梯度平滑,适合基于梯度的优化算法。平均绝对误差(MAE)用于回归任务,与 MSE 类似,但更加关注绝对误差,例如用在受异常值影响较大的数据集上,如交通流量预测。对所有误差赋予相同权重,因此对异常值鲁棒,但绝对值函数在 0 点不可微,优化梯度不平滑。
2024-12-19 07:00:00
784
原创 机器学习详解(8):激活函数总结
激活函数是神经网络的核心部分,使其能够捕获数据中的非线性关系。从经典的Sigmoid和Tanh到现代变体如ReLU和Swish,每种激活函数在不同类型的神经网络中都有其特定的用途。理解它们的行为并根据模型需求选择合适的激活函数是关键。
2024-12-18 07:00:00
790
原创 机器学习详解(7):卷积神经网络CNN之手语识别代码详解
本文通过构建卷积神经网络(CNN)实现了对 ASL 手语字母的分类任务,从数据预处理到模型设计,再到训练和验证,完整地展示了深度学习在计算机视觉领域的强大能力。通过使用 Batch Normalization 和 Dropout 等技术,我们在一定程度上缓解了过拟合问题,同时采用了优化器和损失函数的合理搭配来提升模型性能。然而,训练出一个完美的模型需要不断的调参、对数据和结果的深入分析,以及丰富的实践经验。正如在最后的结果分析中,我们发现验证损失的波动需要进一步优化。
2024-12-17 07:00:00
876
ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition
2024-01-12
Avoiding Read While Write Errors When In-Software Flash
2023-11-27
AES加解密算法(Rijndael) C++代码
2023-09-03
cortex-m4f-lazy-stacking-and-context-switching.pdf
2022-12-02
Supplement to the Bluetooth Core Specification
2022-11-24
STM32 PWM的OCToggle模式输出频率和占空比动态调整的波形
2020-02-24
OpenCV提取HSV颜色范围问题
2021-06-02
C语言 指针地址相减的问题
2018-12-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人