- 博客(51)
- 收藏
- 关注
原创 Day 51 神经网络调参指南
torch中很多场景都会存在随机数介绍一下这个随机函数的几个部分1. python的随机种子,需要确保random模块、以及一些无序数据结构的一致性2. numpy的随机种子,控制数组的随机性3. torch的随机种子,控制张量的随机性,在cpu和gpu上均适用4. cuDNN(CUDA Deep Neural Network library ,CUDA 深度神经网络库)的随机性,针对cuda的优化算法的随机性。
2025-12-26 20:39:29
1244
原创 Day 50 预训练模型CBAM注意力
先复用下数据预处理+定义cbam的代码,然后看下resnet内部的结构是什么,这决定我们如何插入模块先通过预训练resnet18来查看模型结构经典的 ResNet-18 模型可以将其看作一个处理流水线,图像数据从一端进去,分类结果从另一端出来。整个过程可以分为三个主要部分:先介绍下basic block,他是残差网络最重要的思想,在 ResNet 出现之前,人们普遍认为神经网络越深,性能就越好。但实践发现,当网络堆叠到一定深度后,再增加层数,模型的准确率反而会下降。
2025-12-25 17:50:26
985
原创 Day 49 CBAM注意力
CBAM 是一种能够集成到任何卷积神经网络架构中的注意力模块。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能力和性能。简单来说,它就像是给模型装上了 “智能眼镜”,让模型能够更精准地看到图像中关键的部分CBAM 由两个主要部分组成:通道注意力模块(Channel Attention Module)和空间注意力模块(Spatial Attention Module)。
2025-12-24 21:53:32
848
原创 DAY 48随机函数与广播机制
在深度学习中经常需要随机生成一些张量,比如权重的初始化,或者计算输入纬度经过模块后输出的维度,都可以用一个随机函数来实现需要的张量格式,而无需像之前一样必须加载一张真实的图片。随机函数的种类很多,我们了解其中一种即可,毕竟目的主要就是生成,对分布要求不重要。
2025-12-23 20:40:44
1170
原创 Day 47 注意力热力图可视化
注意力热力图是一种,它通过颜色深浅直观展示模型在处理图像时,对不同区域的 “关注度权重”—— 颜色越鲜艳(如红色)代表模型越关注该区域,颜色越暗淡(如蓝色)代表关注度越低。
2025-12-22 18:30:15
758
原创 Day 46 通道注意力
===================== 新增:通道注意力模块(SE模块) ====================="""通道注意力模块(Squeeze-and-Excitation)""""""参数:in_channels: 输入特征图的通道数reduction_ratio: 降维比例,用于减少参数量"""# 全局平均池化 - 将空间维度压缩为1x1,保留通道信息# 全连接层 + 激活函数,用于学习通道间的依赖关系# 降维:压缩通道数,减少计算量# 升维:恢复原始通道数。
2025-12-21 19:45:01
907
原创 Day 45 Tensorborad
TensorBoard 是 TensorFlow 生态中的官方可视化工具(也可无缝集成 PyTorch),用于实时监控训练过程、可视化模型结构、分析数据分布、对比实验结果等。它通过网页端交互界面,将枯燥的训练日志转化为直观的图表和图像,帮助开发者快速定位问题、优化模型。简单来说,TensorBoard 是 TensorFlow 自带的一个「可视化工具」,就像给机器学习模型训练过程装了一个「监控屏幕」。
2025-12-20 18:15:00
646
原创 Day 44 预训练模型
模型架构演进关键点总结1. 深度突破:从LeNet的7层到ResNet152的152层,残差连接解决了深度网络的训练难题。----没上过我复试班cv部分的自行去了解下什么叫做残差连接,很重要!2. 计算效率:GoogLeNet(Inception)和MobileNet通过结构优化,在保持精度的同时大幅降低参数量。3. 特征复用:DenseNet的密集连接设计使模型能更好地利用浅层特征,适合小数据集。
2025-12-19 17:36:59
1436
原创 Day43 Grad-CAM与HOOK函数
前言在深度学习中,我们经常需要查看或修改模型中间层的输出或梯度。然而,标准的前向传播和反向传播过程通常是一个黑盒,我们很难直接访问中间层的信息。PyTorch 提供了一种强大的工具——hook 函数,它允许我们在不修改模型结构的情况下,获取或修改中间层的信息。它的核心价值在于让开发者能够动态监听、捕获甚至修改模型内部任意层的输入 / 输出或梯度,而无需修改模型的原始代码结构。常用场景如下:1. 调试与可视化中间层输出2. 特征提取:如在图像分类模型中提取高层语义特征用于下游任务。
2025-12-18 20:52:31
583
原创 Day 42 简单CNN
在图像数据预处理环节,为提升数据多样性,可采用数据增强(数据增广)策略。该策略通常不改变单次训练的样本总数,而是通过对现有图像进行多样化变换,使每次训练输入的样本呈现更丰富的形态差异,从而有效扩展模型训练的样本空间多样性。常见的修改策略包括以下几类1. 几何变换:如旋转、缩放、平移、剪裁、裁剪、翻转2. 像素变换:如修改颜色、亮度、对比度、饱和度、色相、高斯模糊(模拟对焦失败)、增加噪声、马赛克3. 语义增强(暂时不用):mixup,对图像进行结构性改造、cutout随机遮挡等。
2025-12-17 22:04:58
1243
原创 Day 41 训练和测试的规范写法
在 PyTorch 中处理张量(Tensor)时,以下是关于展平(Flatten)、维度调整(如 view/reshape)等操作的关键点,这些操作通常不会影响第一个维度(即批量维度 batch_size):输入张量的形状通常为:例如:其中,代表一次输入的样本数量。输入张量的形状可能为:此时,同样是第一个维度。总结彩色的通道也是在第一步被直接展平,其他代码一致由于深度mlp的参数过多,为了避免过拟合在这里引入了dropout这个操作,他可以在训练阶段随机丢弃一些神经元,避免过拟合情况。dropo
2025-12-16 21:04:27
1259
原创 Day 40 图像数据与显存
先归一化,再标准化transforms.ToTensor(), # 转换为张量并归一化到[0,1]transforms.Normalize((0.1307,), (0.3081,)) # MNIST数据集的均值和标准差,这个值很出名,所以直接使用])# 2. 加载MNIST数据集,如果没有会自动下载# 定义两层MLP神经网络self.flatten = nn.Flatten() # 将28x28的图像展平为784维向量。
2025-12-15 21:19:29
940
原创 DAY 39 Dataset和Dataloader
CIFAR 是机器学习和计算机视觉领域中广泛使用的,由加拿大高级研究学院(Canadian Institute for Advanced Research,CIFAR)的研究团队发布,主要用于小尺寸图像的分类任务,是入门和验证图像分类模型性能的经典数据集。
2025-12-14 22:56:46
865
原创 Day 38 早停策略和模型权重的保存
本次采用信贷数据前期(0~200 轮):训练损失(蓝色)和测试损失(橙色)同步快速下降,说明模型在有效学习数据的核心规律,是正常的 “学习阶段”。中后期(200~1000 轮):训练损失继续缓慢下降并趋于稳定,测试损失下降至 0.46 左右后保持平稳;两者的差距始终较小(训练损失最终约 0.44,测试损失约 0.46),没有出现 “差距持续拉大” 的情况。过拟合的典型特征是:训练损失持续下降(甚至趋近于 0),但测试损失下降到一定程度后开始上升,或训练损失远低于测试损失。
2025-12-13 23:06:54
1077
原创 Day37 模型可视化与推理
可以将模型中带有weight的参数(即权重)提取出来,并转为 numpy 数组形式,对其计算统计分布,并且绘制可视化图表对比 fc1.weight 和 fc2.weight 的统计信息 ,可以发现它们的均值、标准差、最值等存在差异。这反映了不同层在模型中的作用不同。权重统计信息可以为超参数调整提供参考。例如,如果发现权重标准差过大导致训练不稳定,可以尝试调整学习率,使权重更新更平稳;或者改变权重初始化方法,使初始权重分布更合理。
2025-12-12 23:03:07
1031
原创 Day 36 简单的神经网络
class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层self.fc2 = nn.Linear(10, 3) # 隐藏层到输出层。
2025-12-11 22:32:37
976
原创 Day 35 官方文档的阅读
核心原则:先对版本,再找核心,最后看示例,3 步就能快速读懂:文档里重点看 3 块,其他可先跳过:文档里的「Examples / 示例」板块是刚需:以pdpbox这个机器学习解释性库来介绍如何使用官方文档。大多数 Python 库都会有官方文档,里面包含了函数的详细说明、用法示例以及版本兼容性信息。通常查询方式包含以下2种:一般通过github仓库都可以找到对应的官方文档那个。因为我们看的是最新的文档,库的版本可以在github上查看2. 导入InteractTargetPlot库官方文档说
2025-12-10 22:13:56
692
原创 Day34 文件的规范拆分和写法
一个典型的机器学习项目通常包含以下阶段:这部分往往是最开始的探索阶段,后面跑通了后拆分成了完整的项目,留作纪念用。常常会看到这个写法,实际上,每个文件都是一个对象,对象就会有属性和方法。如果直接运行这个文件,则等于,若这个文件被其他模块导入,则不等于。这个写法有如下好处:规范的 py 文件,首行会有:主要目的是显式声明文件的编码格式,确保 Python 解释器能正确读取和解析文件中的非 ASCII 字符(如中文、日文、特殊符号等)。也就是说这个是写给解释器看的。因为,在 Python 2.x 时代,默认编码
2025-12-09 21:36:57
978
原创 Day 33 模块与包的导入
本质:以.py结尾的单个文件,包含 Python 代码(函数、类、变量等)。作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。
2025-12-08 21:36:47
1041
原创 Day 31 类的定义和方法
要求包含属性:半径radius。包含方法::计算圆的面积(公式:πr2)。:计算圆的周长(公式:2πr)。初始化时需传入半径,默认值为 1。示例运行代码# 示例运行print(f"半径: {circle.radius}") # 输出: 半径: 5print(f"面积: {circle.calculate_area()}") # 输出: 面积: 78.54(保留两位小数)
2025-12-06 22:38:46
571
原创 Day 30 函数专题2 装饰器
装饰器就像给函数 “穿外套”:外套(wrapper)负责添加额外功能,里面的原函数本身不变,调用方式也和原来一样,却能多出来外套的功能。
2025-12-05 21:20:49
1173
原创 Day 28 异常值处理
Python的异常处理机制为程序提供了强大的容错能力 (fault tolerance)。当程序在运行时遇到意外情况(即异常),它不会直接崩溃,而是可以被设计成优雅地处理这些错误,并可能继续执行后续逻辑(如果设计允许)或以可控的方式结束。当异常发生时,Python会创建一个异常对象 (exception object)(通常是 Exception 类的子类实例)。如果这段可能出错的代码位于 try 语句块中,程序流程会寻找并跳转到匹配的 except 语句块(如果存在)来处理这个异常。
2025-12-03 20:22:29
1252
原创 Day 27 元组和OS模块
a.有序,可以重复,这一点和列表一样b. 元组中的元素不能修改,这一点非常重要,深度学习场景中很多参数、形状定义好了确保后续不能被修改。很多流行的 ML/DL 库(如 TensorFlow, PyTorch, NumPy)在其 API 中都广泛使用了元组来表示形状、配置等。可以看到,元组最重要的功能是在列表之上,增加了不可修改这个需求.
2025-12-02 20:48:38
1038
原创 Day 26 评价问题
机器不懂“时间越短越好,准确率越高越好”,我们需要手动告诉它哪些是效益型(越大越好),哪些是成本型(越小越好)。同时,为了避免后续计算 ln(0) 出错,我们需要做一个极小值处理。# --- 模块一:准备工作 ---# 1. 区分指标类型# 效益型指标 (越大越好):R² (决定系数)(模型解释力越强越好)benefit_cols = ['R² (决定系数)']# 成本型指标 (越小越好):MSE、MAE、RMSE(预测误差越小越好)、训练时间(耗时越少越好)
2025-12-01 21:00:27
1439
原创 DAY25 pipeline管道
--- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应你原代码中的 discrete_features 在预处理前)# 识别原始的非 object 列 (通常是数值列)# 有序分类特征 (对应你之前的标签编码)# 注意:OrdinalEncoder默认编码为0, 1, 2... 对应你之前的1, 2, 3...需要在模型解释时注意# 这里的类别顺序需要和你之前映射的顺序一致。
2025-11-30 19:50:12
1073
原创 Day23 回归问题与置信区间
加州房价数据集是机器学习领域最经典的回归任务基准数据集之一,其数据源于 1990 年美国人口普查(U.S. Census Bureau)对加州地区的住宅统计调查,后经整理被整合到库和 Kaggle 平台,成为数据科学、机器学习初学者入门回归问题,以及算法研究者验证模型性能的核心数据集。该数据集的核心目标是基于longitude、latitude、housing_median_age、total_rooms、total_bedrooms、population等区域特征预测加州各街区的房屋中位数价格。
2025-11-28 21:07:02
1364
原创 Day22 奇异值SVD分解
a. 特征降维:对高维数据减小计算量、可视化b. 数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高,但图像质量损失越大)c. 降噪:通常噪声对应较小的奇异值。通过丢弃这些小奇异值并重构矩阵,可以达到一定程度的降噪效果。d. 推荐系统:在协同过滤算法中,用户 - 物品评分矩阵通常是稀疏且高维的。SVD(或其变种如 FunkSVD,SVD++)可以用来分解这个矩阵,发现潜在因子(latent factors),从而预测未评分的项。这里其实属于特征降维的部分。
2025-11-27 21:12:18
786
原创 Day 21 常见的特征筛选法
认为方差越小的特征,其包含的信息量越少,对模型预测的贡献也越低。例如,一个特征在所有样本中取值几乎相同(如"国籍:中国"在一个全是中国的数据集中),它就是无用的。计算数据集中每个特征的方差。设定一个阈值(可以是绝对值,也可以是分位数)。剔除所有方差低于阈值的特征。计算效率极高,几乎不耗时。无需考虑目标变量,是一种无监督的预处理方法。只关注特征自身分布,可能误删与目标变量高度相关但方差小的特征(例如,一个稀有病的标志物,虽然出现少但至关重要)。
2025-11-26 13:08:18
1534
原创 Day 20 推断聚类后簇的类型
ST 段压低表现明显,运动诱发心绞痛比例高,最大心率整体偏低,年龄多集中在 50 岁以上,胸痛类型多为典型心绞痛。心血管相关指标异常突出,心肌缺血风险显著。
2025-11-25 21:30:39
1287
原创 Day 18 数组常见的操作和形状以及常见的聚类算法
NumPy 数组的维度 (Dimension) 或称为 轴 (Axis) 的概念,与我们日常理解的维度非常相似。直观判断:数组的维度层数通常可以通过打印输出时中括号 `[ ]` 的嵌套层数来初步确定: 一层 [ ]: 一维 (1D)数组。 两层 [ ]: 二维 (2D) 数组。 三层 [ ]: 三维 (3D) 数组,依此类推。1.2 随机创建NumPy随机数生成方法对比1.3 数组的遍历1.4 数组的运算 矩阵乘法:需要满足第一个矩
2025-11-23 15:17:16
1124
原创 Day 17 SHAP图的绘制
SHAP(SHapley Additive exPlanations)是当前机器学习领域最主流的,基于博弈论中的 Shapley 值,将每个特征对预测结果的贡献量化为「SHAP 值」,实现对模型的全局(整体特征重要性)和局部(单个样本决策逻辑)解释。
2025-11-22 18:58:21
995
原创 Day 16 ROC曲线和PR曲线
结论 A: ROC 是一个 “不论贫富” 的公平考官(针对模型能力)它的 “好” 在于:稳定性。结论 B: PR 是一个 “极度挑剔” 的甲方(针对业务落地)它的 “好” 在于:敏锐性。
2025-11-21 19:05:09
1402
原创 Day 14 多目标优化算法
1.多目标优化 (MOO)Multi-Objective Optimization,同时优化两个或两个以上相互冲突的目标函数的问题。比如最大化模型的准确率和召回率,但是二者一般是矛盾的。初始化N个解(个体)计算函数值(适应度)利用旧解产生新解(各种策略均可,GA\PSO等)选择新一轮的解单目标:直接排序,保留最优的N个解多目标:保留N个帕累托最优点,不同算法筛选的策略不同再从步骤2循环遗传算法多目标(NSGA-II)基于rank和拥挤距离粒子群多目标(MOPSO。
2025-11-17 14:13:01
1207
原创 Day 13 启发式算法
三种启发式算法的思想:遗传算法、粒子群算法、退火算法列表推导式所有的核心都是为了让g(参数)取得最大值二、基于LightGBM的优化1.前置工作导入相关的库默认参数的LightGBM。
2025-11-15 15:06:17
845
原创 Day 12 LightGBM原理与贝叶斯优化可视化
一个 “专家” 判断不准,就找一群 “小专家” 从不同角度分析,最后少数服从多数。多人投票。代码中的相关参数:简单说明一下GBDT,参考文献:余东昌,赵文芳,聂凯,等.基于LightGBM算法的能见度预测模型[J].计算机应用,2021,41(04):1035-1041.勇闯python的第12天@浙大疏锦行。
2025-11-13 14:40:36
1544
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅