- 博客(47)
- 收藏
- 关注
原创 Python60日基础学习打卡Day48
cbam注意力之前我们介绍了se通道注意力,我们说所有的模块本质上只是对特征进一步提取,今天进一步介绍cbam注意力CBAM 是一种能够集成到任何卷积神经网络架构中的注意力模块。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能力和性能。简单来说,它就像是给模型装上了 “智能眼镜”,让模型能够更精准地看到图像中关键的部分和。这两个模块顺序连接,共同作用于输入的特征图。
2025-06-11 22:23:31
350
原创 Python60日基础学习打卡Day47
PyTorch 的广播机制(Broadcasting)是一种高效的张量运算特性,允许在不同形状的张量之间执行元素级操作(如加法、乘法),而无需显式扩展或复制数据。PyTorch 的广播机制(Broadcasting)是一种强大的张量运算特性,允许在不同形状的张量之间进行算术运算,而无需显式地扩展张量维度或复制数据。在深度学习中经常需要随机生成一些张量,比如权重的初始化,或者计算输入纬度经过模块后输出的维度,都可以用一个随机函数来实现需要的张量格式,而无需像之前一样必须加载一张真实的图片。
2025-06-09 22:57:05
641
原创 Python60日基础学习打卡Day41-42【虫豸版】
在深度学习中,标准的前向传播和反向传播过程通常是一个黑盒,我们很难直接访问中间层的信息。,它允许我们在不修改模型结构的情况下,。我们之前介绍过机器学习可解释性工具,例如 SHAP、PDPBox 等,这些工具在处理结构化数据时,能够有效揭示模型内部的决策逻辑。而在深度学习领域,同样存在一系列方法如SHAP、PDPBox 等般来解析模型的决策过程:以图像分类任务为例,我们不仅可以通过可视化特征图,直观观察不同层对图像特征的提取程度;还能进一步借助,清晰展现模型在预测过程中对图像不同区域的关注重点。
2025-06-08 15:59:21
848
原创 Python60日基础学习打卡Day46
注意力机制的由来本质是从onehot-elmo-selfattention-encoder-bert这就是一条不断提取特征的路。各有各的特点,也可以说由弱到强。其中注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器,就像人类视觉会自动忽略背景,聚焦于图片中的主体(如猫、汽车)。transformer中的叫做自注意力机制,他可以自动学习到图片中的主体并忽略背景。我们现在说的很多模块,比如通道注意力、空间注意力等等,都是基于自注意力机制的。
2025-06-07 23:16:14
1186
1
原创 Python60日基础学习打卡Day45
之前的神经网络训练中,为了借用了很多的组件,比如,运行结束后还可以查看单张图的推理效果。如果现在有一个交互工具可以很简单的那就好了,他就是可视化工具。
2025-06-06 22:31:59
1016
1
原创 Python60日基础学习打卡Day44
模型年份提出团队关键创新点层数参数量ImageNet Top-5错误率典型应用场景预训练权重可用性LeNet-51998Yann LeCun等首个CNN架构,卷积层+池化层+全连接层,Sigmoid激活函数7~60KN/A手写数字识别(MNIST)无(历史模型)AlexNet2012Alex Krizhevsky等ReLU激活函数、Dropout、数据增强、GPU训练860M15.3%大规模图像分类PyTorch/TensorFlow官方支持VGGNet2014。
2025-06-04 21:25:35
756
原创 Python60日基础学习打卡Day42
它通过计算特征图的梯度来生成类激活映射(Class Activation Mapping,简称 CAM ),直观地显示图像中哪些区域对模型的特定预测贡献最大。Grad-CAM 的核心思想是:通过反向传播得到的梯度信息,来衡量每个特征图对目标类别的重要性。1. 梯度信息:通过计算目标类别对特征图的梯度,得到每个特征图的重要性权重。2. 特征加权:用这些权重对特征图进行加权求和,得到类激活映射。可以看到通过腿和头部判断是青蛙。选择的图像类别: 青蛙。
2025-06-02 23:36:13
144
原创 Python60日基础学习打卡Day41
它的语法形式非常简约,仅需一行即可完成定义,格式如下: lambda 参数列表: 表达式参数列表:可以是单个参数、多个参数或无参数。表达式:函数的返回值(无需 return 语句,表达式结果直接返回)。
2025-06-01 23:01:55
1046
原创 Python60日基础学习打卡Day40
在图像数据预处理环节,为提升数据多样性,可采用数据增强(数据增广)策略。该策略通常不改变单次训练的样本总数,而是通过对现有图像进行多样化变换,使每次训练输入的样本呈现更丰富的形态差异,从而有效扩展模型训练的样本空间多样性。常见的修改策略包括以下几类1. 几何变换:如旋转、缩放、平移、剪裁、裁剪、翻转2. 像素变换:如修改颜色、亮度、对比度、饱和度、色相、高斯模糊(模拟对焦失败)、增加噪声、马赛克3. 语义增强(暂时不用):mixup,对图像进行结构性改造、cutout随机遮挡等。
2025-06-01 11:01:00
715
原创 Python60日基础学习打卡Day39
批量维度不变性:无论进行flatten、view还是reshape操作,第一个维度batch_size通常保持不变。动态维度指定:使用-1让PyTorch自动计算该维度的大小,但需确保其他维度的指定合理,避免形状不匹配错误。
2025-05-31 11:20:11
769
原创 Python60日基础学习打卡Day38
昨天我们介绍了minist这个经典的手写数据集,作为图像数据,相较于结构化数据(表格数据)他的特点在于他每个样本的的形状并不是(特征数,),而是(宽,高,通道数)# 先继续之前的代码from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具。
2025-05-29 22:28:20
1026
原创 Python60日基础学习打卡D37
维度DatasetDataLoader核心职责定义“数据是什么”和“如何获取单个样本”定义“如何批量加载数据”和“加载策略”核心方法(获取单个样本)、__len__(样本总数)无自定义方法,通过参数控制加载逻辑预处理位置在中通过transform执行预处理无预处理逻辑,依赖Dataset返回的预处理后数据并行处理无(仅单样本处理)支持多进程加载(典型参数root(数据路径)、transform(预处理)batch_sizeshuffle核心结论Dataset类:定义数据的内容和格式。
2025-05-27 23:50:53
776
原创 Python60日基础学习打卡D35
但不知道输入的批量大小和其他维度,比如卷积层需要知道输入的通道数、高度、宽度等信息——并非所有输入数据都是结构化数据因此,要生成模型摘要(如每层的输出形状、参数数量),必须提供一个示例输入形状input_size=(4,),让 PyTorch “运行” 一次模型,从而推断出各层的信息。summary 函数的核心逻辑是:创建一个与 input_size 形状匹配的虚拟输入张量(通常填充零)
2025-05-25 22:47:57
1031
1
原创 Python60日基础学习打卡D34
CPU性能的查看上述是在cpu的情况下训练,(即使安装了cuda,但是没有使用cuda),我们借这个机会简单介绍下cpu的性能差异。判断 CPU 的好坏需要综合考虑硬件参数、性能表现、适用场景。昨天的训练是cpu的训练,今天介绍下gpu的训练。在 PyTorch 里,.to(device) 方法的作用是把张量或者模型转移到指定的计算设备(像 CPU 或者 GPU)上。在进行计算时,所有输入张量和模型必须处于同一个设备。要是它们不在同一设备上,就会引发运行时错误。并非所有 PyTorch 对象都有
2025-05-24 18:29:05
1019
原创 Python60日基础学习打卡D33
定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。
2025-05-22 23:14:01
209
原创 Python60日基础学习打卡D32
很多绘图工具都是调用的底层的绘图包,所以要想绘制出想要的图表,需要先了解底层绘图包的语法。此时模型已经建模完毕,这是一个经典的三分类项目,之前在基础班的项目三提到过sklearn提供的示例数据集,不了解的同学自行百度了解下该数据。我们已经掌握了相当多的机器学习和python基础知识,现在面对一个全新的官方库,看看是否可以借助官方文档的写法了解其如何使用。可以鼠标悬停在这个类上,来查看定义这个类所需要的参数,以及每个参数的格式。在官方文档介绍中的plot方法最下面,写明了参数和对应的返回值。
2025-05-21 23:14:09
779
原创 Python60日基础学习打卡D30
原文链接:https://blog.youkuaiyun.com/2301_77865880/article/details/148054820。当使用 python -m model.main 时,Python 会将当前目录(即项目根目录)添加到 sys.path 的开头。main.py和rectangle.py都在根目录的子目录model下,并且model下还有子目录 utils(跨目录导入)main.py在根目录,rectangle.py在子目录model下。运行方案:直接在终端python main.py。
2025-05-19 23:14:38
822
原创 Python60日基础学习打卡D29
回顾一下,函数的装饰器是 :接收一个函数,返回一个修改后的函数。我们之前是用复用的思想来看装饰器的,换一个角度理解,当你想修改一个函数的时候,可以通过装饰器方法来修改而无需重新定义这个函数。ps:之前无论是函数还是类的装饰器,我们都发现是先有装饰器,再有类。那既然我们说了装饰器除了让原本的代码更加清晰可读可复用,还具有修改函数or类的功能。通过类装饰器,可以在不修改类内部代码的情况下,为多个类统一添加功能(如日志、统计)可以的,类也有装饰器。类也有修饰器,他的逻辑类似:接收一个类,返回一个修改后的类。
2025-05-18 21:51:09
325
原创 Python60日基础学习打卡D28
类是对属性和方法的封装,可以理解为模板,通过对模板实例化可以实现调用这个类的属性和方法。比如创建一个随机森林类,然后就可以调用他的训练和预测方法。现在我们来学一下自己定义一个类,这会让我们对于类这个对象理解的更加深刻ps:类的操作很多,我们这里只说一些在深度学习领域最常见和通用的注意:注意:init左右各有两个下划线__,需要传入self这个特殊的参数。许多时候,当规划好准备写一个函数、或者一个类,关键词定义后,比如def、class这些定义的关键词后,必须有一个有占据缩进位置的代码块。
2025-05-17 23:01:15
755
原创 Python60日基础学习打卡D25
相信大家在借助ai写代码的时候,经常会遇到try-except的异常处理模块,这是因为大部分大模型在后训练阶段都是经过强化学习训练的,为了确保结果的正确运行,只有采取才能提高模型运行成功的概率。但是我们日常写代码的时候,大概率不会采取这些写法。所以我们要适应ai的写法。
2025-05-14 22:13:33
889
原创 Python60日基础学习打卡D23
--- 定义不同列的类型和它们对应的预处理步骤 ---# 这些定义是基于原始数据 X 的列类型来确定的# 识别原始的 object 列 (对应原代码中的 discrete_features 在预处理前)# 识别原始的非 object 列 (通常是数值列)# 有序分类特征 (对应你之前的标签编码)# 注意:OrdinalEncoder默认编码为0, 1, 2... 对应你之前的1, 2, 3...需要在模型解释时注意# 这里的类别顺序需要和你之前映射的顺序一致。
2025-05-12 22:14:36
829
原创 Python60日基础学习打卡D12【虫豸版】
物理现象:退火现象指物体,温度愈低,物体的能量状态会低;温度足够低后,液体开始冷凝与结晶,在结晶状态时,系统的能量状态最低。大自然在缓慢降温(即退火)时,可找到。但是,如果过程过急过快,快速降温(亦称淬炼)时,会导致不是最低能态的非晶形。算法概述更优总是向该方向移动这个根据一定概率P是否选择差解的方法,叫做Metropolis准则(这个准则来源于模拟退火,故整个方法成为模拟退火)
2025-05-12 21:26:02
1047
原创 Python60日基础学习打卡D21
的核心目标是经过之前的数据预处理,我们的原数据有31个特征通常情况下,我们提到特征降维,很多时候默认指的是无监督降维,这种方法只需要特征数据本身。但是实际上还包含一种有监督的方法。
2025-05-10 22:24:08
995
原创 Python60日基础学习打卡D20
奇异值的应用线性代数概念回顾(可不掌握)奇异值推导(可不掌握)奇异值的应用特征降维减小计算量可视化数据重构比如重构信号重构图像知识点回顾对于任何矩阵的矩阵,图像数据天然就是矩阵)均可做等价的奇异值SVD分解对于分解后的矩阵可以选取保留前K个奇异值及其对应的奇异向量重构原始矩阵可以通过计算Frobenius 范数相对误差来衡量原始矩阵和重构矩阵的差异。应用结构化数据中将原来的m。
2025-05-09 23:24:06
820
原创 Python60日基础学习打卡D19
特征数目太多计算起来很慢。同时特征中可能存在很多冗余特征干扰解释性、存在噪声特征干扰精度。所以在面对高维特征的时候常常需要引入特征降维,我们之前课程中的项目的特征也就小几十个,不太需要做降维,对于某些特征较多的数据,如基因数据、微生物数据、传感器数据等,特征较多,所以会考虑特征降维。特征降维一般有2种策略:1. 特征筛选:从n个特征中筛选出m个特征,比如方差筛选,剔除方差过小的特征;利用皮尔逊相关系数筛选;
2025-05-08 20:59:57
897
原创 Python60日基础学习打卡D18
第一个簇-优质信用稳健财务型。特征总结:在债务合并用途上表现一致,几乎无破产记录,信用问题极少,资金用途集中且很少涉及o特殊类别。财务状况稳定,信用良好,资金流向明确。定义依据:各项关键财务和信用指标表现优异,显示出良好的财务自律性和信用履约能力,所以定义。为“优质信用稳健财务型"。第二个簇-较稳健但信用有分化财务型。特征总结:多数无债务合并需求,破产情况少见,但信用问题上存在个体差异,资金用途有一定分散性。整体财务状况相对稳定,但在信用和资金使用方向上不如第一个表现一致。
2025-05-08 19:30:40
812
原创 Python60日基础学习打卡D17
术语小白解释簇(Cluster)被分出来的一组组数据,像“糖果堆”质心(Centroid)每堆糖的“代表糖”,一般是那堆里最中心的点(像平均值)距离(Distance)用来判断两个点有多像。常用欧几里得距离,像尺子量距离一样K 值(K in K-means)告诉算法你希望分成几堆糖相似度矩阵(Similarity Matrix)记录每对数据之间有多像轮廓系数(Silhouette Score)衡量聚类效果的指标,越接近 1 越好。
2025-05-07 22:33:40
864
原创 Python60日基础学习打卡D16
1.理解数组的维度(Dimensions)NumPy 数组的维度 (Dimension)或称为轴 (Axis)的概念,与我们日常理解的维度非常相似。直观判断:数组的维度层数通常可以通过打印输出时中括号[]的嵌套层数来初步确定:一层[]:一维(1D)数组。两层[]:二维(2D)数组。三层[]:三维(3D)数组,依此类推。2.NumPy 数组与深度学习 Tensor 的关系。
2025-05-07 00:09:20
637
原创 Python60日基础学习打卡D14
机器学习随机森林模型(代码见前几章),是一个黑盒模型,对其做shap可解释性分析,可以计算每个特征对预测结果的shap值,而在模型训练,去做预测的过程中,预测的结果为基准值加上各特征对应的shap值。
2025-05-04 23:42:01
361
原创 Python60日基础学习打卡D13
RandomOverSampler类的.fit_resample()方法正是针对标签不平衡问题进行随机过采样的操作。SMOTE类的.fit_resample()方法正是利用SMOTE法进行随机过采样的操作。SMOTE的核心思想是通过在少数类样本的特征空间中进行插值来合成新的样本。可以提供一个字典,手动为每个类别标签指定权重,例如 `class_weight={0: 1, 1: 10}` 表示类别 1 的权重是类别 0 的 10 倍。目的是在训练中“放大”少数类的重要性,促使模型提升对少数类的识别能力。
2025-05-03 23:42:56
379
原创 Python60日基础学习打卡D12
遗传算法今天以为主,用尽可能简短但是清晰的语言说清楚这三种算法每种算法的实现逻辑:三种启发式算法的示例代码:遗传算法、粒子群算法、退火算法,并学习优化算法的思路,代码不做详细要求,参考即可遗传算法比如你要调3个超参数,那就随机构造出100个“方案”(每个方案 = 一组超参数)。类比:你组了100个“选手”来参加调参比赛。把每组参数喂给模型,训练一下,看看它的表现(比如准确率多少)。类比:给每个选手考试,看谁考得好。从这100个选手里挑出前10%表现最好的。
2025-05-01 23:22:20
360
原创 Python60日基础学习打卡D11
基线模型(基准模型): 首先运行一个使用默认参数的 RandomForestClassifier,记录其性能作为比较的基准。1. 网格搜索 (GridSearchCV):- 需要定义参数的网格(param_grid),包含所有你想要尝试的特定值的列表。它会尝试网格中所有可能的参数组合。- 缺点: 计算成本非常高,参数和值的数量稍多,组合数就会呈指数级增长(维度灾难)。因此,网格通常设置得比较小或集中在认为最优参数可能存在的区域(可能基于随机搜索的初步结果)。
2025-04-30 23:13:22
998
原创 Python60日基础学习打卡D9
复习内容]一次性提取所有连续型变量可交由完成计算相关系数的矩阵可交由data[continuous_features].corr()完成设置图片清晰度可交由plt.rcParams['figure.dpi']完成热力图绘制可交由sns.heatmap完成,其中色调、相关系数的取值范围可以调节。
2025-04-28 21:10:27
239
原创 Python60日基础学习打卡D8
标签编码/字典的映射可交由map[mapping]处理标准化操作可交由StandardScaler()处理,以便消除不同量纲的影响、便于模型运算。归一化操作可交由自编函数处理(normalized_data = (data - min_val) / (max_val - min_val))归一化操作可交由类处理(MinMaxScaler.fit_transform)fit_transform方法详解。
2025-04-27 18:36:23
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅