- 博客(55)
- 收藏
- 关注
原创 Day49 - CBAM注意力机制
CBAM (Convolutional Block Attention Module) 是一种轻量级的注意力模块,它可以无缝集成到任何CNN架构中,通过引入额外的开销来显著提升模型的性能。与SE (Squeeze-and-Excitation) 模块主要关注通道注意力不同,CBAM 同时结合了通道注意力 (Channel Attention)和空间注意力 (Spatial Attention)。
2025-12-25 01:42:28
249
原创 Day 48 - 随机函数与广播机制
随机函数是实验的燃料,熟练掌握randnrandrandint即可应对绝大多数场景。广播机制是运算的润滑剂,理解“从右向左,1变多”的口诀,能让你写出更简洁、更高效的代码,避免手动写繁琐的for循环或repeat操作。
2025-12-24 00:49:38
608
原创 Day 47 - 注意力热力图 (Attention Heatmap)
通过可视化注意力热力图,我们将抽象的神经网络特征转化为了人类可理解的视觉信息。这不仅增强了我们对模型的信任度,也为后续的模型优化(如针对错误关注区域进行数据增强)提供了明确的方向。核心技术点在于利用hook获取中间层输出,并利用全局平均池化计算通道的重要性权重。
2025-12-22 21:22:38
536
原创 Day 46 - 通道注意力机制
在深度学习中,注意力机制(Attention Mechanism)是一种让模型学会“选择性关注重要信息”的技术。这就好比人类在看一张照片时,会自动忽略背景(如蓝天、草地),而聚焦于图片中的主体(如一只猫或一辆车)。传统的卷积神经网络(CNN)对所有输入特征一视同仁,而注意力机制卷积:固定权重(训练好后卷积核参数不变),对局部特征进行加权求和。注意力:动态权重(根据输入数据动态计算权重),输入不同,关注点不同。注意力机制是深度学习中的重要思想,通过动态权重提升模型对关键信息的敏感度。
2025-12-21 23:59:01
500
原创 DAY45 TensorBoard深度学习可视化工具
TensorBoard 是 TensorFlow 生态系统中的官方可视化工具,目前已完美兼容 PyTorch。它就像给深度学习模型装上了一个“监控仪表盘”,将枯燥的训练日志(如 Loss 值、准确率、权重分布等)转化为直观的图表和图像。实时监控:在训练过程中实时查看 Loss 曲线,快速判断模型是否收敛或过拟合。可视化调试:展示模型计算图(Graph),检查网络结构是否符合预期。数据分析:查看输入图像、数据增强效果以及预测错误的样本。参数诊断。
2025-12-20 23:56:36
530
原创 Day 44 预训练模型与迁移学习
起步即巅峰即使在冻结阶段(前 5 个 Epoch),准确率也能迅速达到 70% 左右。这归功于 ResNet 强大的特征提取能力。解冻后的飞跃第 6 个 Epoch(解冻瞬间),准确率通常会有一个明显的提升,因为卷积层开始适应新数据集的特征分布(如 CIFAR-10 的低分辨率)。训练集 vs 测试集准确率倒挂现象:训练准确率 (Training Acc) 往往低于测试准确率 (Test Acc)。原因:训练集使用了强力数据增强(裁剪、旋转、变色),模型看到的是“变态”难度的图片;
2025-12-19 23:57:05
854
原创 Day 42 深度学习可解释性:Grad-CAM 与 Hook 机制
Grad-CAM 是深度学习可解释性领域的一个里程碑工具。它不需要修改模型结构,也不需要重新训练,即可适用于各种 CNN 架构。通过掌握 PyTorch 的 Hook 机制,我们不仅可以实现 Grad-CAM,还可以进行特征提取、梯度裁剪等更多高级操作,从而打开深度学习的“黑盒”。
2025-12-17 23:42:31
570
原创 Day 41 卷积神经网络(CNN)基础与实战
数据增强是提升图像分类模型泛化能力的必备手段。BatchNorm是现代 CNN 的标配,能显著加速收敛并稳定训练。CNN 结构(卷积+池化)通过保留空间结构和参数共享,高效地处理了图像数据。学习率调度器帮助模型在训练后期打破瓶颈,进一步提升精度。
2025-12-16 23:54:35
798
原创 Day 40 深度学习训练与测试的规范写法
在定义 MLP(多层感知机)时,处理图像数据的一个关键步骤是展平(Flatten)。输入维度:图像数据通常是,例如。全连接层要求:全连接层 (Linear) 需要二维输入。Flatten 的作用将除batch_size以外的所有维度展平。例如->(64, 784)。注意:无论如何变换形状(Flatten, View, Reshape),第一个维度(Batch Size)通常保持不变。self.flatten = nn.Flatten() # 展平层。
2025-12-15 23:34:35
579
原创 Day 38 - Dataset 和 DataLoader
"""初始化:加载文件路径、标签文件等"""# 假设 fetch_mnist_data 是一个自定义函数,用于读取数据self.transform = transform # 预处理操作流水线"""返回数据集大小""""""获取指定索引 idx 的样本"""# 1. 根据索引获取原始数据和标签# 2. 应用预处理(如转 Tensor、归一化等)维度DatasetDataLoader核心职责定义“数据内容”和“单个样本获取方式”定义“批量加载策略”和“迭代方式”
2025-12-13 22:46:47
910
原创 Day 37 - 早停策略与模型权重的保存
训练集 Loss:持续下降(因为模型在死记硬背训练数据)。测试集/验证集 Loss:先下降,达到一个最低点后,开始震荡甚至反弹上升。关键点:当训练集 Loss 下降但测试集 Loss 不再下降(甚至上升)时,就是过拟合的开始。这就是我们应该停止训练的最佳时机。不要盲目训练:始终监控测试集 Loss,它是过拟合的“报警器”。早停是标配:设置合理的patience(通常 10-50,视数据波动情况而定),配合best_model保存机制,可以让你获得泛化能力最好的模型。只存参数:养成使用。
2025-12-12 20:41:28
801
原创 Day 35 - 模型可视化与推理
在深度学习的实践中,训练模型只是第一步。为了更好地理解模型到底学到了什么,我们需要对模型结构和参数进行可视化。而在模型训练完成后,如何正确地使用模型进行预测(即推理),也是必须掌握的核心技能。此外,在漫长的训练过程中,一个直观的进度条能让我们随时掌握训练状态,缓解等待的焦虑。今天我们重点通过代码实战来掌握这三个方面的技能:模型结构可视化、tqdm进度条的使用、以及标准的模型推理流程。
2025-12-10 14:43:08
674
原创 Day 33 简单的神经网络
从今天开始,我们将正式进入深度学习的领域。虽然机器学习只需要三行代码就能调用模型,但神经网络的灵活性更高,我们可以对模型结构、训练过程做非常多的定制。神经网络:它就像一个复杂的函数,输入数据,输出预测结果。梯度下降:这是让模型"学习"的方法,通过不断调整参数来减少误差。PyTorch:这是目前最流行的深度学习框架之一,我们接下来的项目都会基于它来开发。
2025-12-09 00:27:30
861
1
原创 Day 32 - 如何高效阅读官方文档
在学习 Python 库时,中文博客往往存在版本滞后或信息不全的问题。阅读官方文档是掌握一个库最直接、最准确的方式。本文以pdpbox库为例,介绍阅读官方文档的通用流程。
2025-12-07 20:33:24
418
原创 Day 31 - 项目文件的规范拆分
随着代码量的增加,将所有逻辑写在一个.ipynb或.py文件中会变得难以维护。不仅变量容易冲突,修改功能时也容易牵一发而动全身。将项目拆分为多个独立功能的模块,是很多开源项目的标准做法。今天主要记录如何构建一个规范的 Python 数据科学项目结构。
2025-12-07 20:32:43
554
原创 Day 29 类的装饰器
输入:接收一个类对象cls)作为参数。处理:在装饰器内部,可以修改这个类的属性、方法,甚至完全替换成另一个类。输出:返回一个类对象(通常是修改后的原类,或者是新的代理类)。定义方式代码位置访问权限适用场景静态定义写在class缩进块内部天然访问类属性常规业务逻辑开发动态绑定写在类外部,通过赋值注入需通过self显式访问装饰器、插件系统、热修复类装饰器是修改类定义的利器,它在类定义完成后立即执行。本质。技巧:利用保存原方法,再用替换,实现“拦截”效果。哲学。
2025-12-04 18:21:12
686
原创 Day 28 类的定义和方法
类名遵循大驼峰命名法 (UpperCamelCase)# 必须有缩进的代码块pass关键字class命名规范:大驼峰(如pass 占位符:当代码块暂时没有内容时,使用pass保持语法结构的完整性,防止报错。它告诉解释器:“这里有一个代码块,但暂时什么都不做。
2025-12-03 18:55:50
412
原创 DAY26 函数专题1
"""Docstring: 描述函数的功能、参数、返回值"""# 函数体def开始定义;名称遵守小写加下划线的约定(如()中是形参列表;即使无参也必须保留括号。文档字符串用于说明函数用途、参数、返回值,可通过或help(obj)查看。return返回值;遇到return即终止函数执行,后续语句不再运行;缺省返回None。函数是抽象与复用的基本单元;通过清晰的签名、合理的作用域与参数模式,可显著提升代码的可读性与可维护性。掌握*args**kwargs。
2025-12-01 23:42:43
387
原创 DAY25 异常处理
异常处理是将系统从“崩溃”提升到“可控”的核心机制:清晰边界、精确捕获、资源安全与可观测性。提供了表达这些工程约束的语法结构;配合日志、上下文管理与策略化重试,能显著提升系统鲁棒性。
2025-11-30 15:54:22
775
原创 DAY 21 常见的降维算法
本文系统介绍了降维技术及其应用,主要包括无监督和有监督降维方法。无监督降维(如PCA、t-SNE)通过保留数据方差或流形结构实现降维,适用于数据压缩、去噪和可视化;有监督降维(如LDA)利用标签信息最大化类别可分性,提升分类性能。文章详细讲解了PCA、t-SNE和LDA的原理、参数设置及代码实现,并通过对比分析不同算法的适用场景。降维技术可有效解决高维数据带来的维度灾难、过拟合和噪声干扰等问题,是数据预处理和特征工程的重要手段。
2025-11-26 14:35:25
955
原创 DAY 19 常见的特征筛选算法
想象一下,原始数据(如 data.csv)如同一个人的全部信息,涵盖身高、体重、年龄、收入、爱好、有无车房等几十个特征。特征筛选的目标,是从这众多特征中挑出对解决问题(如预测信用违约)最有用的特征,去除无关紧要甚至有干扰的特征。方差 (Variance):统计学中,方差衡量一组数据的离散程度或变化范围。方差大:特征数值在不同样本间变化大,波动剧烈。方差小:特征数值在所有样本中相近,几乎无变化。筛选逻辑。
2025-11-24 19:50:57
811
原创 DAY 18 推断聚类后簇的类型
在昨日的笔记中,我们深入探讨了运用聚类方法自动且合理划分群组的相关内容。聚类作为数据挖掘中一种重要的无监督学习方法,能够将数据集中相似的数据点划分到同一个群组中。我们详细研究了 KMeans 算法,它是一种基于距离度量的聚类算法,通过迭代的方式不断调整聚类中心,使得同一簇内的数据点距离尽可能小,不同簇之间的数据点距离尽可能大。同时,还学习了轮廓系数、肘部法则、CH 指数、DB 指数等评估聚类效果的指标。轮廓系数综合考虑了样本与自身簇的紧密程度以及与其他簇的分离程度;
2025-11-23 18:47:49
745
原创 DAY 17 常见聚类算法
聚类是发现数据内在结构的重要方法不同算法适用于不同的数据特点评估指标和可视化是选择最优聚类的关键实践中常需要多次尝试和对比不同算法。
2025-11-22 21:49:41
692
原创 DAY 16 数组的常见操作和形状
NumPy数组是Python中进行数值计算的基础理解数组维度和索引是使用NumPy的关键掌握NumPy操作能为后续深度学习学习打下基础数组运算比Python列表快得多,适合处理大规模数据。
2025-11-21 21:04:08
232
原创 DAY 15 复习日
尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目。这个是使用前14天写的代码,就不过多讲解了,都是比较固定的套路了。1. 有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。2. 尽可能与他人不同,优先选择本专业相关数据集。3. 探索一下开源数据的网站有哪些?
2025-11-20 20:43:01
290
原创 DAY 14 SHAP图的绘制
SHAP (SHapley Additive exPlanations) 是一种基于博弈论的模型解释方法,用于量化每个特征对模型预测结果的贡献。SHAP基于Shapley值,提供加性解释不同可视化函数有不同的参数要求维度匹配是使用SHAP的关键分类问题需要为每个类别分别分析。
2025-11-19 21:08:28
897
原创 DAY 12 启发式算法
1. 三种启发式算法的示例代码:遗传算法、粒子群算法、退火算法2. 学习优化算法的思路(避免浪费无效时间)今天以的思路为主,尝试检索资料、视频、文档,用尽可能简短但是清晰的语言看是否能说清楚这三种算法每种算法的实现逻辑,帮助更深入的理解。
2025-11-12 22:32:13
690
原创 DAY 11 常见的调参方式
超参数调整专题1知识点回顾1. 网格搜索2. 随机搜索(简单介绍,非重点 实战中很少用到,可以不了解)3. 贝叶斯优化(2种实现逻辑,以及如何避开必须用交叉验证的问题)4. time库的计时模块,方便后人查看代码运行时长。
2025-11-11 19:18:11
488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅