自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 day49

2尝试对vgg16+cbam进行微调策略。1好好理解下resnet18的模型结构。

2025-06-10 23:51:48 136

原创 day48

知识点回顾:随机张量的生成:torch.randn函数卷积和池化的计算公式(可以不掌握,会自动计算的)pytorch的广播机制:加法和乘法的广播机制ps:numpy运算也有类似的广播机制,基本一致。

2025-06-09 23:27:21 121

原创 Day47

这个注意力热图是通过构子机制:register_forward_hook 捕获最后一个卷积层(conv3)的输出特征图。热力图(红色表示高关注,蓝色表示低关注)半透明覆盖在原图上。通道 1 可能关注整体轮廓,通道 2 关注纹理细节,通道 3 关注颜色分布。通道权重计算:对特征图的每个通道进行全局平均池化,得到通道重要性权重。热力图生成:将高权重通道的特征图缩放至原始图像尺寸,与原图叠加显示。高关注区域(红色):模型认为对分类最重要的区域。结合多个通道的热力图,可全面理解模型的决策逻辑。

2025-06-08 23:49:33 348

原创 Day47

特征图本质就是不同的卷积核的输出,浅层指的是离输入图近的卷积层,浅层卷积层的特征图通常较大,而深层特征图会经过多次下采样,尺寸显著缩小,尺寸差异过大时,小尺寸特征图在视觉上会显得模糊或丢失细节。- 通道间差异更明显:部分通道开始聚焦局部关键特征(如通道 5、8 中黄色高亮区域,可能对应青蛙身体或植物的关键纹理)。- 通道间差异极大,部分通道聚焦全局语义特征(如通道 4、7 中黄色区域,可能对应模型判断“青蛙”类别的关键特征)。- 提取低级特征(边缘、颜色块、简单纹理),是后续高层特征的“原材料”。

2025-06-07 21:28:04 547

原创 Day46

目前我们终于接触到了模块,模块本质上也是对特征的进一步提取,整个深度学习就是在围绕特征提取展开的,后面会是越来越复杂的特征提取和组合步骤。为了保证收敛方便对比性能,今日代码训练轮数较多,比较耗时。我这里列出来的是通道注意力中的一种,SE注意力。对比不同卷积层特征图可视化的结果(可选)今日代码较多,理解逻辑即可。

2025-06-06 21:33:56 271

原创 Day45

写完日志后,TensorBoard 会启动一个本地网页服务,自动读取日志文件里的数据,用图表、图像、文本等形式展示出来。之前神经网络的训练中,为了帮助理解,借用了很多的组件,比如训练进度条、可视化的loss下降曲线、权重分布图,运行结束后还可以查看单张图的推理效果。TensorBoard 的核心原理就是在训练过程中,把训练过程中的数据(比如损失、准确率、图片等)先记录到日志文件里,再通过工具把这些日志文件可视化成图表,这样就不用自己手动打印数据或者用其他工具画图。2、记录标量数据(Scalar)

2025-06-05 23:12:02 570

原创 Day43

kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化。进阶:并拆分成多个文件。

2025-06-03 23:18:26 168

原创 Day43

【代码】Day43。

2025-06-02 23:17:33 84

原创 Day42

在传播过程中,钩子函数会被调用,我们可以在钩子函数中查看或修改梯度。Hook 函数是一种回调函数,它可以在不干扰模型正常计算流程的情况下,插入到模型的特定位置,以便获取或修改中间层的输出或梯度。回调函数核心是将处理逻辑(回调)作为参数传递给计算函数,控制流:计算函数 → 回调函数,适合一次性或动态的处理需求(控制流指的是程序执行时各代码块的执行顺序)装饰器实现核心是修改原始函数的行为,在其基础上添加额外功能,控制流:被装饰函数 → 原始计算 → 回调函数,适合统一的、可复用的处理逻辑。

2025-06-01 23:33:14 483

原创 Day41

就好比你在学新知识,知识体系的基础一直在变,你就得不断重新适应,模型训练也是如此,这就导致训练变得困难,这就是内部协变量偏移问题。该策略通常不改变单次训练的样本总数,而是通过对现有图像进行多样化变换,使每次训练输入的样本呈现更丰富的形态差异,从而有效扩展模型训练的样本空间多样性。Batch Normalization:一般用于图像数据,因为图像数据通常是批量处理,有相对固定的 Batch Size ,能利用 Batch 内数据计算稳定的统计量(均值、方差 )来做归一化。-----深度学习可解释性。

2025-05-31 23:32:25 668

原创 Day40

测试函数和绘图函数均被封装在了train函数中,但是test和绘图函数在定义train函数之后,这是因为在 Python 中,函数定义的顺序不影响调用,只要在调用前已经完成定义即可。单通道图片的规范写法。

2025-05-30 23:48:23 316

原创 Day39

【代码】Day39。

2025-05-29 23:17:13 409

原创 Day38

了解下cifar数据集,尝试获取其中一张图片。

2025-05-28 21:18:34 188

原创 Day38

这里很难理解,为什么train_dataset[sample_idx]可以获取到图片和标签,是因为 datasets.MNIST这个类继承了torch.utils.data.Dataset类,这个类中有一个方法__getitem__,这个方法会返回一个tuple,tuple中第一个元素是图片,第二个元素是标签。在 Python 中,getitem__和__len 是类的特殊方法(也叫魔术方法 ),它们不是像普通函数那样直接使用,而是需要在自定义类中进行定义,来赋予类特定的行为。

2025-05-27 23:52:13 563

原创 Day37

过拟合就像是餐厅的厨师过于迎合某一群顾客的口味(训练集),导致其他顾客(测试集)对菜品不太满意。测试集指标:但新顾客(测试集)可能对这些过于迎合常客口味的菜品不太满意,所以新顾客满意度(测试集指标)没有同步提高甚至下降。在训练模型时,如果验证集的性能在若干个训练周期内没有提升,就提前停止训练,避免模型在训练集上过拟合,同时节省训练资源。如果要恢复模型,需要按照之前的步骤重新搭建模型框架,然后加载保存的烹饪手法和调料配方。就像不仅保存了厨师的烹饪手法和调料配方,还记录了菜品的详细制作步骤和菜谱。

2025-05-26 23:50:55 240

原创 Day36

【代码】Day36。

2025-05-25 23:47:42 178

原创 Day35

with是常见的上下文管理器,这样的使用方式还有用with打开文件,结束后会自动关闭文件。torchinfo 是提供比 torchsummary 更详细的模型摘要信息,包括每层的输入输出形状、参数数量、计算量等。可以将模型中带有weight的参数(即权重)提取出来,并转为 numpy 数组形式,对其计算统计分布,并且绘制可视化图表。这是最基础、最简单的方法,直接打印模型对象,它会输出模型的结构,显示模型中各个层的名称和参数信息。为了了解参数总量,我们需要知道层设计,以及每一层参数的数量。

2025-05-24 23:59:34 259

原创 Day 34

通过后缀 Ti 通常是同型号的增强版,性能介于原型号和更高一级型号之间 (如 RTX 4070 Ti 强于 RTX 4070,小于4080)。在 PyTorch 里,.to(device) 方法的作用是把张量或者模型转移到指定的计算设备(像 CPU 或者 GPU)上。上述是在cpu的情况下训练,(即使安装了cuda,但是没有使用cuda),我们借这个机会简单介绍下cpu的性能差异。xx90: 通常是该代的消费级旗舰或次旗舰,性能最强,显存最大 (如 RTX 4090, RTX 3090)。

2025-05-23 23:51:25 818

原创 Day33

定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。

2025-05-22 23:54:31 197

原创 Day32

参考pdpbox官方文档中的其他类,绘制相应的图,任选即可。

2025-05-21 23:38:54 139

原创 Day31

比如一个包含数据处理模块 data_processing.py、模型训练模块 model_training.py 的机器学习项目,在 model_training.py 中用 if name == "main" 包裹训练相关的主逻辑代码,运行该文件时就知道需要从这里开始执行(其他文件都是附属文件),让项目结构和执行流程更清晰。.env 文件:通常放在项目根目录,用于存储敏感信息(如数据库密码、API 密钥等),在代码中通过环境变量的方式读取,一般会被 .gitignore 忽略,防止敏感信息泄露。

2025-05-20 23:56:18 927

原创 Day30

关键步骤:在每个文件夹(subpackage 和 subsub)内新建一个空文件 __init__.py,告诉Python这是“包”(类似一个标志牌)。在 subpackage 内新建 subsub 文件夹,并在 subsub 内新建 module2.py。在 project 内新建 lib 文件夹,并在 lib 内新建 utils.py。导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)在桌面上新建一个文件夹 project(这就是项目的根目录)。

2025-05-19 23:49:33 358

原创 Day29

复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等,未来再过几个专题部分我们即将开启深度学习部分。经过这29天对基础知识的深入学习,我对Python这门语言有了更深的认识和喜爱。

2025-05-18 22:16:40 505

原创 Day28

所以,当你需要一个语法上存在的代码块,但又暂时不想在其中放入任何实际的逻辑时,pass 就是一个完美的占位符,它告诉解释器:“这里有一个代码块,但它什么也不做。比如self.name,就代表着:“自己的名字”,self等于“自己”,这个self指向类的实例化地址,传入的self.xx是它的属性。普通方法和init方法的差别在于,init方法是类的构造方法,当创建对象时,会自动调用init方法----只要你创建这个类对象了,这个init函数就会执行。普通方法是只有你调用类的这个方法的时候,函数才会执行。

2025-05-17 23:09:39 250

原创 Day27 python打卡

类是对象的蓝图,定义了对象的属性和方法。# 定义一个简单的类class Dog:pass# 创建 Dog 类的实例。

2025-05-16 21:35:41 231

原创 Day26 python打卡

任务: 编写一个名为 describe_shape 的函数,该函数接收图形的名称 shape_name (必需),一个可选的 color (默认 “black”),以及任意数量的描述该图形尺寸的关键字参数 (例如 radius=5 对于圆,length=10, width=4 对于矩形)。任务: 编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。要求:shape_name 是必需的位置参数。

2025-05-15 23:51:04 397

原创 Day25 python打卡

2. 避免意外捕获: 如果把“成功后的后续步骤”也放在 try 块里,而这些步骤本身也可能引发 try 块想要捕获的同类型异常,那么就会导致逻辑混淆。原因:尝试导入一个不存在的模块,或者模块存在但其中的特定名称找不到, Python 的模块加载器找不到这个模块。原因: 尝试打开一个不存在的文件(通常是在读模式下),或者路径不正确。原因: 尝试访问序列(如列表、元组、字符串)中一个不存在的索引。原因: 尝试使用一个未被定义的变量、函数或对象的名称。原因: 尝试访问字典中一个不存在的键。

2025-05-14 23:30:04 412

原创 Day 24python打卡

对自己电脑的不同文件夹利用今天学到的知识操作下,理解下os路径。

2025-05-13 23:33:54 203

原创 Day22 python打卡

自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码。结果提交 :将预测结果保存为符合 Kaggle 要求的 CSV 文件。数据预处理 :处理缺失值、对分类变量进行编码、提取特征等。模型训练 :选择合适的机器学习模型并在训练集上进行训练。模型预测 :使用训练好的模型对测试集进行预测。数据加载 :读取泰坦尼克号的训练集和测试集。kaggle泰坦里克号人员生还预测。

2025-05-11 23:51:50 222

原创 Day21 python打卡

题目 :使用heart心脏病数据集,对比PCA和t-SNE在2D可视化中的表现差异,并分析原因。(要求:包含数据预处理、两种降维方法的实现、可视化对比图、结果分析)可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。3. 缓解维度灾难 :高维空间中数据稀疏,基于距离的算法(如KNN)性能下降,降维可改善。5. 多模态数据融合 :将不同来源的高维特征(如文本+图像)统一到低维空间。还有一些其他的降维方式,也就是最重要的词向量的加工,我们未来再说。一、降维的主要应用场景。

2025-05-10 23:12:00 246

原创 Day20 python打卡

3. 降维近似 :取 U 前 k 列、Σ 前 k 个值、Vᵀ 前 k 行得 Aₖ = UₖΣₖVₖᵀ,为 A 的低秩近似,用于 PCA、图像压缩、推荐系统等。1. 训练阶段:对训练集 X_train 进行 SVD 分解,得到 U、Σ 和 Vᵀ,并保存 Vᵀ 矩阵(或其前 k 行)用于降维变换。1. 排序特性 :Σ 矩阵对角线上奇异值降序排列,大值代表主要信息,小值代表次要信息或噪声,其大小反映对 A 的贡献程度。综上,SVD 筛选奇异值可降维,保留主信息,减少计算量与噪声,是诸多降维及数据处理算法基础。

2025-05-09 23:43:11 278

原创 Day19 python打卡

因此,方差筛选会设定一个方差阈值,剔除方差低于这个阈值的特征,保留那些变化较大的特征,从而减少特征数量,提高模型效率(值得注意的是,方差筛选只需要特征数据即可筛选,是无监督筛选,不像其他筛选算法)(从之前的学习来说,shap重要性还是不太适合维度过大的数据,shap值运算很耗时的,比起其他筛选算法不太划算,建议在高维场景下先用快速方法降维,再局部使用SHAP进行精细筛选)面对高维特征的时候常常需要引入特征降维,对于某些特征较多的数据,如基因数据、微生物数据、传感器数据等,特征较多,所以会考虑特征降维。

2025-05-08 23:48:13 866

原创 Day18 python打卡

你最开始聚类的时候,就选择了你想最后用来确定簇含义的特征,那么你需要选择一些特征来进行聚类,那么你最后确定簇含义的特征就是这几个特征,而非全部。如你想聚类消费者购买习惯,那么他过去的消费记录、购买记录、购买金额等等,这些特征都与消费者购买习惯有关,你可以使用这些特征来确定簇含义,一些其他的特征,如消费者年龄,工作行业则不考虑。现在需要给这个簇赋予实际的含义,一般当你赋予实际含义的时候,你需要根据某几个特征来赋予,但是源数据特征很多,如何选择特征呢?最大心率(thalach)分布较为分散,部分人群心率偏低。

2025-05-07 22:21:38 715

原创 Day17 python打卡

实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。聚类常见算法:kmeans聚类、dbscan聚类、层次聚类。原则t-sne或者pca进行2D或3D可视化。选择合适的算法,根据评估指标调参( )作业:对心脏病数据集进行聚类。将聚类后的特征添加到原数据中。

2025-05-06 23:31:04 365

原创 Day16 python打卡

例如生成10个语文成绩(均值75,标准差10):`chinese_scores = np.random.normal(75, 10, 10).round(1)`,并使用 `np.max`、`np.argmax`、`np.min`、`np.argmin` 找出最高分、最低分及其索引。`b.shape` 查看数组 `b` 是2行3列,形状为 `(2, 3)`。`np.ones` 用于创建全1数组,`ones = np.ones((3,))` 创建形状为 `(3,)` 的全1数组。

2025-05-05 23:50:58 571

原创 Day15 python打卡

尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目,这样你也是独立完成了一个专属于自己的项目。3. 同一个问题,特征加工上,是否对数据进一步加工得出了新的结论-----你的加工被证明是有意义的。2. 研究问题的选择上,同一个数据你找到了有意思的点,比如更换了因变量,做出了和别人不同的研究问题。1. 数据的质量上,是否有好的研究主题但是你这个数据很难获取,所以你这个研究有价值。1. 有数据地址的提供数据地址,没有地址的上传网盘贴出地址即可。

2025-05-04 21:11:49 251

原创 Day14 python打卡

2. 尝试确定一下shap各个绘图函数对于每一个参数的尺寸要求,如shap.force_plot力图中的数据需要满足什么形状?3. 确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。1. 参考上述文档补全剩余的几个图。

2025-05-04 20:57:49 329

原创 Day13 python打卡

作业: 从示例代码可以看到 效果没有变好,所以很多步骤都是理想是好的,但是现实并不一定可以变好。这个实验仍然有改进空间,如下。1. 还没做smote+过采样+修改权重的组合策略,有可能一起做会变好。2. 还没有调参,有可能调参后再取上述策略可能会变好。知识点复习 不平衡数据集的处理策略:过采样、修改权重、修改阈值。

2025-05-02 23:13:29 216

原创 Day12 python打卡

一、核心思想与仿生灵感“灵感来源”:鸟群觅食时的群体协作行为 - 每只鸟(粒子)具备双重记忆: 个体最优(Pbest):自身历史最佳位置(曾找到的最丰富食物点) 全局最优(Gbest):整个鸟群当前发现的最佳位置(群体共享的最优解) -通过动态调整飞行速度(方向+步长),在探索(随机扰动)与开发(经验引导)间平衡。1. 初始化探索(放鸟侦察) 随机生成`N`个粒子(超参数组合),分布在参数空间中,每个粒子携带初始速度(探索方向)和位置(参数组合)个体学习:向自己曾找到的最优位置靠近(避免重复低效探索)

2025-05-01 23:56:18 727

原创 Day11 python打卡

对于信贷数据的其他模型,如LightGBM。和KNN 尝试用下贝叶斯优化和网格搜索。

2025-04-30 23:36:40 166

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除