- 博客(50)
- 收藏
- 关注
原创 6.11 打卡
ps:今日的代码训练时长较长,3080ti大概需要40min的训练时长。DAY 50 预训练模型+CBAM模块。尝试对vgg16+cbam进行微调策略。好好理解下resnet18的模型结构。针对预训练模型的训练策略。CBAM放置位置的思考。resnet结构解析。
2025-06-11 12:06:19
378
原创 6.9 打卡
卷积和池化的计算公式(可以不掌握,会自动计算的)ps:numpy运算也有类似的广播机制,基本一致。pytorch的广播机制:加法和乘法的广播机制。随机张量的生成:torch.randn函数。自己多借助ai举几个例子帮助自己理解即可。DAY 48 随机函数与广播机制。
2025-06-09 12:38:02
147
原创 6.7 打卡
目前我们终于接触到了模块,模块本质上也是对特征的进一步提取,整个深度学习就是在围绕特征提取展开的,后面会是越来越复杂的特征提取和组合步骤。什么是注意力:注意力家族,类似于动物园,都是不同的模块,好不好试了才知道。新增八股部分,在本讲义目录中可以看到----用问答的形式记录知识点。为了保证收敛方便对比性能,今日代码训练轮数较多,比较耗时。我这里列出来的是通道注意力中的一种,SE注意力。不同CNN层的特征图:不同通道的特征图。通道注意力:模型的定义和插入的位置。通道注意力后的特征图和热力图。
2025-06-07 21:30:52
267
原创 6.6 打卡
实际上对目前的ai而言,你只需要先完成最简单的demo,然后让他给你加上tensorboard需要打印的部分即可。---核心是弄懂tensorboard可以打印什么信息,以及如何看可视化后的结果,把ai当成记忆大师用到的时候通过它来调取对应的代码即可。tensorboard的代码还有有一定的记忆量,实际上深度学习的经典代码都是类似于八股文,看多了就习惯了,难度远远小于考研数学等需要思考的内容。tensorboard和torch版本存在一定的不兼容性,如果报错请新建环境尝试。
2025-06-06 12:34:45
136
原创 6.4 打卡
尝试在cifar10对比如下其他的预训练模型,观察差异,尽可能和他人选择的不同。尝试通过ctrl进入resnet的内部,观察残差究竟是什么。预训练代码实战:resnet18。DAY 44 预训练模型。图像预训练模型的发展史。常见的分类预训练模型。
2025-06-04 17:00:47
231
原创 5.31 打卡
Flatten -> Dense (with Dropout,可选) -> Dense (Output)1. 输入 → 卷积层 → Batch归一化层(可选) → 池化层 → 激活函数 → 下一层。如果之前没有学习过复试班强化班中的计算机视觉部分,请自行上网检索视频了解下基础概念。尝试手动修改下不同的调度器和CNN的结构,观察训练的差异。batch归一化:调整一个批次的分布,常用与图像数据。,也可以对照我提供的之前的讲义学习下。特征图:只有卷积操作输出的才叫特征图。这里相关的概念比较多,
2025-05-31 16:28:40
238
原创 5.30 打卡
仔细学习下测试和训练代码的逻辑,这是基础,这个代码框架后续会一直沿用,后续的重点慢慢就是转向模型定义阶段了。dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout。展平操作:除第一个维度batchsize外全部展平。彩色和灰度图片测试和训练的规范写法:封装在函数中。训练和测试的规范写法。
2025-05-30 12:11:17
204
原创 5.27 打卡
Dataset类的__getitem__和__len__方法(本质是python的特殊方法)了解下cifar数据集,尝试获取其中一张图片。minist手写数据集的了解。Dataloader类。
2025-05-27 21:55:11
252
原创 5.26 打卡
对信贷数据集训练后保存权重,加载权重后继续训练50轮,并采取早停策略。保存全部信息checkpoint,还包含训练状态。过拟合的判断:测试集和训练集同步打印指标。
2025-05-26 20:24:37
168
原创 5.25 打卡
对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。仔细回顾一下神经网络到目前的内容,没跟上进度的同学补一下进度。:尝试进入nn.Module中,查看他的方法。探索性作业(随意完成)
2025-05-25 16:57:04
223
原创 5.24 打卡
三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化。进度条功能:手动和自动写法,让打印结果更加美观。作业:调整模型定义时的超参数,对比下效果。DAY 35 模型可视化与推理。推理的写法:评估模式。
2025-05-24 18:44:02
318
原创 5.23 打卡
导致的同步开销,虽然每次都会发生,但其对总时长的影响并不是严格线性的,因为它涉及到 GPU 管道的刷新和 CPU 的等待,而不是每次同步都额外增加了等比例的计算量。GPU 自身在这些同步点之间可能依然高效地工作,从而使得总的“额外”等待时间相对稳定。其中,“固定的系统初始化/运行开销”是最大的组成部分,它不随记录次数变化。复习今天的内容,在巩固下代码。GPU训练的方法:数据和模型移动到GPU device上。CPU性能的查看:看架构代际、核心数、线程数。GPU性能的查看:看显存、看级别、看架构代际。
2025-05-23 14:14:57
168
原创 5.22 打卡
1. 分类任务中,若标签是整数(如 0/1/2 类别),需转为long类型(对应 PyTorch 的torch.long),否则交叉熵损失函数会报错。2. 回归任务中,标签需转为float类型(如torch.float32)。今日的代码,要做到能够手敲。这已经是最简单最基础的版本了。查看显卡信息的命令行命令(cmd中使用)数据预处理(归一化、转换成张量)PyTorch和cuda的安装。DAY 33 简单的神经网络。继承nn.Module类。定义损失函数和优化器。
2025-05-22 20:35:35
221
原创 5.21 打卡
参考pdpbox官方文档中的其他类,绘制相应的图,任选即可。官方文档的阅读和使用:要求安装的包和文档为同一个版本。官方文档的检索方式:github和官网。DAY 32 官方文档的阅读。绘图的理解:对底层库的调用。普通方法所需要的参数。
2025-05-21 19:56:20
166
原创 5.20 打卡
│ │ └── heart.csv # <-- 你的原始 heart.csv 文件应该放在这里。│ │ ├── preprocessing.py # 数据清洗、缺失值处理、编码、缩放。│ ├── config.py # 项目配置:路径、参数、特征列表等。│ │ ├── loading.py # 数据加载和分割。│ │ ├── training.py # 模型选择和训练。
2025-05-20 21:30:10
1803
原创 5.19 打卡
导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致):自己新建几个不同路径文件尝试下如何导入。DAY 30 模块和库的导入。导入自定义库/模块的方式。导入官方库的三种手段。
2025-05-19 20:18:46
252
原创 5.18 打卡
复习类和函数的知识点,写下自己过去29天的学习心得,如对函数和类的理解,对python这门工具的理解等,未来再过几个专题部分我们即将开启深度学习部分。函数是Python的核心组成部分,它让代码更模块化、可复用。类是面向对象编程(OOP)的核心,用于封装数据和行为。装饰器思想的进一步理解:外部修改、动态。类方法的定义:内部定义和外部定义。
2025-05-18 19:15:33
271
原创 5.17 打卡
calculate_perimeter():计算周长(公式:2×(长+宽))。is_square() 方法,判断是否为正方形(长 == 宽)。calculate_circumference():计算圆的周长(公式:2πr)。shape_type="rectangle":创建长方形(参数:长、宽)。calculate_area():计算圆的面积(公式:πr²)。shape_type="circle":创建圆(参数:半径)。calculate_area():计算面积(公式:长×宽)。
2025-05-17 15:24:11
280
原创 5.16 打卡
编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)装饰器的思想:进一步复用。注意内部函数的返回值。
2025-05-16 20:27:58
109
原创 5.15 打卡
编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。编写一个名为 calculate_average 的函数,该函数可以接收任意数量的数字作为参数(引入可变位置参数 (*args)),并返回它们的平均值。编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。函数的参数类型:位置参数、默认参数、不定参数。user_id 是一个必需的位置参数。
2025-05-15 20:32:58
434
原创 5.14 打卡
finally 子句中的代码无论 try 块中是否发生异常,也无论 except 块是否被执行,甚至无论 try 或 except 块中是否有 return 语句,它总会被执行。在ML/DL项目中,由于流程长、资源消耗大、外部依赖多,finally 提供的这种“保证执行”的机制对于构建稳定、可靠的系统至关重要。finally这个无论如何都会执行的特性,在机器学习和深度学习的中,多涉及资源的保存、文件的关闭等。1. 无论训练成功、失败还是中途被打断,都确保日志文件被正确关闭,避免数据丢失或文件损坏。
2025-05-14 20:00:30
225
原创 5.12 打卡
转换器(transformer)是一个用于对数据进行预处理和特征提取的 estimator,它实现一个 transform 方法,用于对数据进行预处理和特征提取。转换器的特点是无状态的,即它们不会存储任何关于数据的状态信息(指的是不存储内参)。估计器的主要方法是fit和predict。常见的转换器包括数据缩放器(如StandardScaler、MinMaxScaler)、特征选择器(如SelectKBest、PCA)、特征提取器(如CountVectorizer、TF-IDFVectorizer)等。
2025-05-12 21:10:24
1007
原创 5.10 打卡
或者让ai给你出题,群里的同学互相学习下。可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。:将高维数据映射到低维空间(如2D/3D),同时尽可能保留原始数据的结构信息。还有一些其他的降维方式,也就是最重要的词向量的加工,我们未来再说。还有一些其他的降维方式,也就是最重要的词向量的加工,我们未来再说。:先用PCA降至50维,再输入t-SNE(减少噪声和计算量)需要快速降维且数据呈线性分布(如人脸识别中的特征压缩)
2025-05-10 20:54:37
271
原创 5.9 打卡
对于任何矩阵(如结构化数据可以变为:样本*特征的矩阵,图像数据天然就是矩阵),均可做等价的奇异值SVD分解,对于分解后的矩阵,可以选取保留前K个奇异值及其对应的奇异向量,重构原始矩阵,可以通过计算Frobenius 范数相对误差来衡量原始矩阵和重构矩阵的差异。应用:结构化数据中,将原来的m个特征降维成k个新的特征,新特征是原始特征的线性组合,捕捉了数据的主要方差信息,降维后的数据可以直接用于机器学习模型(如分类、回归),通常能提高计算效率并减少过拟合风险。降噪:通常噪声对应较小的奇异值。
2025-05-09 21:30:37
177
原创 5.7 打卡
参考示例代码对心脏病数据集采取类似操作,并且评估特征工程后模型效果有无提升。推断簇含义的2个思路:先选特征和后选特征。科研逻辑闭环:通过精度判断特征工程价值。通过可视化图形借助ai定义簇的含义。聚类后的分析:推断簇的类型。
2025-05-07 21:41:51
167
原创 5.6 打卡
实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。DBSCAN 的参数是 eps 和min_samples,选完他们出现k和评估指标。除了经典的评估指标,还需要关注聚类出来每个簇对应的样本个数,避免太少没有意义。聚类常见算法:kmeans聚类、dbscan聚类、层次聚类。KMeans 和层次聚类的参数是K值,选完k指标就确定。以及层次聚类的 linkage准则等都需要仔细调优。选择合适的算法,根据评估指标调参( )
2025-05-06 21:17:25
178
原创 5.5 打卡
2 传入的 SHAP 值 (shap_values[:, :, 0]) 和特征数据 (X_test) 在维度上需要高度一致和对应。shap_values[:, :, 0] 的每一行代表的是 一个特定样本每个特征对于预测类别的贡献值(SHAP 值)。X_test 的每一行代表的也是同一个特定样本的特征值。这二者组合后,就可以组合(特征数,特征值,shap值)构成shap图的基本元素。因为前天说了shap,这里涉及到数据形状尺寸问题,所以需要在这一节说清楚,后续的神经网络我们将要和他天天打交道。
2025-05-05 13:06:31
234
原创 5.4 打卡
尝试找到一个kaggle或者其他地方的结构化数据集,用之前的内容完成一个全新的项目,这样你也是独立完成了一个专属于自己的项目。对于数据的认识,很重要的一点是,很多数据并非是为了某个确定的问题收集的,这也意味着一份数据你可以完成很多不同的研究,同一个问题,特征加工上,是否对数据进一步加工得出了新的结论-----你的加工被证明是有意义的。研究问题的选择上,同一个数据你找到了有意思的点,比如更换了因变量,做出了和别人不同的研究问题。数据的质量上,是否有好的研究主题但是你这个数据很难获取,所以你这个研究有价值。
2025-05-04 16:06:04
405
原创 5.3 打卡
尝试确定一下shap各个绘图函数对于每一个参数的尺寸要求,如shap.force_plot力图中的数据需要满足什么形状?确定分类问题和回归问题的数据如何才能满足尺寸,分类采取信贷数据集,回归采取单车数据集。今日作业偏思考类型,有一定难度。参考上述文档补全剩余的几个图。
2025-05-03 21:35:44
362
原创 5.2 打卡
不平衡数据集指的是数据集中不同类别的样本数量存在显著差异的情况,例如在一个二元分类问题中,正类样本可能只占总样本的 10%,而负类样本占 90%。过采样技术通过增加少数类别的样本数量,来平衡不同类别之间的样本分布,提高模型对少数类别的学习效果。2 修改权重:在处理类别不平衡的数据集时,标准机器学习算法(如默认的随机森林)可能会过度偏向多数类,导致对少数类的预测性能很差。随机过采样是最简单的过采样方法,它通过随机复制少数类别的样本,直到少数类别和多数类别的样本数量达到平衡。这个实验仍然有改进空间,如下。
2025-05-02 19:45:47
297
原创 5.1 打卡
随机生成一群粒子,每个粒子有各自行进路线,并记录自己得到的最优适应度,而最优的适应度作为当前团队最优解,之后每个粒子根据个体最优解、团队最优解以及运动惯性来决定后续行进方向。的思路为主,尝试检索资料、视频、文档,用尽可能简短但是清晰的语言看是否能说清楚这三种算法每种算法的实现逻辑,帮助更深入的理解。3)交叉:相邻两个个体之间进行交叉得到一个新的个体,新的适应度。2)选择:根据适应度优劣调整选择概率,适应度越好的越容易被选中成为子代。3)评估二者,如果新解优,则选择新解,若新解差,则以一定概率选择新解。
2025-05-01 20:06:42
162
原创 4.30 打卡
4 在机器学习中,交叉验证是一种评估模型性能的方法,它会将训练集进一步划分为多个子集,轮流将其中一个子集作为验证集,其余子集作为训练集进行训练和验证,以此来更全面地评估模型的泛化能力。当使用自带交叉验证的调参函数时,函数内部会自动完成模型在不同子集上的训练和验证过程,所以就不需要额外手动划分验证集了,只需要将原始数据集划分为训练集和测试集即可。3 测试集是在模型训练和调优完成后,用于评估模型的最终性能。- 需要定义参数的搜索空间,与随机搜索类似,当搜索空间非常大时,它通常比网格搜索和随机搜索更有效。
2025-04-30 21:54:47
372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅