- 博客(216)
- 资源 (8)
- 问答 (2)
- 收藏
- 关注
原创 机器学习详解(24):超参数大小设置指南之Epoch、学习率、批大小与权重衰减
深度学习模型训练的关键超参数包括训练轮数(Epochs)、学习率(Learning Rate)和批大小(Batch Size)。这些参数对模型性能、收敛速度和稳定性有重要影响: Epochs:表示模型遍历整个训练集的次数。太少会导致欠拟合,太多可能过拟合。建议使用早停法(Early Stopping)和观察学习曲线来确定最佳轮数。 Learning Rate:控制参数更新的步长。过大会导致训练不稳定,过小则收敛缓慢。推荐使用学习率查找器和动态调整策略(如ReduceLROnPlateau)来优化学习率。
2025-07-21 07:00:00
591
原创 机器学习详解(23):Huber Loss损失函数(解决离群值)
Huber回归通过结合平方损失和绝对值损失的优势,有效提升模型在离群值干扰下的鲁棒性。其损失函数以阈值δ控制误差处理方式:小误差时保持平方损失的高精度,大误差时切换为线性损失以降低离群点影响。实验对比显示,相较于传统线性回归,Huber回归在合成数据中更准确拟合真实趋势(如预测值806.72 vs 87.38)。实际应用中需平衡δ的选择,并可通过Scikit-learn快速实现。该方法的灵活性使其适用于NLP、时间序列预测等多领域,为噪声数据建模提供可靠解决方案。
2025-07-18 08:00:00
910
原创 机器学习详解(22):Focal Loss损失函数(解决类别不平衡)
针对类别不平衡问题,Focal Loss通过引入调制因子γ和类别权重α改进传统交叉熵损失。γ降低易分类样本的损失权重,使模型聚焦困难样本;α调整不同类别的重要性。实验表明,Focal Loss能有效抑制大量简单负样本的干扰,提升模型对少数类和困难样本的学习能力,在目标检测等不平衡任务中表现优异。(144字)
2025-07-18 07:00:00
843
原创 基于Tranformer的NLP实战(7):BERT实战-实现命名实体识别
这篇文章我们基于 NeMo 框架实现了医学领域的命名实体识别系统,涵盖了从数据加载、模型训练到推理评估的完整流程,并对比了通用模型与医学领域模型在任务表现上的差异。实验显示,领域模型如 BioMegatron 在识别准确率上更具优势,特别适用于处理专业性强的医学文本。此外,当前模型仅识别疾病实体,未来可以扩展到多类别实体识别(如药物、症状、基因等),并结合上下游任务如关系抽取,构建更完整的医学知识抽取系统。
2025-07-17 07:00:00
553
原创 基于Tranformer的NLP实战(6):BERT实战-作者归属识别
本项目探索了利用 BERT 模型进行作者归属识别的可行性,验证了语言模型在识别写作风格差异方面的潜力。通过构建分类模型对《联邦党人文集》中的争议文章进行分析,展示了深度学习方法在文本风格识别任务中的实际应用能力。
2025-07-16 07:00:00
999
原创 基于Tranformer的NLP实战(5):BERT实战-基于Pytorch Lightning的文本分类模型
通过本篇实践,我们不仅完成了一个医学文本分类器的搭建,还深入理解了 NeMo 与 PyTorch Lightning 的协作关系。NeMo 的封装加速了模型落地,而 Lightning 的模块化设计则为进一步定制打下基础。未来你可以基于该框架轻松扩展至多分类、多语言模型或其他医学 NLP 任务,构建更具实际价值的 AI 应用。
2025-07-15 07:00:00
730
原创 基于Tranformer的NLP实战(4):BERT实战-文本分类与命名实体识别的数据结构
这篇文章主要探索了用于文本分类和命名实体识别任务的两个数据集结构。文本分类任务中,每条文本会被标注为某一类疾病(癌症、神经系统疾病或其他)NER 任务中,每个词都被标注为 I、O或B,以识别医学文献中的疾病实体。掌握了数据结构,就为后续构建 BERT 模型打下了坚实基础。下一篇文章,我们将正式进入模型构建部分,并了解如何使用 NVIDIA NeMo 工具包。
2025-07-03 07:00:00
1314
原创 基于Tranformer的NLP实战(3):预训练BERT语言模型
在这篇文章中,我们学习了如何训练一个 BERT 分词器,并利用 NVIDIA NeMo 框架在大规模无标签文本数据上预训练一个 BERT 语言模型。尽管预训练阶段不依赖带标签数据,但它需要大量的计算资源和时间,一般要一周甚至更多的时间。相比之下,微调BERT模型的计算开销较小,但需配合带标签的数据集。
2025-07-02 07:00:00
1323
原创 基于Tranformer的NLP实战(2):BERT原理与可视化
BERT),是基于 Transformer 模型编码器部分的模型。BERT 将输入文本映射到训练好的、带上下文的表示。具体来说,BERT 模型将两个句子作为输入,用特殊符号[SEP]掩码语言模型预测(下一句预测(为了将原始文本转换为数值表示,BERT 使用了一种名为WordPiece的子词分词算法(稍后介绍)。BERT 通常作为语言模型编码器使用。如下图所示,其预训练检查点可通过附加任务特定的层进行扩展。然后在下游任务上进行微调,如令牌分类(命名实体识别)、文本分类、问答等。
2025-06-26 07:00:00
945
原创 基于Tranformer的NLP实战(1):Transformer架构详解
Transformer架构支撑着无数现代自然语言处理、计算机视觉、自动语音识别、时间序列建模及其他应用。在这篇文章中,我们将从整体上了解Transformer架构,以便在本课程后续部分讨论BERT和GPT架构的实现细节。在2017年末,大量的序列到序列(seq2seq)问题,包括翻译,都是通过卷积神经网络或循环神经网络解决的。当时所有模型的共同点是,它们都大量利用了注意力机制,以便处理长序列。Transformer架构在。
2025-06-25 07:00:00
765
原创 基于Transformer架构的脑瘤MRI图像分类实现
这里我们基于自定义一个架构,我们要同时考虑局部特征提取能力与全局建模能力,并在计算效率、参数规模与泛化能力之间取得平衡。这里我们设计了一种融合CNN与Transformer架构优势的自定义模型。CNN计算成本低,擅长提取局部空间特征,但在处理大规模数据时存在性能上限;而Transformer则擅长捕捉全局上下文信息,但计算成本较高。因此,我们对Transformer架构进行了优化,以降低资源消耗的同时保留其建模能力,并利用CNN的归纳偏差加快模型收敛速度。引入CNN作为前置模块。
2025-05-28 07:00:00
726
原创 深度学习模型部署(4):使用已部署的模型
本节内容展示了如何通过使用问答模型进行实时推理。我们首先介绍了Triton的API接口结构,并通过Python客户端完成了从问题构造、文本预处理、构造模型输入、发送请求到服务器、接收输出结果,再到解析logits并获取最终答案的完整推理流程。通过这一实践,我们掌握了如何将一个深度学习模型以服务形式部署并进行实时调用。
2025-05-22 07:00:00
646
原创 深度学习模型部署(3):服务器性能
本文通过实测与分析,系统评估了Triton推理服务器的三项关键优化技术:并发执行、动态批处理与TensorRT加速。我们对比了启用与未启用优化功能的模型性能差异,发现优化后的模型在吞吐量和延迟上均有显著提升。随后,我们介绍了推理服务在生产环境中的部署架构,以及如何利用Kubernetes和Prometheus实现服务的自动扩缩容与性能监控。下一篇文章,我们将学习如何构建利用 Triton 功能的自定义应用…
2025-05-21 07:00:00
757
原创 深度学习模型部署(2):提升GPU利用率—并发执行、调度与批处理
本文系统介绍了如何通过并发模型执行、调度策略和动态批处理来优化的推理性能。在实验中,我们观察了 GPU 利用率的变化,理解了单实例与多实例、静态批处理与动态批处理之间的差异和优势。高并发 + 小批量请求在单实例下可能导致资源瓶颈,而增加实例数量可以提升吞吐;动态批处理能有效整合多个小请求,进一步提升性能,同时减少内存开销;针对不同模型结构(有状态/无状态、单模型/集成模型),选择合适的调度方式是优化的关键。
2025-05-20 07:00:00
942
原创 深度学习模型部署(1):模型导出
通过本节实验,你已经成功将一个 NLP 模型(BERT)以格式部署到,并进一步探索了通过ONNX和TensorRT格式实现的部署优化。在下一篇文章中,我们将学习如何对模型本身进行优化,并以更高效的方式进行部署…
2025-05-19 07:00:00
942
原创 机器学习详解(21):K折交叉验证详解
K折交叉验证(K-Fold Cross-Validation)是一种评估机器学习模型泛化能力的有效方法。它将数据集划分为K个子集,每轮使用其中一个子集作为验证集,其余K-1个子集用于训练,确保每个数据点都至少被验证一次。相比传统的训练-测试划分,K折交叉验证能减少因数据划分方式导致的评估结果波动,提供更稳定、全面的模型性能估计。常见的K值选择为5或10,平衡计算成本与评估稳定性。此外,针对不同数据特点,还有分层K折、留一法、分组K折等变体,适用于类别不平衡、小数据集或分组结构数据等场景。通过K折交叉验证,可
2025-05-16 07:00:00
1130
原创 NLP基础(6):NLP深度学习实例
这篇文章围绕深度学习在自然语言处理中的实际应用展开,通过具体实现展示了神经网络在理解语义、识别文本类别以及生成语言内容等方面的强大能力,虽然存在如训练数据规模有限、预处理简单、模型尚未充分调优等问题,但模型效果在一定程度上体现了方法的可行性。
2025-05-15 07:00:00
985
原创 NLP基础(5):NLP常见应用案例的代码实现
本文介绍了基于消费者投诉的多类别文本分类任务,旨在通过自然语言处理(NLP)技术自动识别金融行业中的投诉类别,并将其分发给相关部门。文章详细描述了从数据读取、预处理、特征提取到模型训练与评估的完整流程。通过使用TF-IDF向量化文本数据,并采用逻辑回归模型进行分类,最终实现了84.8%的准确率。文章还通过混淆矩阵和分类报告分析了模型在不同类别上的表现,发现模型对主流投诉类型分类效果较好,但对小类别的识别仍有提升空间。最后,文章展示了如何对新的投诉文本进行预测,验证了模型的实际应用能力。
2025-05-14 07:00:00
888
原创 NLP基础(4):常见NLP处理任务的实现
本文我们不仅介绍了名词短语提取、文本相似度计算、实体识别、主题建模、文本分类等文本处理技术,也深入了解了情感分析、词义消歧、语音与文本互转以及语言翻译等多模态应用。这些任务是构建智能对话系统、推荐系统、搜索引擎等高级应用不可或缺的部分。
2025-05-13 07:00:00
1610
原创 NLP基础(3):特征工程之文本向量化方法详解
虽然我们之前学习的所有文本向量化方法(如One-HotTF-IDF无法捕捉词语的上下文与语义关系在 a 中,“apple” 是 水果,在 b 中,“apple” 是苹果公司。传统方法只知道“apple 出现了”,却无法理解它的含义随上下文改变。词嵌入() 是一种将词表示为稠密向量(让相似的词在向量空间中彼此靠近,自动学习语义关系每个词用一个实数向量表示(如 100 维、300 维等)向量不仅编码了词的语义,也编码了上下文环境可以使用在分类、聚类、相似度计算、翻译等任务中特性说明稠密。
2025-05-12 07:00:00
917
原创 NLP基础(2):文本清洗与格式化
在自然语言处理任务中,模型的效果不仅取决于算法本身,更依赖于输入数据的质量。通过对文本进行清洗、规范化、去除噪声和无用词,我们才能为后续建模打下扎实基础。
2025-05-09 07:00:00
831
原创 NLP基础(1):文本数据的获取与处理
文本数据的提取是自然语言处理的第一步,也是非常关键的一步。只有掌握了从各种来源(如本地文件、网页等)高效获取数据的能力,后续的文本清洗、建模、分析工作才能顺利进行。
2025-05-08 07:00:00
1145
原创 基于扩散模型的生成式AI实战(6):MNIST手写数字图片生成
至此,我们完成了《基于扩散模型的生成式AI实战》系列的最后一篇文章。本篇的目标是巩固之前的知识,并以 MNIST 数据集为例,完整实现一个能“生成手写数字”的扩散模型。如何构建前向扩散与逆向还原过程;如何利用 U-Net 架构进行噪声预测;如何引入时间与条件嵌入;如何训练模型预测噪声;最后使用技术增强采样效果。如果你想进一步深入扩散模型,可以尝试更复杂的数据集(如CIFAR-10CelebA),引入更多控制条件(如文本或风格),或探索更强大的模型如和ControlNet。
2025-05-07 07:00:00
1132
原创 基于扩散模型的生成式AI实战(5):对比语言-图像预训练模型(CLIP)
这篇文章我们围绕 CLIP 模型展开,展示了如何使用 CLIP 将图像和文本分别编码成语义向量,并利用它们之间的余弦相似度进行图文匹配。在此基础上,进一步构建了一个使用 CLIP 编码作为标签的数据集,通过将图像的编码结果预处理后存储进 CSV,加快训练效率。随后,我们用这些编码作为条件输入,结合 DDPM 扩散模型训练了一个文本生成图像的神经网络。最终,通过设计文本提示,实现了从任意文本生成符合语义的图像。
2025-05-06 07:00:00
724
原创 基于扩散模型的生成式AI实战(4):支持类别控制的条件扩散模型
本篇文章介绍了如何基于 FashionMNIST 和 TF Flowers 构建一个支持类别控制的条件扩散模型。通过在 U-Net 中引入类别嵌入和伯努利掩码,实现了无监督与有监督的统一训练,同时利用 Classifier-Free Guidance 提升图像生成质量和类别一致性。最终,模型成功在彩色图像上生成了清晰、多样的类别特定图像,为后续文本生成图像打下基础。在下一篇文章中,我们将构建完整的文本生成图像()流程来进一步提升生成效果…
2025-04-28 07:00:00
961
原创 基于扩散模型的生成式AI实战(3):去噪模型优化(组归一化、GELU、重排池化、时间嵌入和残差连接)
这篇文章围绕扩散模型的图像生成过程进行改进,逐步搭建并优化了一个能生成 FashionMNIST 图像的扩散网络。作者从基础出发,首先引入了和GELU激活函数,替代传统的 BatchNorm 和 ReLU,以提升在小 batch 下的稳定性和表达能力。接着,利用替代 MaxPooling,让网络可以通过结构性重排自主决定哪些局部特征重要。同时,加入了基于正余弦函数的,让模型能够准确感知当前所处的扩散时间步。为了进一步缓解棋盘格伪影问题,文章引入了多个。
2025-04-25 07:00:00
807
原创 基于扩散模型的生成式AI实战(2):去噪扩散概率模型
U-Net 是扩散模型中最常用的噪声预测器。为了让 U-Net 适用于扩散模型,我们需要对原始 U-Net 做一些关键修改,使其能处理“带噪图像”和“时间步信息”,完成扩散过程中的噪声预测任务。原理是将 U-Net 从“图像到图像”的架构,改造成“带噪图像 + 时间 → 噪声估计”的架构,核心是加入时间嵌入、处理带噪图像,并以噪声预测作为训练目标。
2025-04-24 07:00:00
694
原创 基于扩散模型的生成式AI实战(1):U-Net去噪
虽然在U-Net详解中已经有实现U-Net的代码例子了。如果我们给图像添加噪声,再使用 U-Net 将图像与噪声分离,会发生什么?我们是否可以仅向模型输入噪声,然后生成可识别的图像?这篇文章我们就通过构建 U-Net 网络,探索如何利用其对图像进行去噪和生成新图像的能力。学习内容包括:使用 FashionMNIST 数据集,搭建 U-Net 架构(包含下采样和上采样模块),训练模型以从图像中去除噪声,并尝试生成服装图像。本篇博客以 U-Net 为基础,探索了其在图像去噪和生成方面的能力。
2025-04-23 07:00:00
2082
1
原创 生成式AI(4): 扩散模型的性能、应用和影响
Latent Diffusion 是一种用来加速扩散过程的方法,Stable Diffusion 模型就是基于该技术。如下图所示,回忆一下自编码器的基本流程:我们首先将输入图像xxx编码为潜在表示zzz,然后再通过解码器将其还原为x′x'x′。Latent Diffusion 的关键在于:它将扩散和去噪过程放在潜在空间中完成,而不是直接在图像空间操作。这样可以显著提升采样效率。潜在空间(Latent Space)是原始数据在经过编码后映射到的一个低维抽象空间,它保留了数据的核心特征。
2025-04-22 07:00:00
906
原创 生成式AI(3):去噪扩散模型DDPM详解
近年来,扩散模型()在图像生成任务中展现出了极高的性能,逐渐成为继 GANs 和 VAEs 之后的一类重要生成模型。特别是在高分辨率图像合成、图像编辑和音频生成等领域,扩散模型因其稳定性强、生成质量高而备受关注。去噪扩散模型(, DDPM)是扩散模型的代表性方法,其核心思想是将一个图像逐步添加噪声变成纯噪声,再通过一个反向过程一步步去噪还原原始图像。扩散模型的关键在于两个过程:前向扩散过程 和 反向去噪过程,它们通过构建可学习的马尔可夫链,实现从随机噪声中生成高质量数据。扩散模型是一种生成模型,其特点包括:
2025-04-18 07:00:00
1334
原创 生成式AI(2):生成式模型简介之自编码器、变分自编码器和生成对抗网络
生成模型是一类可以生成新的数据实例的模型。它们不同于判别模型,后者的作用是对数据进行分类。下图展示了图像空间与潜在分布之间的关系。图中的蓝色箭头表示将图像从图像空间映射到一个低维的潜在分布空间,而橙色箭头则表示从潜在分布中生成图像的过程。也就是说,蓝色箭头代表“压缩”过程,橙色箭头代表“生成”过程。生成模型的核心思想是:我们可以从一个低维的潜在空间(这个空间的分布通常是高斯分布)生成出具有真实感的图像。你可以把潜在空间想象成一个压缩版本的“图像本质特征空间”,它只保留了最关键的信息。
2025-04-17 07:00:00
1120
原创 生成式AI(1):U-Net详解
U-Net 是一种卷积神经网络架构,最初专为生物医学图像分割任务设计。该模型于 2015 年提出,凭借其高效性和出色的性能,已成为图像分割领域中的主流架构之一。U-Net 之所以得名,是因为它具有对称的 U 形结构编码路径():通过多层卷积和最大池化操作,对输入图像进行逐步下采样,提取图像的上下文信息,即“压缩”图像。解码路径(:通过上采样与卷积操作,将编码过程中的特征图还原为与原图大小一致的分割图,即“扩展”图像。U-Net 的核心优势来自于它的跳跃连接()——连接编码器和解码器中相同层级的特征图。
2025-04-16 07:00:00
837
原创 机器学习详解(20):LSTM代码详解之情感分析
情感分析是自然语言处理中的经典任务之一,目标是判断一段文本中表达的情绪倾向,比如褒义、贬义或中性。在电商评论、舆情监测、客服反馈等场景中都有着广泛的应用价值。相比传统的机器学习方法,基于循环神经网络(RNN)尤其是长短期记忆网络(LSTM)的模型,能够更好地捕捉文本中的上下文依赖关系,从而取得更优的效果。
2025-04-09 07:00:00
1419
原创 机器学习详解(19):长短期记忆网络LSTM原理详解
虽然用公式描述时,LSTM 的结构可能看起来复杂甚至有些吓人,但只要我们一步步梳理其内部逻辑,就会发现它其实并不难理解。它通过门控机制实现了对记忆的“读、写、忘”操作,构建了一种既能保留上下文又能灵活应变的序列建模能力。但LSTM 并不是终点,注意力机制(Attention)不再依赖固定的上下文状态,而是**“主动选择”**需要关注的信息来源。例如,在图像字幕生成任务中,模型在生成每一个词时,都能自动聚焦图像中不同的区域。这种自由灵活的对齐方式,在自然语言处理和多模态任务中都展现出巨大潜力。
2025-04-08 07:00:00
2272
原创 机器学习详解(18):随机森林原理及代码实现
随机森林通过组合多棵决策树来进行预测。森林中的每棵树都在数据的一个随机子样本上进行训练,并在每次划分节点时只考虑部分随机选取的特征。每棵树就像一个“专家”,独立做出分类判断。最终结果通过多数投票决定哪一类为最终预测(如果是回归任务,则取所有树预测值的平均)。如下图所示,有一组由n棵树组成的森林,我们看前5棵,其中4棵判断为“猫”,1棵判断为“狗”,那最终结果就是“猫”。每棵树走的判断路径可能不同,因此预测也各有差异。Bootstrap抽样。
2025-04-03 07:00:00
1459
原创 机器学习详解(17):决策树原理及代码实现
决策树是一种灵活且可解释的监督学习算法,是许多经典机器学习算法(如随机森林、Bagging 和梯度提升决策树)的基础算法,核心思想是将数据表示为一棵树:根节点:包含初始的决策规则,例如“是否运动”内部节点:表示针对某个属性进行判断的条件测试分支:根据条件分裂出后续的决策路径叶节点(终端节点):表示分类标签或预测值分裂:将节点分成多个子节点的过程,基于特定条件或规则剪枝:与分裂相反的过程,通过移除不必要的决策规则简化树的结构,从而降低算法的复杂性并提高泛化能力。
2025-04-01 07:00:00
869
原创 CANopen和CAN学习(4):CANopen规范之EDS、DCF和SDO访问对象字典
EDS()和DCF()文件格式在 CANopen 中用于描述特定节点中实现的对象字典。为了向CANopen分析软件(上位机)提供一种识别 CANopen 节点中可用对象字典条目的方法,需要一种电子可读的文件格式。CANopen 规范了这种格式,称为电子数据表 (EDS)。EDS 是对象字典规范的电子可读版本。接着我们将探讨一下SDO访问对象字典的相关知识和注意事项。
2025-02-27 07:00:00
1819
原创 CANopen和CAN学习(3):CANopen规范之对象字典详解
定义对象字典就像表格,包含所有网络可访问的数据。每个CANopen节点都必须实现自己的对象字典对象字典描述了节点的CANopen配置和功能,可以被其他CANopen节点读取和写入用途对象字典不仅存储节点的应用特定信息,还可以被网络上的其他节点使用通过向节点的对象字典条目写入数据(有时通过读取数据),可以指示节点执行某种操作例如采样当前温度,并将采样数据存储在对象字典中以供其他节点读取信息获取通过读取节点的对象字典条目,其他节点可以了解该节点的功能和操作方式。
2025-02-26 07:00:00
1680
1
原创 CANopen和CAN学习(2):CANopen基础之对象字典、设备配置文件、EDS、SDO、PDO和网络管理
上一节,我们了解了CANopen和CAN学习(1):嵌入式网络通用术语,本节,我们将介绍CANopen协议的主要功能,以及它如何满足嵌入式网络的要求。任何 CANopen 节点的核心是对象字典(,),它是一个由 位索引和 位子索引组成的查找表。这允许在每个索引下最多有 个子条目,每个条目可以包含一个任意类型和长度的变量。对象字典不仅提供了一种将变量与索引和子索引值关联的方法,还指定了数据类型定义表。从索引1开始的条目专门用于指定数据类型。下表显示了对象字典中定义的一些常用数据类型的前七个条目。通过这种
2025-02-25 07:00:00
1964
原创 CANopen和CAN学习(1):嵌入式网络通用术语
从本篇开始,我将深入学习CANopen和CAN相关知识。但在这之前,本篇文章先来了解一下嵌入式网络相关的通用术语。
2025-02-24 07:00:00
1090
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
C语言 指针地址相减的问题
2018-12-20
OpenCV提取HSV颜色范围问题
2021-06-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人