- 博客(54)
- 收藏
- 关注
原创 python学习打卡:DAY 50 预训练模型+CBAM模块
所以很容易的想到之前第一次使用resnet的预训练策略:先冻结预训练层,然后训练其他层。之前的其它是全连接层(分类头),现在其它层还包含了每一个残差块中的cbam注意力层。预训练模型的结构和权重是固定的,如果修改其中的模型结构,是否会大幅影响其性能。其次是训练的时候如何训练才可以更好的避免破坏原有的特征提取器的参数。可以很明显的想到,如果是resnet18+cbam模块,那么大多数地方的代码都是可以复用的,模型定义部分需要重写。ps:今日的代码训练时长较长,3080ti大概需要40min的训练时长。
2025-07-13 22:09:23
172
原创 python学习打卡:DAY 49 CBAM注意力
它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能力和性能。通道注意力(Channel Attention):分析 “哪些通道的特征更关键”(如图像中的颜色、纹理通道)。SE 通道注意力的局限:仅关注 “哪些通道重要”,未考虑 “重要信息在空间中的位置”。输入特征图 → 通道注意力模块 → 空间注意力模块 → 输出增强后的特征图。后面说完几种模块提取特征的组合方式后,会提供整理的开源模块的文件。
2025-07-13 22:08:59
526
原创 python学习打卡:DAY 48 随机函数与广播机制
卷积和池化的计算公式(可以不掌握,会自动计算的)ps:numpy运算也有类似的广播机制,基本一致。pytorch的广播机制:加法和乘法的广播机制。随机张量的生成:torch.randn函数。自己多借助ai举几个例子帮助自己理解即可。
2025-07-13 22:08:33
202
原创 python学习打卡:DAY 46 通道注意力(SE注意力)
目前我们终于接触到了模块,模块本质上也是对特征的进一步提取,整个深度学习就是在围绕特征提取展开的,后面会是越来越复杂的特征提取和组合步骤。什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。新增八股部分,在本讲义目录中可以看到----用问答的形式记录知识点。今天的内容被拆开到2天完成,不然任务量有点大,热图顺移到明天。我这里列出来的是通道注意力中的一种,SE注意力。不同CNN层的特征图:不同通道的特征图。通道注意力:模型的定义和插入的位置。通道注意力后的特征图和热力图。
2025-07-13 22:07:47
206
原创 python学习打卡:DAY 45 Tensorboard使用介绍
--核心是弄懂tensorboard可以打印什么信息,以及如何看可视化后的结果,把ai当成记忆大师用到的时候通过它来调取对应的代码即可。启动tensorboard的时候需要先在cmd中进入对应的环境,conda activate xxx,再用cd命令进入环境(如果本来就是正确的则无需操作)。tensorboard的代码还有有一定的记忆量,实际上深度学习的经典代码都是类似于八股文,看多了就习惯了,难度远远小于考研数学等需要思考的内容。tensorboard在cifar上的实战:MLP和CNN模型。
2025-07-13 22:07:22
303
原创 python学习打卡:DAY 44 预训练模型
尝试在cifar10对比如下其他的预训练模型,观察差异,尽可能和他人选择的不同。尝试通过ctrl进入resnet的内部,观察残差究竟是什么。预训练代码实战:resnet18。这句话可以忽略,这是未来的内容。图像预训练模型的发展史。常见的分类预训练模型。
2025-07-12 10:01:58
188
原创 python学习打卡:DAY 43 复习日
kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化。进阶:并拆分成多个文件。
2025-07-12 09:58:46
254
原创 python学习打卡:DAY 42 Grad-CAM与Hook函数
而在深度学习领域,同样存在一系列方法来解析模型的决策过程:以图像分类任务为例,我们不仅可以通过可视化特征图,直观观察不同层对图像特征的提取程度;PyTorch提供了一种强大的工具——hook函数,它允许我们在不修改模型结构的情况下,获取或修改中间层信息。Hook本质是回调函数,回调函数是作为参数传递给其他函数的函数,其目的是在某个特定时间发生时被调用执行。其中回调函数作为参数传入,所以在定义时一般用callback来命名,在PyTorch的Hook API中,回调参数通常命名为hook。
2025-07-12 09:57:10
361
原创 python学习打卡:DAY 41 简单CNN
就好比你在学习新知识,知识体系的基础一直在变,你就得不断重新适应,模型训练也是如此,这就导致训练变得困难,这就是内部协变量偏移问题。例如,如果原始数据集有1000张图像,数据增强后,数据集的大小仍然是1000张,但每次训练时,模型看到的都是经过随机变换的新样本。该策略通常不改变单次训练的样本总数,而通过对现有图像进行多样化变换,使每次训练输入的样本呈现更丰富的形态差异,从而有效扩展模型训练的样本空间多样性。2. 输入通道数:输入图片的通道数,如1(单通道图片)、3(RGB图片)、4(RGBA图片)等。
2025-07-12 09:55:21
845
原创 python学习打卡:DAY 40 训练和测试的规范写法
2. 由于数据过大,需要将数据集进行分批次处理,往往涉及到dataset和dataloader来规范代码组织。:仔细学习下测试和训练代码的逻辑,这是基础,这个代码框架后续会一直沿用,后续的重点慢慢就是转向模型定义阶段了。3. 训练结束后,仅用测试集运行一次测试函数,得到最终准确率。这里先不写早停策略,因为规范的早停策略需要用到验证集,一般还需要划分测试集。1. 划分数据集:训练集、验证集、测试集。2. 训练过程中,使用验证集触发早停。彩色和灰度图片测试和训练的规范写法:封装在函数中。
2025-07-12 09:53:14
304
原创 python学习打卡:DAY 39 图像数据与显存
batchisize和训练的关系。图像数据的格式:灰度和彩色数据。今日代码较少,理解内容即可。
2025-07-12 09:50:12
144
原创 python学习打卡:DAY 38 Dataset和Dataloader类
Dataset类的__getitem__和__len__方法(本质是python的特殊方法)了解下cifar数据集,尝试获取其中一张图片。minist手写数据集的了解。Dataloader类。
2025-07-12 09:44:57
166
原创 python学习打卡:DAY 37 早停策略和模型权重的保存
对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略。保存全部信息checkpoint,还包含训练状态。过拟合的判断:测试集和训练集同步打印指标。
2025-07-12 09:43:47
208
原创 python学习打卡:DAY 36 复习日
对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。:尝试进入nn.Module中,查看他的方法。探索性作业(随意完成)
2025-07-11 21:45:42
266
原创 python学习打卡:DAY 35 模型可视化与推理
这里的“超参数”指的是在模型开始训练之前,由我们(人)手动设置的参数,它们决定了模型的“骨架”和学习方式。与之相对的是模型在训练过程中自己学习的参数(如权重w和偏置b)。隐藏层的宽度:目前隐藏层有 10 个神经元 (nn.Linear(4, 10))。我们可以把它变宽(如20个)或变窄(如5个)。激活函数:目前用的是ReLU。我们也可以换成其他的激活函数,如Sigmoid, Tanh等(虽然ReLU通常是很好的选择)。隐藏层的深度:目前只有1个隐藏层。作业:调整模型定义时的超参数,对比下效果。
2025-07-11 21:17:14
304
原创 python学习打卡:DAY 34 GPU训练及类的call方法
类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)ps:在训练过程中可以在命令行输入nvida-smi查看显存占用情况。复习今天的内容,在巩固下代码。思考下为什么会出现这个问题。GPU训练的方法:数据和模型移动到GPU device上。CPU性能的查看:看架构代际、核心数、线程数。GPU性能的查看:看显存、看级别、看架构代际。
2025-07-11 21:03:17
162
原创 python学习打卡:DAY 33 MLP神经网络的训练
1. 分类任务中,若标签是整数(如 0/1/2 类别),需转为long类型(对应 PyTorch 的torch.long),否则交叉熵损失函数会报错。在新建网络的时候,我们选择了2层隐藏层和固定的神经元,这类似于我们在机器学习模型中指定一组超参数,神经网络的调参我们未来再提。2. 回归任务中,标签需转为float类型(如torch.float32)。今日的代码,要做到能够手敲。这已经是最简单最基础的版本了。查看显卡信息的命令行命令(cmd中使用)2.1 数据集加载与划分。PyTorch和cuda的安装。
2025-07-11 20:46:42
275
原创 python学习打卡:DAY 32 官方文档的阅读
参考pdpbox官方文档中的其他类,绘制相应的图,任选即可。官方文档的阅读和使用:要求安装的包和文档为同一个版本。官方文档的检索方式:github和官网。绘图的理解:对底层库的调用。普通方法所需要的参数。
2025-07-10 20:02:13
234
原创 python学习打卡:DAY 31 文件的规范拆分和写法
尝试针对之前的心脏病项目ipynb,将他按照今天的示例项目整理成规范的形式,思考下哪些部分可以未来复用。项目文件夹中其他部分:拆分后的信贷项目,学习下如何拆分的,未来你看到的很多大项目都是类似的拆分方法。notebook文件夹内的ipynb文件,介绍下今天的思路。今日的示例代码包含2个部分。
2025-07-10 18:42:15
156
原创 python学习打卡:DAY 30 模块和库的导入
导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致):自己新建几个不同路径文件尝试下如何导入。导入自定义库/模块的方式。导入官方库的三种手段。
2025-07-10 16:53:54
210
原创 python学习打卡:DAY 29 复习日:类的装饰器
复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等,未来再过几个专题部分我们即将开启深度学习部分。装饰器思想的进一步理解:外部修改、动态。类方法的定义:内部定义和外部定义。
2025-07-10 16:26:28
230
原创 python学习打卡:DAY 28 类的定义和方法
calculate_perimeter():计算周长(公式:2×(长+宽))。is_square() 方法,判断是否为正方形(长 == 宽)。calculate_circumference():计算圆的周长(公式:2πr)。shape_type="rectangle":创建长方形(参数:长、宽)。calculate_area():计算圆的面积(公式:πr²)。shape_type="circle":创建圆(参数:半径)。calculate_area():计算面积(公式:长×宽)。
2025-07-10 15:28:33
309
原创 python学习打卡:DAY 27 函数专题2:装饰器
编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)本期内容如果无法理解,可以参考如下视频教学。装饰器的思想:进一步复用。注意内部函数的返回值。
2025-07-10 10:12:22
187
原创 DAY 26 函数专题1:函数定义与参数
编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。编写一个名为 calculate_average 的函数,该函数可以接收任意数量的数字作为参数(引入可变位置参数 (*args)),并返回它们的平均值。编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。函数的参数类型:位置参数、默认参数、不定参数。user_id 是一个必需的位置参数。
2025-07-09 22:55:19
863
原创 python学习打卡:DAY 25 异常处理
理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。try-except-else-finally机制。debug过程中的各类报错。try-except机制。
2025-07-09 22:07:54
156
原创 python学习打卡:DAY 23 pipeline管道
整理下全部逻辑的先后顺序,看看能不能制作出适合所有机器学习的通用pipeline。ColumnTransformer和Pipeline类。转化器和估计器的概念。
2025-07-06 17:55:32
168
原创 python学习打卡:DAY 20 奇异值SVD分解
对于任何矩阵(如结构化数据可以变为:样本*特征的矩阵,图像数据天然就是矩阵),均可做等价的奇异值SVD分解,对于分解后的矩阵,可以选取保留前K个奇异值及其对应的奇异向量,重构原始矩阵,可以通过计算Frobenius 范数相对误差来衡量原始矩阵和重构矩阵的差异。应用:结构化数据中,将原来的m个特征降维成k个新的特征,新特征是原始特征的线性组合,捕捉了数据的主要方差信息,降维后的数据可以直接用于机器学习模型(如分类、回归),通常能提高计算效率并减少过拟合风险。降噪:通常噪声对应较小的奇异值。
2025-07-05 21:59:39
358
原创 python学习打卡:DAY 18 推断聚类后簇的类型
推断簇类型需结合数据特性(形状、密度)与业务目标。特征:簇内对象到质心(均值)的距离 < 到其他簇质心的距离。特征:不同簇中任意两点之间的距离 > 簇内任意两点间距离。特征:相邻对象距离在阈值内即归为同簇,依赖连通性。步骤:聚类前选择与业务强相关的特征(如消费记录)。示例:球形或任意形状的分离簇(图10-2a)。局限性:倾向于生成球形簇,对不规则形状效果差。优势:适用于缠绕或不规则形状(如哑铃状簇)。
2025-07-04 17:15:21
496
原创 python学习打卡:DAY 17 常见聚类算法
实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。DBSCAN 的参数是 eps 和min_samples,选完他们出现k和评估指标。除了经典的评估指标,还需要关注聚类出来每个簇对应的样本个数,避免太少没有意义。聚类常见算法:kmeans聚类、dbscan聚类、层次聚类。KMeans 和层次聚类的参数是K值,选完k指标就确定。以及层次聚类的 linkage准则等都需要仔细调优。选择合适的算法,根据评估指标调参。
2025-07-04 16:08:19
167
原创 python学习打卡:DAY 16 数组的常见操作和形状
浙大疏锦行擅长Python打卡训练营内容,大模型入门100问,等方面的知识,浙大疏锦行关注python,机器学习,深度学习,人工智能,sklearn,自然语言处理领域.因为前天说了shap,这里涉及到数据形状尺寸问题,所以需要在这一节说清楚,后续的神经网络我们将要和他天天打交道。numpy数组的创建:简单创建、随机创建、遍历、运算。numpy数组的索引:一维、二维、三维。:今日知识点比较多,好好记忆下。@浙大疏锦行-优快云博客。SHAP值的深入理解。
2025-07-03 19:31:00
214
原创 python学习打卡:DAY 15 复习日
对于数据的认识,很重要的一点是,很多数据并非是为了某个确定的问题收集的,这也意味着一份数据你可以完成很多不同的研究,自变量、因变量的选取取决于你自己-----很多时候针对现有数据的思考才是真正拉开你与他人差距的最重要因素。同一个问题,特征加工上,是否对数据进一步加工得出了新的结论-----你的加工被证明是有意义的。研究问题的选择上,同一个数据你找到了有意思的点,比如更换了因变量,做出了和别人不同的研究问题。数据的质量上,是否有好的研究主题但是你这个数据很难获取,所以你这个研究有价值。什么叫做数据的质量?
2025-07-03 19:24:21
148
原创 python学习打卡:DAY 14 SHAP图的绘制
尝试确定一下shap各个绘图函数对于每一个参数的尺寸要求,如shap.force_plot力图中的数据需要满足什么形状?确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。参考上述文档补全剩余的几个图。
2025-07-03 16:58:42
234
原创 python学习打卡:DAY 13 不平衡数据的处理
从示例代码可以看到 效果没有变好,所以很多步骤都是理想是好的,但是现实并不一定可以变好。这个实验仍然有改进空间,如下。1. 我还没做smote+过采样+修改权重的组合策略,有可能一起做会变好。2. 我还没有调参,有可能调参后再取上述策略可能会变好。不平衡数据集的处理策略:过采样、修改权重、修改阈值。
2025-07-02 17:37:42
199
原创 python学习打卡:DAY12 启发式算法
超参数调整专题2三种启发式算法的示例代码:遗传算法、粒子群算法、退火算法学习优化算法的思路(避免浪费无效时间)作业:今天以自由探索的思路为主,尝试检索资料、视频、文档,用尽可能简短但是清晰的语言看是否能说清楚这三种算法每种算法的实现逻辑,帮助更深入的理解。
2025-07-02 16:06:49
661
原创 python学习打卡:DAY11 常见的调参方式
对于信贷数据的其他模型,如LightGBM和KNN 尝试用下贝叶斯优化和网格搜索。贝叶斯优化(2种实现逻辑,以及如何避开必须用交叉验证的问题)随机搜索(简单介绍,非重点 实战中很少用到,可以不了解)time库的计时模块,方便后人查看代码运行时长。
2025-07-02 15:31:29
181
原创 python学习打卡:DAY10 机器学习建模与评估
今日代码比较多,但是难度不大,仔细看看示例代码,好好理解下这几个评估指标。尝试对心脏病数据集采用机器学习模型建模和评估。机器学习模型建模的三行代码。机器学习模型分类问题的评估。
2025-07-01 23:03:11
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅