- 博客(51)
- 收藏
- 关注
原创 python训练day48 随机函数与广播机制
三维张量与二维张量相加。高维张量与地维张量相加。批量矩阵与单个矩阵相乘。批量矩阵与批量矩阵相乘。三维张量与二维张量相乘。
2025-07-03 23:58:01
214
原创 python训练day42 Grad-CAM与Hook函数
1. 回调函数Hook本质是回调函数回调函数是作为参数传递给其他函数的函数,其目的是在某个特定事件发生时被调用执行。这种机制允许代码在运行时动态指定需要执行的逻辑,实现了代码的灵活性和可扩展性。回调函数的核心价值在于:1. 解耦逻辑:将通用逻辑与特定处理逻辑分离,使代码更模块化。2. 事件驱动编程:在异步操作、事件监听(如点击按钮、网络请求完成)等场景中广泛应用。3. 延迟执行:允许在未来某个时间点执行特定代码,而不必立即执行。
2025-06-26 22:58:08
438
原创 python训练day38 dataset和dataloader
在遇到大规模数据集时,显存常常无法一次性存储所有数据,所以需要使用分批训练的方法。为此,PyTorch提供了DataLoader类,该类可以自动将数据集切分为多个批次batch,并支持多线程加载数据。此外,还存在Dataset类,该类可以定义数据集的读取方式和预处理方式。1. DataLoader类:决定数据如何加载2. Dataset类:告诉程序去哪里找数据,如何读取单个样本,以及如何预处理。为了引入这些概念,我们现在接触一个新的而且非常经典的数据集:MNIST手写数字数据集。
2025-06-22 20:35:35
377
原创 python训练day37 早停策略和模型权重的保持
同时每隔固定的训练轮次都会保存模型参数,下次可以接着这里训练,缩小训练的范围。----监控的对象是验证集的指标。深度学习中模型的保存与加载主要涉及参数(权重)和整个模型结构的存储,同时需兼顾训练状态(如优化器参数、轮次等)以支持断点续训。实际上,打印测试集的loss和同步打印测试集的评估指标,是一个逻辑,但是打印loss可以体现在一个图中。- 原理:保存模型参数、优化器状态(学习率、动量)、训练轮次、损失值等完整训练状态,用于中断后继续训练。- 原理:保存模型的权重参数,不保存模型结构代码。
2025-06-21 21:32:10
296
原创 python训练day35 模型可视化与推理
理解一个深度学习网络最重要的2点:1. 了解损失如何定义的,知道损失从何而来----2. 了解参数总量,即知道每一层的设计才能退出---为了,需要知道层设计,以及每一层参数的数量。下面介绍几个。
2025-06-19 06:56:34
651
原创 python训练day34 GPU训练及类的call方法
mac版GPU训练要让模型在GPU上训练,主要是将模型和数据迁移到GPU设备上。在PyTorch里,.to(device)方法的作用是把张量或者模型转移到指定的计算设备(像CPU或者GPU)上。对于张量(Tensor):调用.to(device)之后,会返回一个在新设备上的新张量。对于模型(nn.Module):调用.to(device)会直接对模型进行修改,让其所有参数和缓冲区都移到新设备上。在进行计算时,所有输入张量和模型必须处于同一个设备。要是它们不在同一设备上,就会引发运行时错误。
2025-06-18 08:47:24
566
原创 python训练day33 神经网络的训练
定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。
2025-06-17 16:14:16
390
原创 python训练Day31 文件的规范拆分和写法
如何把一个文件,拆分成多个具有着独立功能的文件,然后通过import的方式,来调用这些文件。这样具有几个好处:1. 可以让项目文件变得更加规范和清晰2. 可以让项目文件更加容易维护,修改某一个功能的时候,只需要修改一个文件,而不需要修改多个文件。3. 文件变得更容易复用,部分通用的文件可以单独拿出来,进行其他项目的复用。
2025-06-15 10:47:43
997
原创 模块与包的导入
本质:以 `.py` 结尾的单个文件,包含Python代码(函数、类、变量等)。作用:将代码拆分到不同文件中,避免代码冗余,方便复用和维护。
2025-06-14 10:38:32
301
原创 python训练Day 29 类的装饰器
感悟:从这个训练营入门python,每一天的任务量很适合我,从看到题目的无措到看示例代码一行行慢慢明白,很有成就感,敲代码的时候感觉python语言很有逻辑,先干什么再干什么,记住框架就学得很快,也从示例代码里感觉到一个很简单的代码就能够实现一些很有用的功能,判断一些烦杂的事情,很有用。2. 在类定义外部定义方法,然后把方法赋值给类的属性---这是一种动态方法,常在装饰器中使用,可以再外部修改类的方法。类也有修饰器,他的逻辑类似:接收一个类,返回一个修改后的类。类方法的定义:内部定义和外部定义。
2025-06-13 08:31:15
399
原创 python训练Day 28 类的定义和方法
类是对属性和方法的封装,可以理解为模板,通过对模板实例化可以实现调用这个类的属性和方法。比如创建一个随机森林类,然后就可以调用他的训练和预测方法。
2025-06-12 22:48:49
915
原创 python训练Day 27 函数专题2:装饰器
display_time:它接收一个函数 func`作为参数,并返回 wrapper 函数。2.
2025-06-11 19:19:59
642
原创 python 训练 Day 26 函数专题1:函数定义与参数
函数的基本写法:Docstring: 描述函数的功能、参数和返回值 (可选但强烈推荐)# 函数体: 实现功能的代码# ...return value # 可选,用于返回结果- def: 关键字,表示开始定义一个函数。- function_name: 函数的名称,应遵循Python的命名约定(通常是小写字母和下划线,例如 calculate_area,用英文单词含义和下划线来作为函数名)。
2025-06-11 10:03:07
588
原创 python训练Day25 异常处理
常会出现的try-except的异常处理模块大部分大模型在后训练阶段都是经过强化学习训练的,为了确保结果的正确运行,只有采取 try-except的异常处理模块才能提高模型运行成功的概率。但是日常写代码的时候,大概率不会采取这些写法。所以我们要适应ai的写法。
2025-06-09 22:59:19
610
原创 python训练Day24 元组和OS模块
然后继续深入它的子目录 (`processed` -> `raw`)。只有当 `data` 分支下的所有内容都被访问完毕后,它才会回到 `my_project` 这一层,去访问下一个子目录 (`src`),并对 `src` 分支重复深度优先的探索。当前访问目录 (dirpath): my_project/src # <--- 回溯到 my_project,然后深入到 src。当前访问目录 (dirpath): my_project/data/raw # <--- 回溯到 data,然后深入到 raw。
2025-06-08 23:01:52
906
原创 python训练day23 管道
转换器(transformer)是一个用于对数据进行预处理和特征提取的 estimator,它实现一个 transform 方法,用于对数据进行预处理和特征提取。因此,估计器需要在训练集上进行训练,并使用训练得到的模型参数对新数据进行预测。在pipeline中,每个估计器都实现了fit和transform方法,fit方法用于训练模型,transform方法用于对数据进行预处理和特征提取。在机器学习中,通常会按照一定的顺序对数据进行预处理、特征提取、模型训练和模型评估等步骤,以实现机器学习模型的训练和评估。
2025-06-07 16:50:18
517
原创 python训练day20 奇异值SVD分解
推荐系统:在协同过滤算法中,用户-物品评分矩阵通常是稀疏且高维的。SVD (或其变种如 FunkSVD, SVD++) 可以用来分解这个矩阵,发现潜在因子 (latent factors),从而预测未评分的项。这里其实属于特征降维的部分。数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高,但图像质量损失越大)降噪:通常噪声对应较小的奇异值。通过丢弃这些小奇异值并重构矩阵,可以达到一定程度的降噪效果。特征降维:对高维数据减小计算量、可视化。
2025-06-04 22:18:21
293
原创 python训练day19 常见的特征筛选算法
核心逻辑是:计算每个特征与目标变量之间的相关系数(范围在-1到1之间,值越大表示正相关越强,值越小表示负相关越强,接近0表示几乎无关),然后根据相关系数的绝对值大小,选择与目标变量相关性较高的特征,剔除相关性较低的特征。从n个特征中筛选出m个特征,比如方差筛选,剔除方差过小的特征;因此,方差筛选会设定一个方差阈值,剔除方差低于这个阈值的特征,保留那些变化较大的特征,从而减少特征数量,提高模型效率。核心逻辑是:特征的方差反映了数据的变化程度,方差很小的特征几乎没有变化,对模型的预测帮助不大。
2025-06-03 22:12:22
298
原创 python训练day18 推断聚类后簇的类型
2. 最开始用全部特征来聚类,把其余特征作为 x,聚类得到的簇类别作为标签构建监督模型,进而根据重要性筛选特征,来确定要根据哪些特征赋予含义。给这个簇赋予实际的含义,一般当你赋予实际含义的时候,你需要根据某几个特征来赋予,但是源数据特征很多,如何选择特征呢?需要选择一些特征来进行聚类,最后确定簇含义的特征就是这几个特征,而非全部。1. 最开始聚类的时候,就选择最后用来确定簇含义的特征。----适用于你本身就有构造某些明确含义的特征的情况。推断簇含义的2个思路:先选特征和后选特征。通过精度判断特征工程价值。
2025-06-02 23:12:42
282
原创 python训练day14 shap图绘制
2. 特征 A 的边际贡献:对于**每一个特征组合,比较“包含特征 A 的组合的预测值”与“不包含特征 A 但包含其他相同特征的组合的预测值”之间的差异。列表的第 `k` 个元素是一个 `(n_samples, n_features)` 的数组,表示所有样本的所有特征对预测类别 `k`的贡献。`shap_values[k][i, j]` 代表第 `i` 个样本的第 `j` 个特征对该样本预测类别 `k`的贡献。shap_values :一维数组,长度需要和特征数量一致,代表每个特征对预测结果的贡献。
2025-05-29 21:46:53
747
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人