- 博客(50)
- 收藏
- 关注
原创 python打卡day50
resnet18是一种经典的卷积神经网络,通过引入残差块解决了深度神经网络训练时的梯度消失问题。ps:今日的代码训练时长较长,3080ti大概需要40min的训练时长。尝试对vgg16+cbam进行微调策略。好好理解下resnet18的模型结构。针对预训练模型的训练策略。CBAM放置位置的思考。resnet结构解析。
2025-07-04 17:01:33
308
原创 python打卡day49
现在大家已近可以去读这类文章了,应该已经可以无压力看懂三四区的很多这类文章。最近临近毕业,事情有点多。如果有之前的基础的话,今天的难度相对较低。尝试对今天的模型检查参数数目,并用tensorboard查看训练过程。后面说完几种模块提取特征的组合方式后,会提供整理的开源模块的文件。
2025-07-02 11:24:59
136
原创 python打卡day48
卷积和池化的计算公式(可以不掌握,会自动计算的)ps:numpy运算也有类似的广播机制,基本一致。pytorch的广播机制:加法和乘法的广播机制。随机张量的生成:torch.randn函数。自己多借助ai举几个例子帮助自己理解即可。
2025-07-01 16:46:20
191
原创 python打卡day46
什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。对比不同卷积层特征图可视化的结果(可选)不同CNN层的特征图:不同通道的特征图。通道注意力:模型的定义和插入的位置。通道注意力后的特征图和热力图。今日代码较多,理解逻辑即可。
2025-06-29 17:23:41
209
原创 python打卡day45
对resnet18在cifar10上采用微调策略下,用tensorboard监控训练过程。tensorboard在cifar上的实战:MLP和CNN模型。tensorboard的发展历史和原理。tensorboard的常见操作。
2025-06-28 18:14:29
233
原创 python打卡day44
尝试在cifar10对比如下其他的预训练模型,观察差异,尽可能和他人选择的不同。尝试通过ctrl进入resnet的内部,观察残差究竟是什么。预训练代码实战:resnet18。图像预训练模型的发展史。常见的分类预训练模型。
2025-06-27 18:24:11
1536
原创 python打卡day42
回调函数是作为参数传递给另一个函数的函数,这个函数会在某个特定事件发生或某个操作完成后被调用。Lambda函数也称为匿名函数,是一种简洁的、临时定义的小型函数。在Python中,使用 lambda 关键字来创建lambda函数。模块钩子 :可以在模型的前向传播或反向传播过程中插入自定义的操作。在深度学习框架(如PyTorch)中,Hook函数允许我们在不修改模型结构的情况下,获取或修改中间层的信息。3. Hook函数的模块钩子和张量钩子。hook函数的模块钩子和张量钩子。2. Lambda函数。
2025-06-25 11:15:48
207
原创 python打卡day41
Flatten -> Dense (with Dropout,可选) -> Dense (Output)1. 输入 → 卷积层 → Batch归一化层(可选) → 池化层 → 激活函数 → 下一层。尝试手动修改下不同的调度器和CNN的结构,观察训练的差异。batch归一化:调整一个批次的分布,常用与图像数据。特征图:只有卷积操作输出的才叫特征图。调度器:直接修改基础学习率。卷积神经网络定义的写法。
2025-06-24 18:45:00
346
原创 python打卡day40
仔细学习下测试和训练代码的逻辑,这是基础,这个代码框架后续会一直沿用,后续的重点慢慢就是转向模型定义阶段了。dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout。展平操作:除第一个维度batchsize外全部展平。彩色和灰度图片测试和训练的规范写法:封装在函数中。
2025-06-23 20:00:00
247
原创 python打卡day39
彩色图像 :在 PyTorch 中,图像数据的形状通常遵循 (通道数, 高度, 宽度) 的格式(即 Channel First 格式),常见的彩色图像如 RGB 图像,通道数为 3。但是,较大的 batch_size 会占用更多的显存,可能导致显存不足。神经元输出中间状态 :在模型的前向传播过程中,神经元的输出中间状态也会占用显存,尤其是在使用一些复杂的模型结构时,中间状态的显存占用可能会比较大。数据批量所占显存 :在训练过程中,每次输入模型的数据批量会占用显存,批量大小越大,占用的显存就越多。
2025-06-22 14:30:00
258
原创 python打卡day38
Dataset类的__getitem__和__len__方法(本质是python的特殊方法)了解下cifar数据集,尝试获取其中一张图片。minist手写数据集的了解。Dataloader类。
2025-06-21 15:26:19
170
原创 python打卡day37
对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略。保存全部信息checkpoint,还包含训练状态。过拟合的判断:测试集和训练集同步打印指标。
2025-06-20 22:18:14
345
原创 python打卡day36
对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。:尝试进入nn.Module中,查看他的方法。探索性作业(随意完成)
2025-06-19 21:47:23
212
原创 python打卡day35
三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化。进度条功能:手动和自动写法,让打印结果更加美观。作业:调整模型定义时的超参数,对比下效果。推理的写法:评估模式。
2025-06-19 21:39:10
314
原创 python打卡day34
类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)ps:在训练过程中可以在命令行输入nvida-smi查看显存占用情况。复习今天的内容,在巩固下代码。思考下为什么会出现这个问题。GPU训练的方法:数据和模型移动到GPU device上。CPU性能的查看:看架构代际、核心数、线程数。GPU性能的查看:看显存、看级别、看架构代际。
2025-06-17 17:53:02
176
原创 python打卡day33
1. 分类任务中,若标签是整数(如 0/1/2 类别),需转为long类型(对应 PyTorch 的torch.long),否则交叉熵损失函数会报错。在新建网络的时候,我们选择了2层隐藏层和固定的神经元,这类似于我们在机器学习模型中指定一组超参数,神经网络的调参我们未来再提。回归任务中,标签需转为float类型(如torch.float32)。今日的代码,要做到能够手敲。这已经是最简单最基础的版本了。查看显卡信息的命令行命令(cmd中使用)PyTorch和cuda的安装。定义损失函数和优化器。
2025-06-16 22:44:36
366
原创 python打卡day32
参考pdpbox官方文档中的其他类,绘制相应的图,任选即可。官方文档的阅读和使用:要求安装的包和文档为同一个版本。官方文档的检索方式:github和官网。绘图的理解:对底层库的调用。普通方法所需要的参数。
2025-06-15 22:08:54
184
原创 python打卡day31
尝试针对之前的心脏病项目ipynb,将他按照今天的示例项目整理成规范的形式,思考下哪些部分可以未来复用。项目文件夹中其他部分:拆分后的信贷项目,学习下如何拆分的,未来你看到的很多大项目都是类似的拆分方法。notebook文件夹内的ipynb文件,介绍下今天的思路。今日的示例代码包含2个部分。
2025-06-14 22:26:24
347
原创 python打卡day30
导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致):自己新建几个不同路径文件尝试下如何导入。导入自定义库/模块的方式。导入官方库的三种手段。
2025-06-13 18:35:35
204
原创 python打卡day29
其主要作用是在不修改类内部代码的情况下,为多个类统一添加功能,如添加新的方法或属性、修改原有方法,甚至返回一个全新的类。对于类而言, @decorator 语法是 MyClass = decorator(MyClass) 的简写,即使类已定义,仍可手动调用装饰器函数修改它。复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等,未来再过几个专题部分我们即将开启深度学习部分。方法可以直接访问类的其他私有成员,类定义后方法固定,常用于常规类定义。
2025-06-12 23:01:11
234
原创 python打卡day28
calculate_perimeter():计算周长(公式:2×(长+宽))。is_square() 方法,判断是否为正方形(长 == 宽)。calculate_circumference():计算圆的周长(公式:2πr)。shape_type="rectangle":创建长方形(参数:长、宽)。calculate_area():计算圆的面积(公式:πr²)。shape_type="circle":创建圆(参数:半径)。calculate_area():计算面积(公式:长×宽)。
2025-06-11 19:30:24
162
原创 pythondakaday27
编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)装饰器的思想:进一步复用。注意内部函数的返回值。
2025-06-10 12:30:00
230
原创 python打卡day26
编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。编写一个名为 calculate_average 的函数,该函数可以接收任意数量的数字作为参数(引入可变位置参数 (*args)),并返回它们的平均值。编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。函数的参数类型:位置参数、默认参数、不定参数。user_id 是一个必需的位置参数。
2025-06-09 10:30:00
1653
原创 python打卡day25
当异常发生时,Python 会创建一个异常对象(通常是 Exception 类的子类实例),若可能出错的代码位于 try 语句块中,程序会寻找并跳转到匹配的 except 语句块(若存在)处理异常。理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。except :若 try 块中的代码引发特定类型的异常(或任何异常,若未指定类型),则执行此代码块。else :(可选)若 try 块中的代码没有发生任何异常,则执行此代码块。
2025-06-08 23:13:58
353
原创 python打卡day23
整理下全部逻辑的先后顺序,看看能不能制作出适合所有机器学习的通用pipeline。ColumnTransformer和Pipeline类。转化器和估计器的概念。
2025-06-06 23:12:28
158
原创 python打卡day21
t-SNE :是一种非线性降维方法,主要目标是保留数据的局部结构,使得在高维空间中相邻的数据点在低维空间中也尽可能相邻。t-SNE 能够更好地展示数据的局部聚类结构,但对于全局结构的展示能力较弱。在可视化方面,t-SNE 更适合发现数据中的局部模式和簇。PCA :是一种线性降维方法,主要目标是找到数据中方差最大的方向,将数据投影到低维空间。PCA 能够保留数据的全局结构,但对于局部结构的保留能力较弱。自由作业:探索下什么时候用到降维?可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。
2025-06-04 15:33:23
360
原创 python打卡day20
对于任何矩阵(如结构化数据可以变为:样本*特征的矩阵,图像数据天然就是矩阵),均可做等价的奇异值SVD分解,对于分解后的矩阵,可以选取保留前K个奇异值及其对应的奇异向量,重构原始矩阵,可以通过计算Frobenius 范数相对误差来衡量原始矩阵和重构矩阵的差异。应用:结构化数据中,将原来的m个特征降维成k个新的特征,新特征是原始特征的线性组合,捕捉了数据的主要方差信息,降维后的数据可以直接用于机器学习模型(如分类、回归),通常能提高计算效率并减少过拟合风险。降噪:通常噪声对应较小的奇异值。
2025-06-03 09:00:00
164
原创 pyhton打卡day18
参考示例代码对心脏病数据集采取类似操作,并且评估特征工程后模型效果有无提升。推断簇含义的2个思路:先选特征和后选特征。科研逻辑闭环:通过精度判断特征工程价值。通过可视化图形借助ai定义簇的含义。
2025-06-01 22:04:18
197
原创 python打卡day16
numpy数组的创建:简单创建、随机创建、遍历、运算。numpy数组的索引:一维、二维、三维。1 numpy数组的简单创建。2 numpy数据的索引。SHAP值的深入理解。
2025-05-30 23:59:44
153
原创 python打卡day15
尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目,这样你也是独立完成了一个专属于自己的项目。有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。尽可能与他人不同,优先选择本专业相关数据集。探索一下开源数据的网站有哪些?
2025-05-30 00:00:45
137
原创 python打卡day14 shap图的绘制
features :一维数组或 Pandas 的 Series ,长度和 shap_values 一致,代表输入样本的特征值。features :二维数组或 Pandas 的 DataFrame ,形状为 (样本数, 特征数) ,代表输入的特征矩阵。shap_values :二维数组,形状为 (样本数, 特征数) ,代表每个样本的每个特征的 SHAP 值。确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。ind :字符串或整数,代表要绘制的特征的名称或索引。
2025-05-28 20:04:37
320
原创 python打卡Day13 不平衡数据的处理
从示例代码可以看到 效果没有变好,所以很多步骤都是理想是好的,但是现实并不一定可以变好。这个实验仍然有改进空间,如下。1. 我还没做smote+过采样+修改权重的组合策略,有可能一起做会变好。2. 我还没有调参,有可能调参后再取上述策略可能会变好。不平衡数据集的处理策略:过采样、修改权重、修改阈值。
2025-05-27 23:10:13
181
原创 python打卡day12
群优化算法,受到鸟群和鱼群等自然群体行为的启发,其核心思想是通过一群粒子在搜索空间中的位置和速度的更新,逐步逼近最优解。的思路为主,尝试检索资料、视频、文档,用尽可能简短但是清晰的语言看是否能说清楚这三种算法每种算法的实现逻辑,帮助更深入的理解。初始时,每个粒子还记录其历史最佳位置,整个群体记录的最优位置(全局最优)。计算每个粒子当前位置对应的目标函数值(适应度),用以衡量粒子当前解的优劣。若当前粒子位置比之前的个人最优位置更优,则更新该粒子的pBest。更新粒子的速度和位置。
2025-05-26 23:44:12
322
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅