- 博客(52)
- 收藏
- 关注
原创 Python_day54Inception网络及其思考
今天我们介绍inception,也就是GoogleNet传统计算机视觉的发展史从上面的链接,可以看到其实inceptionnet是在resnet之前的,那为什么我今天才说呢?因为他要引出我们后面的特征融合和特征并行处理这些思想。Inception 网络,也被称为 GoogLeNet,是 Google 团队在 2014 年提出的经典卷积神经网络架构。
2025-06-15 21:48:48
671
原创 Python_day53对抗生成网络
定义:就像是餐厅的菜谱,按顺序列出每个烹饪步骤,简化了厨师的烹饪流程。LeakyReLU 是 ReLU 的变种,允许一小部分梯度通过,避免神经元失活现象。类似于在烹饪过程中,允许某些食材保留一定的原始风味,避免某些食材完全失活,从而丰富菜品的层次感。LeakyReLU(x) = max(0.01 * x, x),其中 0.01 是负斜率。
2025-06-13 23:35:05
961
原创 Python _Day52|神经网络调参指南
之前我们说过,torch中很多场景都会存在随机数权重、偏置的随机初始化数据加载(shuffling打乱)与批次加载(随机批次加载)的随机化数据增强的随机化(随机旋转、缩放、平移、裁剪等)随机正则化dropout优化器中的随机性import os# 全局随机函数"""设置全局随机种子,确保实验可重复性参数:seed: 随机种子值,默认为42deterministic: 是否启用确定性模式,默认为True"""# 设置Python的随机种子。
2025-06-12 20:33:10
829
原创 Python_day50预训练模型+CBAM模块
然后看下resnet内部的结构是什么,这决定我们如何插入模块# 定义通道注意力"""通道注意力机制初始化参数:in_channels: 输入特征图的通道数ratio: 降维比例,用于减少参数量,默认为16"""# 全局平均池化,将每个通道的特征图压缩为1x1,保留通道间的平均值信息# 全局最大池化,将每个通道的特征图压缩为1x1,保留通道间的最显著特征# 共享全连接层,用于学习通道间的关系# 先降维(除以ratio),再通过ReLU激活,最后升维回原始通道数。
2025-06-10 17:08:47
693
原创 Python_day49cbam模块介绍
之前我们介绍了se通道注意力,我们说所有的模块本质上只是对特征进一步提取,今天进一步介绍cbam注意力CBAM 是一种能够集成到任何中的注意力模块。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进,增强重要特征,抑制不重要特征,提升模型的特征表达能力和性能。简单来说,它就像是给模型装上了 “智能眼镜”,让模型能够更精准地看到图像中关键的部分。
2025-06-09 18:24:18
973
原创 Python_day48随机函数与广播机制
在继续讲解模块消融前,先补充几个之前没提的基础概念尤其需要搞懂张量的维度、以及计算后的维度,这对于你未来理解复杂的网络至关重要。
2025-06-08 14:59:30
669
原创 Python_day47
===================== 新增:通道注意力模块(SE模块) ====================="""通道注意力模块(Squeeze-and-Excitation)""""""参数:in_channels: 输入特征图的通道数reduction_ratio: 降维比例,用于减少参数量"""# 全局平均池化 - 将空间维度压缩为1x1,保留通道信息# 全连接层 + 激活函数,用于学习通道间的依赖关系# 降维:压缩通道数,减少计算量# 升维:恢复原始通道数。
2025-06-07 21:47:55
905
原创 Python——day46通道注意力(SE注意力)
注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器,就像人类视觉会自动忽略背景,聚焦于图片中的主体(如猫、汽车)。transformer中的叫做自注意力机制,他是一种自己学习自己的机制,他可以自动学习到图片中的主体,并忽略背景。我们现在说的很多模块,比如通道注意力、空间注意力、通道注意力等等,都是基于自注意力机制的。从数学角度看,注意力机制是对输入特征进行加权求和,输出=∑(输入特征×注意力权重),其中注意力权重是学习到的。所以他和卷积很像,因为卷积也是一种加权求和。
2025-06-06 20:51:02
686
原创 day45_Tensorborad使用介绍
之前的内容中,我们在神经网络训练中,为了帮助自己理解,借用了很多的组件,比如训练进度条、可视化的loss下降曲线、权重分布图,运行结束后还可以查看单张图的推理效果。如果现在有一个交互工具可以很简单的通过按钮完成这些辅助功能那就好了。所以我们现在介绍下这个可视化工具,他可以很方便的很多可视化的功能,尤其是他可以在运行过程中实时渲染,方便我们根据图来动态调整训练策略,而不是训练完了才知道好不好。
2025-06-06 16:11:46
671
原创 Python_day44
模型年份提出团队关键创新点层数参数量ImageNet Top-5错误率典型应用场景预训练权重可用性LeNet-51998Yann LeCun等首个CNN架构,卷积层+池化层+全连接层,Sigmoid激活函数7~60KN/A手写数字识别(MNIST)无(历史模型)AlexNet2012Alex Krizhevsky等ReLU激活函数、Dropout、数据增强、GPU训练860M15.3%大规模图像分类PyTorch/TensorFlow官方支持VGGNet。
2025-06-04 20:54:22
989
原创 Python_day43
定义卷积神经网络模型(优化版)# 卷积特征提取模块(含残差连接)# 第一层:输入3通道(RGB)→16通道nn.ReLU(),# 第二层:16→32通道 + 残差连接nn.ReLU(),nn.Conv2d(32, 32, kernel_size=3, padding=1), # 残差分支# 第三层:32→64通道nn.ReLU(),# 第四层:64→128通道nn.ReLU(),nn.MaxPool2d(2) # 28x28 → 14x14(与原计算一致)
2025-06-02 19:36:26
416
原创 Python_day42 Grad-CAM.ipynb
在深度学习中,我们经常需要查看或修改模型中间层的输出或梯度。然而,标准的前向传播和反向传播过程通常是一个黑盒,我们很难直接访问中间层的信息。PyTorch 提供了一种强大的工具——hook 函数,它允许我们在不修改模型结构的情况下,获取或修改中间层的信息。它的核心价值在于让开发者能够动态监听、捕获甚至修改模型内部任意层的输入 / 输出或梯度,而无需修改模型的原始代码结构。常用场景如下:1. 调试与可视化中间层输出2. 特征提取:如在图像分类模型中提取高层语义特征用于下游任务。
2025-06-01 15:37:07
733
原创 Python_day41
首先回顾下昨天的代码。一、数据增强在图像数据预处理环节,为提升数据多样性,可采用数据增强(数据增广)策略。该策略通常不改变单次训练的样本总数,而是通过对现有图像进行多样化变换,使每次训练输入的样本呈现更丰富的形态差异,从而有效扩展模型训练的样本空间多样性。常见的修改策略包括以下几类1. 几何变换:如旋转、缩放、平移、剪裁、裁剪、翻转2. 像素变换:如修改颜色、亮度、对比度、饱和度、色相、高斯模糊(模拟对焦失败)、增加噪声、马赛克。
2025-05-31 22:41:44
688
原创 Python_day40
**批量维度不变性**:无论进行flatten、view还是reshape操作,第一个维度`batch_size`通常保持不变。- **动态维度指定**:使用`-1`让PyTorch自动计算该维度的大小,但需确保其他维度的指定合理,避免形状不匹配错误。
2025-05-30 15:35:46
626
原创 Python_day39图像数据与显存
从这里开始我们进入到了图像数据相关的部分,也是默认你有之前复试班计算机视觉相关的知识,但是一些基础的概念我仍然会提。昨天我们介绍了minist这个经典的手写数据集,作为图像数据,相较于结构化数据(表格数据)他的特点在于他每个样本的的形状并不是(特征数,),而是(宽,高,通道数)# 先继续之前的代码from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具。
2025-05-29 23:59:52
789
原创 Python_day38Dataset和Dataloader类
维度DatasetDataLoader核心职责定义“数据是什么”和“如何获取单个样本”定义“如何批量加载数据”和“加载策略”核心方法(获取单个样本)、__len__(样本总数)无自定义方法,通过参数控制加载逻辑预处理位置在中通过transform执行预处理无预处理逻辑,依赖Dataset返回的预处理后数据并行处理无(仅单样本处理)支持多进程加载(典型参数root(数据路径)、transform(预处理)batch_sizeshuffle核心结论Dataset类:定义数据的内容和格式。
2025-05-27 23:32:49
827
原创 Python——day37早停策略和模型权重的保存
训练进度: 100%|██████████| 20000/20000 [00:06<00:00, 3245.61epoch/s, Train Loss=0.0633, Test Loss=0.0578]Training time: 6.16 seconds。实际上,在早停策略中,保存 checkpoint(检查点) 是更优选择,因为它不仅保存了模型参数,还记录了训练状态(如优化器参数、轮次、损失值等),一但出现了过拟合,方便后续继续训练。我今天的笔记是用cpu训练的,请自行修改为gpu训练。
2025-05-26 23:12:01
1147
1
原创 Python_day35 模型可视化与推理
知识点回顾:三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式。
2025-05-24 23:08:51
876
原创 Python_day34GPU训练及类的call方法
DAY 34 GPU训练及类的call方法知识点回归:CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)
2025-05-23 22:50:05
716
原创 Python_day33 简单的神经网络
定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。
2025-05-22 23:49:53
653
原创 Python_day32官方文档的阅读
知识点回顾:官方文档的检索方式:github和官网官方文档的阅读和使用:要求安装的包和文档为同一个版本类的关注点:实例化所需要的参数普通方法所需要的参数普通方法的返回值绘图的理解:对底层库的调用我们已经掌握了相当多的机器学习和python基础知识,现在面对一个全新的官方库,看看是否可以借助官方文档的写法了解其如何使用。我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档。多数 Python 库都会有官方文档,里面包含了函数的详细说明、用法示例以及版本兼容性信息。
2025-05-21 23:58:14
302
原创 Python _day31
DAY 31 文件的规范拆分和写法今日的示例代码包含2个部分notebook文件夹内的ipynb文件,介绍下今天的思路项目文件夹中其他部分:拆分后的信贷项目,学习下如何拆分的,未来你看到的很多大项目都是类似的拆分方法知识点回顾规范的文件命名规范的文件夹管理机器学习项目的拆分编码格式和类型注解昨天我们已经介绍了如何在不同的文件中,导入其他目录的文件,核心在于了解导入方式和python解释器检索目录的方式。
2025-05-20 23:54:59
836
原创 【无标题】
模块(Module)本质:以.py结尾的单个文件,包含Python代码(函数、类、变量等)。作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。包(Package)在python里,包就是库本质有层次的文件目录结构(即文件夹),用于组织多个模块和子包。核心特征:包的根目录下必须包含一个文件(可以为空),用于标识该目录是一个包。
2025-05-19 20:46:54
937
原创 Python_day28 类的定义和方法
calculate_perimeter():计算周长(公式:2×(长+宽))。is_square() 方法,判断是否为正方形(长 == 宽)。calculate_circumference():计算圆的周长(公式:2πr)。shape_type="rectangle":创建长方形(参数:长、宽)。calculate_area():计算圆的面积(公式:πr²)。shape_type="circle":创建圆(参数:半径)。calculate_area():计算面积(公式:长×宽)。
2025-05-17 21:38:16
413
原创 Python_day27(需回头再深入)
DAY 27 函数专题2:装饰器知识点回顾:装饰器的思想:进一步复用函数的装饰器写法注意内部函数的返回值作业:编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)...9949 9967 9973 执行时间:0.14123177528381348秒装饰器的本质是一个高阶函数,它接收一个函数作为参数,并返回一个新函数来替代原函数。因此,我们需要在装饰器内部定义一个新函数来实现这些功能。
2025-05-16 16:53:03
678
原创 Python_day26函数专题1
"""Docstring: 描述函数的功能、参数和返回值 (可选但强烈推荐)"""# 函数体: 实现功能的代码# ...return value # 可选,用于返回结果def: 关键字,表示开始定义一个函数。function_name: 函数的名称,应遵循Python的命名约定(通常是小写字母和下划线,例如 calculate_area,用英文单词含义和下划线来作为函数名)。parameter1, parameter2, ...: 函数的参数(也叫形参),是函数在被调用时接收的输入值。
2025-05-15 15:10:38
782
原创 Python_day25异常处理
DAY 25 异常处理知识点回顾:异常处理机制debug过程中的各类报错try-except机制try-except-else-finally机制在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。作业:理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。
2025-05-14 13:37:39
804
原创 Python_day24元组和OS模块
DAY 24 元组和OS模块知识点回顾:元组可迭代对象os模块作业:对自己电脑的不同文件夹利用今天学到的知识操作下,理解下os路径。元组元组的特点:有序,可以重复,这一点和列表一样元组中的元素不能修改,这一点非常重要,深度学习场景中很多参数、形状定义好了确保后续不能被修改。很多流行的 ML/DL 库(如 TensorFlow, PyTorch, NumPy)在其 API 中都广泛使用了元组来表示形状、配置等。可以看到,元组最重要的功能是在列表之上,增加了不可修改这个需求元组的创建。
2025-05-13 15:28:43
1040
原创 Python_day23
ColumTransformer的核心# --- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应你原代码中的 discrete_features 在预处理前)# 识别原始的非 object 列 (通常是数值列)# 有序分类特征 (对应你之前的标签编码)# 注意:OrdinalEncoder默认编码为0, 1, 2... 对应你之前的1, 2, 3...需要在模型解释时注意。
2025-05-12 22:50:30
684
原创 Python_day22
训练集 (train.csv)测试集 (test.csv)训练集应用于构建机器学习模型。对于训练集,我们提供每位乘客的结果(也称为“真实值”)。您的模型将基于乘客的性别和舱位等“特征”。您还可以使用特征工程来创建新特征。应该使用测试集来查看模型在看不见的数据上的表现。对于测试集,我们不会提供每位乘客的 Ground Truth。预测这些结果是你的工作。对于测试集中的每个乘客,使用您训练的模型来预测他们是否在泰坦尼克号沉没后幸存下来。我们还包括。
2025-05-11 22:05:53
1034
原创 Python_day21
题目 :使用heart心脏病数据集,对比PCA和t-SNE在2D可视化中的表现差异,并分析原因。(要求:包含数据预处理、两种降维方法的实现、可视化对比图、结果分析)可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。3. 缓解维度灾难 :高维空间中数据稀疏,基于距离的算法(如KNN)性能下降,降维可改善。5. 多模态数据融合 :将不同来源的高维特征(如文本+图像)统一到低维空间。还有一些其他的降维方式,也就是最重要的词向量的加工,我们未来再说。一、降维的主要应用场景。
2025-05-10 17:26:33
472
原创 Python_day20
计算特征值和特征向量:通过特征方程求解。矩阵对角化:判断矩阵是否可对角化,并求对角化矩阵。利用特征值分解求矩阵幂或函数:通过分解简化高次幂计算。证明题:如证明某些矩阵性质与特征值的关系。正交矩阵是指一个方阵 QQ,满足其转置矩阵与自身的乘积为单位矩阵,即:QTQ=IQTQ=IQTQT 是 QQ 的转置矩阵。II 是单位矩阵(对角线为 1,其余为 0)。这意味着正交矩阵的列向量(或行向量)是单位向量且两两正交。
2025-05-09 21:55:11
800
原创 Python_day19
DAY 19常见的特征筛选算法方差筛选皮尔逊相关系数筛选lasso筛选树模型重要性shap重要性递归特征消除REF作业:对心脏病数据集完成特征筛选,对比精度先运行之前的代码--- 1. 默认参数随机森林 (训练集 -> 测试集) ---训练与预测耗时: 1.8811 秒默认随机森林 在测试集上的分类报告:默认随机森林 在测试集上的混淆矩阵:总结过去电脑性能比较差,特征数目太多计算起来很慢。同时特征中可能存在很多冗余特征干扰。
2025-05-08 23:58:21
758
原创 Python_day18
我们可以使用 seaborn 和 matplotlib 库对数据进行可视化,帮助我们理解数据的分布和簇的含义。# 绘制特征之间的相关性热力图plt.show()通过以上步骤,我们完成了对心脏病数据集的特征工程,并评估了特征工程前后模型的效果。你可以根据实际情况调整特征工程的步骤和模型的参数,以获得更好的结果。同时,确保将 heart_disease.csv 替换为你实际的数据集文件名。@浙大疏锦行。
2025-05-07 23:47:38
401
原创 Python_day17
以下是三种常用的聚类效果评估指标,分别用于衡量聚类的质量和簇的分离与紧凑程度:1.轮廓系数(Silhouette Score)定义:轮廓系数衡量每个样本与其所属簇的紧密程度以及与最近其他簇的分离程度。取值范围:【-1,1】轮廓系数越接近1,表示样本与其所属簇内其他样本很近,与其他簇很远,聚类效果越好。轮廓系数越接近-1,表示样本与其所属簇内样本较远,与其他簇较近,聚类效果越差(可能被错误分类)。轮廓系数接近0,表示样本在簇边界附近,聚类效果无明显好坏。
2025-05-06 22:11:47
947
原创 Python_day16
DAY 16因为前天说了shap,这里涉及到数据形状尺寸问题,所以需要在这一节说清楚,后续的神经网络我们将要和他天天打交道。知识点:numpy数组的创建:简单创建、随机创建、遍历、运算numpy数组的索引:一维、二维、三维SHAP值的深入理解作业:今日知识点比较多,好好记忆下。
2025-05-05 21:36:28
658
原创 Python_day14
理解复杂机器学习模型(尤其是“黑箱”模型,如随机森林、梯度提升树、神经网络等)为什么会对特定输入做出特定预测。SHAP 提供了一种统一的方法来解释模型的输出。核心思想:合作博弈论中的 Shapley 值SHAP (SHapley Additive exPlanations) 的核心基于博弈论中的Shapley 值概念。模型的特征 (Features)就是玩家。目标是预测某个样本的输出值。不同的特征子集可以“合作”起来进行预测。某个特征子集进行预测得到的值。如何公平地。
2025-05-03 21:31:18
750
原创 Python_day13_不平衡数据集的处理
特性修改类别权重 (修改分类阈值作用阶段模型训练时模型预测(或评估)时作用对象模型的损失函数参数学习过程模型输出概率/分数到最终预测的决策规则对模型影响改变学习到的模型本身和决策边界不改变已学习到的模型性质根本性调整,代价敏感学习后处理性质的调整目标侧重学习一个内在区分能力更强的模型在现有模型上调整性能指标的权衡实现方式设置算法的参数(如在预测后应用不同的概率门槛。
2025-05-02 21:10:08
685
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人