- 博客(53)
- 收藏
- 关注
原创 Day 50 CBAM 注意力机制
先筛选有用的特征种类(通道注意力),再筛选有用的特征位置(空间注意力);让模型把精力集中在关键信息上,从而提升识别、分类等任务的准确率。# 第一步:实现通道注意力模块(CAM)"""参数说明(小白版):- in_channels: 输入特征图的通道数(比如ResNet的卷积块输出通道数是64/128等)- reduction_ratio: 压缩系数(默认16,目的是减少MLP的参数量,不用改)"""# 全局平均池化:[B, C, H, W] → [B, C, 1, 1]
2025-12-28 22:57:45
787
原创 Day 50 CBAM 注意力机制
先筛选有用的特征种类(通道注意力),再筛选有用的特征位置(空间注意力);让模型把精力集中在关键信息上,从而提升识别、分类等任务的准确率。# 第一步:实现通道注意力模块(CAM)"""参数说明(小白版):- in_channels: 输入特征图的通道数(比如ResNet的卷积块输出通道数是64/128等)- reduction_ratio: 压缩系数(默认16,目的是减少MLP的参数量,不用改)"""# 全局平均池化:[B, C, H, W] → [B, C, 1, 1]
2025-12-28 22:50:28
954
原创 Day48TensorBoard使用
旨在演示如何使用 PyTorch 对的 ResNet-18 模型在 CIFAR-10 数据集上进行微调(Fine-tuning),并利用 TensorBoard 工具对训练过程进行实时监控和可视化。
2025-12-26 23:08:20
265
原创 Day46 Grad-CAM与Hook函数
Grad-CAM 是 “让 AI 告诉人类它看了啥” 的工具:比如 AI 识别出图片里是猫,Grad-CAM 能在图上标出 “AI 主要看了猫的脸这个区域”(用热力图显示),帮你理解 AI 的判断依据。训练 AI 模型时,你可以设置一些 “自动触发的操作”:比如训练到第 10 轮时保存模型、如果 AI 很久没进步就停止训练、实时画训练曲线……这些 “到点自动干的事儿”,就是。就是 “输入 x,输出 2x” 的函数,适合临时用一下的简单功能。这是 Python 里的 “极简函数”—— 不用写。
2025-12-24 23:03:53
310
原创 Day45 CNN
目的:更深的网络理论上能提取更抽象、更高级的语义特征,适合处理稍微复杂一点的图像分类任务。探究修改卷积神经网络(CNN)的深度与宽度,以及改变学习率调度器对模型训练效果的影响。原方案:ReduceLROnPlateau (当指标不再下降时被动降低学习率)。增加宽度:通道数逐层递增为 32 -> 64 -> 128 -> 256。增加深度:增加了一个卷积块(Block 4),使网络变为4层卷积结构。新方案:CosineAnnealingLR (余弦退火调度器)。Block 4: 2x2 (Pool后)
2025-12-22 23:15:53
184
原创 Day44 训练和测试的规范写法
简单说就是把 “训练模型” 和 “测试模型” 的代码,分别写成两个独立的函数(比如叫。,代表 32 张 28×28 的 3 通道彩色图)。这几个维度合并成一个维度,变成。比如你有一张彩色图,形状是。
2025-12-21 22:35:41
219
原创 Day43 图像数据与显存
昨天我们介绍了minist这个经典的手写数据集,作为图像数据,相较于结构化数据(表格数据)他的特点在于他每个样本的的形状并不是(特征数,),而是(宽,高,通道数)# 先继续之前的代码from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具。
2025-12-20 20:40:57
577
原创 Day42Dataset和Dataloader
这是一个 “手写数字图片集”,里面是 0-9 的手写数字(每张图是 28x28 的黑白色),是深度学习入门常用的 “练习数据集”。,里面装着你的数据集(比如图片、标签)。就是 “把菜分成小份、端给模型吃” 的人。是 “装菜的盘子”,你可以把它理解成一个。
2025-12-19 23:09:19
304
原创 Day 41 早停策略和模型权重的保存
上的误差会先下降(模型学习到泛化能力),后上升(模型开始过拟合训练数据)。深度学习模型的 “权重” 本质是模型中可学习的参数(如卷积核、全连接层的权重矩阵)PyTorch 原生无内置早停,需手动记录验证集指标并判断,或使用。,避免模型继续学习训练集的噪声,从而保留泛化能力最强的模型状态。深度学习模型训练时,随着 epoch 增加,模型在。回调函数,可与早停搭配,自动保存最优权重。上的误差会持续下降,但在。回调函数,直接传入训练的。Lightning 内置。PyTorch 中常用。
2025-12-18 23:45:55
1038
原创 Day40 复习日
本文实现了一个规范的MLP神经网络信用违约预测模型。通过模块化设计将数据预处理、模型构建、训练和评估封装成函数/类,提升了代码可读性和复用性。采用PyTorch构建MLP网络,包含标准化输入、多层隐藏层(ReLU激活)、Dropout正则化和Sigmoid输出层。使用GPU加速训练,并实现规范的训练流程:数据加载器、训练循环和验证。评估阶段计算准确率、F1值和混淆矩阵等指标。代码优化方面,采用类的__call__方法封装训练逻辑,使用torchinfo可视化模型结构,并确保命名规范、路径处理和注释清晰。整个
2025-12-17 22:17:16
150
原创 【无标题】
GPU(显卡)比 CPU 更擅长并行计算,训练神经网络时用 GPU 能大幅提速。让 “类的实例” 可以像 “函数” 一样被调用,所以不用手动写。记录操作(比如打印损失、存日志)本身会占一点时间,但。(比如写日志花 0.05 秒)。
2025-12-15 23:21:57
825
原创 Day37 MLP神经网络的训练
MLP 是 “多层感知机”,就是一堆 “全连接层” 堆起来。继承nn.Module:所有模型都得是这个类的 “子类”;定义层:比如self.layer1 = nn.Linear(输入特征数, 隐藏层神经元数)(全连接层);前向传播:定义数据怎么从输入层→隐藏层→输出层,比如(relu 是激活函数,让模型能学非线性关系)。
2025-12-14 21:35:07
327
原创 Day34模块和库的导入
如果多个模块有同名工具,会冲突(后面导入的覆盖前面的);代码可读性差,不知道工具来自哪个模块。如果只需要模块里的 1-2 个工具,不用导入整个模块,只拿需要的就行。以 “用数学工具” 为例,Python 自带。),每次写全称麻烦,就给它起个 “小名”。:清晰知道工具来自哪个模块,避免重名。:直接用所有工具,不用加模块名。如果模块名太长(比如。import 模块名。import 模块名。(不用加模块名前缀)
2025-12-11 22:46:12
204
原创 Day32类的定义和方法
可以把类理解成一个 “模板”,用来描述同一类事物的共同特征(属性)和能做的事情(方法)。属性:名字、年龄、性别方法:吃饭、睡觉、工作用classclass 类名:# 这里写类的内容(属性、方法)举个 “小狗” 类的例子class Dog: # 定义一个叫Dog的类# 1. 初始化方法(给小狗设置属性)def __init__(self, name, color): # __init__是固定写法,self是必须的参数(代表“实例自己”)
2025-12-09 23:23:38
281
原创 元组和OS模块
空元组t1 = ()# 单元素元组(必须加逗号,否则会被识别为普通变量)t2 = (10,)# 多元素元组(常用)t3 = (1, "hello", True, [1,2]) # 可以嵌套列表、字典等# 省略括号(简写,不推荐新手用)
2025-12-04 23:24:54
239
原创 Day26 Pipeline(管道)
它本质是一种「流程化处理模式」,就像工厂里的生产线:原材料(原始数据)经过多道工序(处理步骤),最终变成成品(目标结果)。在编程中,尤其是数据处理、机器学习领域,Pipeline 能帮我们把多个独立的步骤串联起来,让代码更简洁、逻辑更清晰,还能避免常见错误。,所有步骤按顺序执行,形成一条 “管道”。如果中间某一步出错(比如鸡蛋煎糊了),整个流程会中断,直到问题解决。
2025-12-03 23:54:05
346
原创 Day25评价问题
1. 核心逻辑:先分数据,再看指标拆分数据:不能用训练模型的数据来评价(相当于考试偷看答案),要把数据分成两部分——训练集(教模型学习)和测试集(考模型效果)。评价问题本质是用科学指标判断模型好不好用,核心是“看模型预测结果和真实情况差多少”,帮你选出效果最优的模型。比如只看准确率,可能忽略“少数重要样本全错”的问题(如癌症检测漏诊)。- 分类任务(如判断邮件是否为垃圾邮件):看准确率(对的占比)、召回率(漏判的少不少)。- 回归任务(如预测明天的气温):看MAE(平均绝对误差,误差越小越好)。
2025-12-02 23:06:58
235
原创 Day 24常见的降维算法
浙大疏锦行降维的核心是 “丢次要信息,保关键信息”,解决高维数据的计算、可视化问题;入门优先掌握PCA(通用)、LDA(分类任务)、t-SNE/UMAP(可视化);不用死磕数学原理,先会用工具(比如 scikit-learn 的 PCA 类),再慢慢理解深层逻辑。
2025-11-30 20:51:17
1049
原创 Day22 回归问题和置信区间
我们正式进入回归问题 (Regression) 的篇章。和分类问题(猜它是谁)不同,回归问题的核心是。我们将使用 sklearn 自带的 混凝土抗压强度数据集 (Concrete Data)背景:根据水泥、水、粗骨料、细骨料、外加剂、时间等 8 个特征,预测混凝土的抗压强度。思考:这里seaborn没有传入对应的参数,如何实现置信区间的呢?(预测一个连续的数值,比如房价、气温、销量)。来源:UCI 机器学习库(经典工程数据集)。
2025-11-27 23:26:38
218
原创 DAY 19 多分类问题
数据集包含 3 种鸢尾花(山鸢尾、变色鸢尾、维吉尼亚鸢尾),每个样本有 4 个特征(花瓣长度、花瓣宽度、花萼长度、花萼宽度),我们要做的是:用特征预测样本属于哪一种鸢尾花。
2025-11-24 23:17:22
201
原创 Day17 SHAP图绘制
摘要: SHAP(Shapley Additive Explanations)是一种解释机器学习模型预测结果的方法,尤其适用于“黑箱”模型(如随机森林、神经网络等)。它通过计算每个特征的SHAP值,量化其对预测的贡献度(正值表示提升预测结果,负值表示降低)。文章以房价预测为例,演示了如何用Python和SHAP库绘制三种关键可视化图: Force Plot:展示单个样本各特征对预测的影响; Summary Plot:全局分析特征重要性及正负影响; Dependence Plot:揭示单个特征与预测结果的关系
2025-11-22 22:14:14
963
原创 Day 16 ROC曲线和PR曲线
摘要:本文使用LightGBM模型对信贷数据进行风险预测分析。通过ROC曲线(AUC=0.9353)和PR曲线(AP=0.7899)评估模型性能,结果表明模型在正负样本不平衡情况下具有较好的区分能力。特征重要性分析显示"Bankruptcies"、"CurrentLoanAmount"等特征对预测影响最大。模型在测试集上准确率达0.8763,召回率0.6705,F1分数0.6935,验证了其在信贷风险预测中的有效性。
2025-11-21 18:01:53
174
原创 Day15 不平衡数据的处理
选择对不平衡数据鲁棒的方法,比如集成学习方法,尤其是Adaboost,为了不平衡数据而诞生。对心脏病数据集利用今天学到的方法,并且结合交叉验证+超参数调优,来达到学习效果更好的目的。处理不平衡数据的方法主要分为三大类:数据层面、算法层面和评估指标层面。:不改变数据,而是调整模型训练过程或使用对不平衡数据鲁棒的算法。过采样:增加少数类的样本数目---smote插值、随机过采样。组合采样策略:结合过采样和欠采样策略---SMOTE+ENN。欠采样:删除多数类的样本----ENN数据清洗、随机欠采样。
2025-11-19 23:01:55
148
原创 DAY 14 多目标优化算法
多目标优化 (MOO):Multi-Objective Optimization,同时优化两个或两个以上相互冲突的目标函数的问题。比如最大化模型的准确率和召回率,但是二者一般是矛盾的。
2025-11-17 22:29:24
524
原创 DAY 13 启发式算法
知识点:三种启发式算法的思想:遗传算法、粒子群算法、退火算法列表推导式作业:对其他模型采用这几种算法尝试优化超参数尝试写出退火算法的背后思想和案例1.应用启发式算法对LightGBM进行超参数优化前置工作。
2025-11-15 22:44:45
104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅