- 博客(51)
- 收藏
- 关注
原创 python训练60天挑战-day51
作业:day43的时候我们安排大家对自己找的数据集用简单cnn训练,现在可以尝试下借助这几天的知识来实现精度的进一步提高。kaggl的一个图像数据集;数据集地址:Lung Nodule Malignancy 肺结核良恶性判断。三层卷积CNN做到的精度63%,现在需要实现提高。DAY 51 复习日。
2025-06-11 22:23:51
117
原创 python训练60天挑战-day50
ps:今日的代码训练时长较长,3080ti大概需要40min的训练时长。- 使用torchsummary查看详细结构。尝试对vgg16+cbam进行微调策略。ResNet结构解析与CBAM微调策略。好好理解下resnet18的模型结构。1.ResNet18核心结构。针对预训练模型的训练策略。CBAM放置位置的思考。2.CBAM放置策略。resnet结构解析。
2025-06-10 22:33:09
199
原创 python训练 60天挑战-day49
CBAM 的突破: 通道注意力(Channel Attention):分析 “哪些通道的特征更关键”(如图像中的颜色、纹理通道)。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能力和性能。CBAM 由两个主要部分组成:通道注意力模块(Channel Attention Module)和空间注意力模块(Spatial Attention Module)。这两个模块顺序连接,共同作用于输入的特征图。
2025-06-09 21:28:28
162
原创 python训练 60天挑战-day48
知识点回顾:随机张量的生成:torch.randn函数卷积和池化的计算公式(可以不掌握,会自动计算的)pytorch的广播机制:加法和乘法的广播机制ps:numpy运算也有类似的广播机制,基本一致。
2025-06-08 20:59:12
739
原创 python训练 60天挑战-day46
什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。对比不同卷积层特征图可视化的结果(可选)不同CNN层的特征图:不同通道的特征图。通道注意力:模型的定义和插入的位置。通道注意力后的特征图和热力图。今日代码较多,理解逻辑即可。一、CNN特征图可视化实现。二、通道注意力模块示例。
2025-06-07 22:53:01
176
原创 Python训练60天挑战-Day45
writer.add_scalar('LearningRate', optimizer.param_groups[0]['lr'], epoch) # 记录学习率。img_grid = torchvision.utils.make_grid(images[:16], nrow=4) # 取前16张图,每行4张。transforms.RandomResizedCrop(224), # 随机裁剪到224x224。# 如果想优化所有层,传入 model_ft.parameters()
2025-06-06 20:20:22
369
原创 Python训练60天挑战-Day44
在该模块中,可以找到 BasicBlock 类,它实现了 ResNet 的残差块。identity 是输入的原始特征图, out 是经过两层卷积和批量归一化处理后的特征图,将它们相加后再通过 ReLU 激活函数,使得模型可以学习到输入和输出之间的残差信息。可以选择不同的预训练模型,如 VGG16、Inception V3 等,对比它们在 CIFAR10 数据集上的训练时间、准确率等指标。尝试在cifar10对比如下其他的预训练模型,观察差异,尽可能和他人选择的不同。# 加载预训练的 VGG16 模型。
2025-06-04 22:30:26
228
原创 python训练 60天挑战-day42
知识点回顾回调函数lambda函数hook函数的模块钩子和张量钩子Grad-CAM的示例在深度学习中,我们经常需要查看或修改模型中间层的输出或梯度。然而,标准的前向传播和反向传播过程通常是一个黑盒,我们很难直接访问中间层的信息。PyTorch 提供了一种强大的工具——hook 函数,它允许我们在不修改模型结构的情况下,获取或修改中间层的信息。它的核心价值在于让开发者能够动态监听、捕获甚至修改模型内部任意层的输入 / 输出或梯度,而无需修改模型的原始代码结构。
2025-06-01 23:00:36
849
原创 python训练 60天挑战-day41
Flatten -> Dense (with Dropout,可选) -> Dense (Output)1. 输入 → 卷积层 → Batch归一化层(可选) → 池化层 → 激活函数 → 下一层。作业:尝试手动修改下不同的调度器和CNN的结构,观察训练的差异。batch归一化:调整一个批次的分布,常用与图像数据。特征图:只有卷积操作输出的才叫特征图。调度器:直接修改基础学习率。DAY 41 简单CNN。卷积神经网络定义的写法。
2025-05-31 20:51:51
288
原创 python训练 60天挑战-day40
批量维度不变性:无论进行flatten、view还是reshape操作,第一个维度batch_size通常保持不变。动态维度指定:使用-1让PyTorch自动计算该维度的大小,但需确保其他维度的指定合理,避免形状不匹配错误。下面是所有代码的整合版本In [66]:# # 设置中文字体支持# plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题# # 1. 数据预处理。
2025-05-30 17:33:26
702
原创 python训练 60天挑战-day39
从这里开始我们进入到了图像数据相关的部分,也是默认你有之前复试班计算机视觉相关的知识,但是一些基础的概念我仍然会提。昨天我们介绍了minist这个经典的手写数据集,作为图像数据,相较于结构化数据(表格数据)他的特点在于他每个样本的的形状并不是(特征数,),而是(宽,高,通道数)# 先继续之前的代码from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具。
2025-05-29 20:24:44
909
原创 python训练 60天挑战-day38
维度DatasetDataLoader核心职责定义“数据是什么”和“如何获取单个样本”定义“如何批量加载数据”和“加载策略”核心方法(获取单个样本)、__len__(样本总数)无自定义方法,通过参数控制加载逻辑预处理位置在中通过transform执行预处理无预处理逻辑,依赖Dataset返回的预处理后数据并行处理无(仅单样本处理)支持多进程加载(典型参数root(数据路径)、transform(预处理)batch_sizeshuffle核心结论Dataset类:定义数据的内容和格式。
2025-05-27 21:56:24
762
原创 python训练 60天挑战-day37
对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略。保存全部信息checkpoint,还包含训练状态。过拟合的判断:测试集和训练集同步打印指标。
2025-05-26 13:56:02
197
原创 python训练 60天挑战-day35
知识点回顾:三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式。
2025-05-24 11:21:44
576
原创 python训练 60天挑战-day34
知识点回归:CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)首先回顾下昨天的内容,我在训练开始和结束增加了time来查看运行时长。
2025-05-23 10:13:36
749
原创 python训练 60天挑战-day33
定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。
2025-05-22 13:12:07
784
原创 python训练 60天挑战-day32
很多绘图工具都是调用的底层的绘图包,所以要想绘制出想要的图表,需要先了解底层绘图包的语法。他已经在图上被可视化出来了。此时模型已经建模完毕,这是一个经典的三分类项目,之前在基础班的项目三提到过sklearn提供的示例数据集,不了解的同学自行百度了解下该数据。只能查看到他的初始化方法,但是无法看到他的普通方法。len(target_plot.plot()) # 查看元组的形状,元组只有len方法,没有shape方法。# 首先要确保库的版本是最新的,因为我们看的是最新的文档,库的版本可以在github上查看。
2025-05-21 14:20:22
632
原创 python训练 60天挑战-day31
知识点回顾规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解昨天我们已经介绍了如何在不同的文件中,导入其他目录的文件,核心在于了解导入方式和python解释器检索目录的方式。搞清楚了这些,那我们就可以来看看,如何把一个文件,拆分成多个具有着独立功能的文件,然后通过import的方式,来调用这些文件。
2025-05-20 23:04:16
1726
原创 python训练 60天挑战-day30
模块(Module)本质:以.py结尾的单个文件,包含Python代码(函数、类、变量等)。作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。包(Package)在python里,包就是库本质有层次的文件目录结构(即文件夹),用于组织多个模块和子包。核心特征:包的根目录下必须包含一个文件(可以为空),用于标识该目录是一个包。
2025-05-19 12:54:09
778
原创 python训练 60天挑战-day29
所以你还是需要理解 装饰器本质就是一个语法糖,对类而言:@decorator 语法只是 MyClass = decorator(MyClass) 的简写,即使类已定义,仍可手动调用装饰器函数修改它。回顾一下,函数的装饰器是 :接收一个函数,返回一个修改后的函数。我们之前是用复用的思想来看装饰器的,换一个角度理解,当你想修改一个函数的时候,可以通过装饰器方法来修改而无需重新定义这个函数。总结:装饰器的核心是动态修改类 / 函数,而不改变原代码。类也有修饰器,他的逻辑类似:接收一个类,返回一个修改后的类。
2025-05-18 23:06:52
248
原创 python训练 60天挑战-day27
知识点回顾:装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值装饰器本质上是一个 Python 函数,它可以让其他函数或方法在不需要做任何代码修改的前提下增加额外功能。--本质是如果让一个函数具备太多功能,那么他看起来就会比较乱,可读性比较差,如果把其中一部分相同甚至可以复用的功能用一个新的函数来调用,然后让2个函数同时实现,就会做到所以装饰器本身就是函数中调用其他函数,实现先拆分函数,再合并函数的功能。
2025-05-16 15:00:02
490
原创 python训练 60天挑战-day26
函数的基本写法如下所示:"""Docstring: 描述函数的功能、参数和返回值 (可选但强烈推荐)"""# 函数体: 实现功能的代码# ...return value # 可选,用于返回结果def: 关键字,表示开始定义一个函数。function_name: 函数的名称,应遵循Python的命名约定(通常是小写字母和下划线,例如 calculate_area,用英文单词含义和下划线来作为函数名)。
2025-05-15 16:09:28
726
原创 python训练 60天挑战-day25
知识点回顾:异常处理机制debug过程中的各类报错try-except机制try-except-else-finally机制在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。作业:理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。
2025-05-14 16:33:28
712
原创 python训练 60天挑战-day24
知识点回顾:元组可迭代对象os模块作业:对自己电脑的不同文件夹利用今天学到的知识操作下,理解下os路径。
2025-05-13 16:29:28
853
原创 python训练 60天挑战-day23
ColumTransformer的核心# --- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应你原代码中的 discrete_features 在预处理前)# 识别原始的非 object 列 (通常是数值列)# 有序分类特征 (对应你之前的标签编码)# 注意:OrdinalEncoder默认编码为0, 1, 2... 对应你之前的1, 2, 3...需要在模型解释时注意。
2025-05-12 09:18:53
1049
原创 python训练 60天挑战-day21
t-SNE 是一种强大的非线性降维技术,主要用于高维数据的可视化。它通过在低维空间中保持高维空间中数据点之间的局部相似性(邻域关系)来工作。与PCA关注全局方差不同,t-SNE 更关注局部细节。理解它的超参数(尤其是困惑度)和结果的正确解读方式非常重要。
2025-05-10 09:48:59
998
原创 python训练 60天挑战-day20
正交矩阵:列向量正交且单位化,在 SVD 中用于旋转或反射(UU 和 VV)。特征值与特征向量:描述矩阵在某些方向上的缩放特性,是计算奇异值的基础。对称矩阵:具有实特征值和正交特征向量,SVD 通过构造 ATAATA 和 AATAAT 利用其性质。矩阵分解:将复杂矩阵分解为简单矩阵乘积,是降维和数据分析的核心工具。输入:一个任意的矩阵 AA,尺寸为 m×nm×n(其中 mm 是行数,nn 是列数,可以是矩形矩阵,不必是方阵)。UU(左奇异向量矩阵)
2025-05-09 20:07:45
1044
原创 python训练 60天挑战-day19
它的核心逻辑是:计算每个特征与目标变量之间的相关系数(范围在-1到1之间,值越大表示正相关越强,值越小表示负相关越强,接近0表示几乎无关),然后根据相关系数的绝对值大小,选择与目标变量相关性较高的特征,剔除相关性较低的特征。1. 特征筛选:从n个特征中筛选出m个特征,比如方差筛选,剔除方差过小的特征;所以在面对高维特征的时候常常需要引入特征降维,我们之前课程中的项目的特征也就小几十个,不太需要做降维,对于某些特征较多的数据,如基因数据、微生物数据、传感器数据等,特征较多,所以会考虑特征降维。
2025-05-08 07:07:08
449
原创 python训练 60天挑战-day18
定义:这一簇可能代表极高风险心脏病人群,心脏功能严重受损,需要紧急医疗干预。定义:这一簇可能代表轻度心脏病风险人群,心脏功能略有下降,但整体风险较低。定义:这一簇可能代表心脏健康状况较好的人群,心脏功能正常,缺血风险较低。定义:这一簇可能代表中度心脏病风险人群,心脏功能有所下降,但风险尚可控。定义:这一簇可能代表高风险心脏病人群,心脏功能明显下降,缺血风险较高。定义:这一簇可能代表心脏功能稳定的人群,健康状况较好,风险较低。最大心率(thalach)较高,表明心脏功能较好。
2025-05-07 09:43:16
294
原创 python训练 60天挑战-day17
实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。聚类常见算法:kmeans聚类、dbscan聚类、层次聚类。3. CH指数图: 找局部最高点,这里选8之前的都可以。1. 肘部法则图: 找下降速率变慢的拐点,5,7,9。2. 轮廓系数图:找局部最高点,这里选3 7 9。4. DB指数图:找局部最低点,这里选3 7 9。选择合适的算法,根据评估指标调参( )将聚类后的特征添加到原数据中。综上,选择7比较合适。
2025-05-06 18:19:43
195
原创 python训练 60天挑战-day15
尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目,这样你也是独立完成了一个专属于自己的项目。有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。尽可能与他人不同,优先选择本专业相关数据集。探索一下开源数据的网站有哪些?
2025-05-04 21:00:59
209
原创 python训练 60天挑战-day14
尝试确定一下shap各个绘图函数对于每一个参数的尺寸要求,如shap.force_plot力图中的数据需要满足什么形状?确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。今日作业偏思考类型,有一定难度。1.SHAP 特征重要性条形图。2.SHAP 特征重要性蜂巢图。参考上述文档补全剩余的几个图。3.shap库可解释性分析。
2025-05-03 18:02:12
211
原创 python训练 60天挑战-day13
从示例代码可以看到 效果没有变好,所以很多步骤都是理想是好的,但是显示并不一定可以变好。这个实验仍然有改进空间,如下。1. 我还没做smote+过采样+修改权重的组合策略,有可能一起做会变好。SMOTE 对训练集进行过采样+贝叶斯优化LightGBM+权重训练。2. 我还没有调参,有可能调参后再取上述策略可能会变好。经过对比试验,(1类recall)对比结果如下。带权重的LightGBM + 交叉验证。如果更关注少数类,建议重点关注。贝叶斯优化后的lightgbm。贝叶斯优化+调整分类阈值。
2025-05-02 13:52:47
234
原创 python训练 60天挑战-day12
上述代码看上去非常复杂,而且不具备复用性也就是说,即使你搞懂了这段代码,对你的提升也微乎其微,因为你无法对他进行改进(他永远是别人的东西),而且就算背熟悉了他,也对你学习其他的方法没什么帮助,即使你学完遗传算法学粒子群,也没有帮助。AI时代的工具很大的好处,就是找到了一个记忆工具来帮助我们记住这个方法需要的步骤,然后我们只需要调用这个工具,就可以完成这个任务。关注输入和输出的格式和数据关注方法的前生今世和各自的优势---优缺点和应用场景。
2025-05-01 19:24:52
329
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人