- 博客(54)
- 收藏
- 关注
原创 Day 54
nn.ReLU(),return xinception网络有着很多变体,Inception v1版本就是 GoogLeNet,他还有v2到v4,还版本,还可以引入残差连接,如 Inception-ResNet-v2 在 ImageNet 上 top-1 准确率达 96.4%三、卷积核的变体3.1 感受野我们发现,经常会有不同尺寸的卷积核来在特征图上滑动进一步提取信息,那么卷积核的尺寸如何选取比较合适呢?在思考这个问题前,你需要理解下感受野的概念。
2025-06-18 12:06:35
462
原创 Day 53
作业:对于心脏病数据集,对于病人这个不平衡的样本用GAN来学习并生成病人样本,观察不用GAN和用GAN的F1分数差异。如果你学有余力,对于gan的损失函数的理解,建议去找找视频看看,如果只是用,没必要学。nn.sequential容器:适合于按顺序运算的情况,简化前向传播写法。leakyReLU介绍:避免relu的神经元失活现象。对抗生成网络的思想:关注损失从何而来。
2025-06-15 00:46:22
149
原创 Day 50
定义通道注意力"""通道注意力机制初始化参数:in_channels: 输入特征图的通道数ratio: 降维比例,用于减少参数量,默认为16"""# 全局平均池化,将每个通道的特征图压缩为1x1,保留通道间的平均值信息# 全局最大池化,将每个通道的特征图压缩为1x1,保留通道间的最显著特征# 共享全连接层,用于学习通道间的关系# 先降维(除以ratio),再通过ReLU激活,最后升维回原始通道数。
2025-06-15 00:36:05
269
原创 Day 49
cbam注意力CBAM 是一种能够集成到任何卷积神经网络架构中的注意力模块。它的核心目标是通过学习的方式,自动获取特征图在通道和空间维度上的重要性,进而对特征图进行自适应调整,增强重要特征,抑制不重要特征,提升模型的特征表达能力和性能。简单来说,它就像是给模型装上了 “智能眼镜”,让模型能够更精准地看到图像中关键的部分CBAM 由两个主要部分组成:通道注意力模块(Channel Attention Module)和空间注意力模块(Spatial Attention Module)。
2025-06-14 22:25:41
288
原创 Day 48
随机函数与广播机制知识点回顾1.随机张量的生成:torch.randn 函数2.卷积和池化的计算公式3.pytorch 的广播机制:加法和乘法的广播机制ps:numpy运算也有类似的广播机制,基本一致随机张量的生成在完成一些任务时需要生成一些张量,比如权重的初始化,或者计算输入纬度经过模块后输出的维度,都可以用一个随机函数来实现需要的张量格式。本文重点介绍torch.randn函数torch.randn函数。
2025-06-14 22:17:14
303
原创 Day 47
前面代码看前一天,这里是不同卷积层可视化注意力热图的代码。昨天代码中注意力热图的部分顺移至今天。作业:对比不同卷积层热图可视化的结果。
2025-06-14 22:12:22
138
原创 Day 46
从数学角度看,注意力机制是对输入特征进行加权求和,输出=∑(输入特征×注意力权重),其中注意力权重是学习到的。transformer中的叫做自注意力机制,他是一种自己学习自己的机制,他可以自动学习到图片中的主体,并忽略背景。我们现在说的很多模块,比如通道注意力、空间注意力、通道注意力等等,都是基于自注意力机制的。特征图本质上就是不同的卷积核的输出,浅层指的是离输入图近的卷积层,浅层卷积层的特征图通常较大,而深层特征图会经过多次下采样,尺寸显著缩小,尺寸差异过大时,小尺寸特征图在视觉上会显得模糊或丢失细节。
2025-06-14 00:35:18
285
原创 Day 44
迁移学习效率:预训练模型(如 ImageNet 上训练的 ResNet)的卷积层已经学习到了通用的图像特征(边缘、纹理、形状等)。在处理新任务(如 CIFAR-10 分类)时,可以利用这些已有知识,只训练最后的全连接层来适应新的分类标签,从而显著减少训练时间和数据需求。此时使用较低的学习率,防止破坏已经学习到的特征。第一阶段(前 5 个 epoch):冻结卷积层,只训练全连接层。尝试在cifar10对比如下其他的预训练模型,观察差异,尽可能和他人选择的不同。图像预训练模型的发展史。常见的分类预训练模型。
2025-06-14 00:21:35
180
原创 Day 43
(2)注意内存,可采取减小 batch_size 或使用更小的。(如 (128, 128))。(1)确保路径与代码中一致。Grad-CAM 可视化。加载测试图像并生成热力图。实现 Grad-CAM。
2025-06-13 23:58:13
186
原创 Day 42
模块钩子:就像是在餐厅的出菜口安装监控摄像头,每当有菜出来(前向传播结束)或订单完成(反向传播结束),钩子函数就会被触发,可以记录或修改菜品(特征图或梯度)。定义:lambda函数就像是厨房中的“快速调味料”,可以快速定义简单的匿名函数,不需要像普通函数那样写完整的def语句,特别适合简单的操作。张量钩子:类似于在食材上贴标签,当食材被使用(张量被访问或修改)时,钩子函数会被触发,可以记录或修改食材的状态(张量的值或梯度)。计算权重:根据记录的梯度计算每个特征图的权重,表示该特征图对最终分类结果的重要性。
2025-06-13 23:42:21
200
原创 Day 41
Flatten -> Dense (with Dropout,可选) -> Dense (Output)1. 输入 → 卷积层 → Batch归一化层(可选) → 池化层 → 激活函数 → 下一层。作业:尝试手动修改下不同的调度器和CNN的结构,观察训练的差异。batch归一化:调整一个批次的分布,常用与图像数据。特征图:只有卷积操作输出的才叫特征图。调度器:直接修改基础学习率。卷积神经网络定义的写法。
2025-06-13 23:32:21
320
原创 Day 40
知识点回顾:1.彩色和灰度图片测试和训练的规范写法:封装在函数中2.展平操作:除第一个维度batchsize外全部展平3.dropout操作:训练阶段随机丢弃神经元,测试阶段eval模式关闭dropout作业:仔细学习下测试和训练代码的逻辑,这是基础,这个代码框架后续会一直沿用,后续的重点慢慢就是转向模型定义阶段了。DAY 40昨天介绍了图像数据的格式以及模型定义的过程,发现和之前结构化数据的略有不同,主要差异体现在2处模型定义的时候需要展平图像。
2025-06-04 23:19:00
830
原创 Day 38
DAY 38 Dataset和Dataloader类知识点回顾:Dataset类的__getitem__和__len__方法(本质是python的特殊方法)Dataloader类minist手写数据集的了解作业:了解下cifar数据集,尝试获取其中一张图片Dataset类的__getitem__和__len__方法(本质是python的特殊方法)在遇到大规模数据集时,显存常常无法一次性存储所有数据,所以需要使用分批训练的方法。
2025-05-29 23:07:37
451
原创 Day 35
模型可视化与推理知识点回顾:三种不同的模型可视化方法:推荐torchinfo打印summary+权重分布可视化进度条功能:手动和自动写法,让打印结果更加美观推理的写法:评估模式模型结构可视化理解一个深度学习网络最重要的2点:1. 了解损失如何定义的,知道损失从何而来----把抽象的任务通过损失函数量化出来2. 了解参数总量,即知道每一层的设计---层设计决定参数总量为了了解参数总量,我们需要知道层设计,以及每一层参数的数量。
2025-05-27 23:30:15
1652
原创 Day 33
定义一个简单的全连接神经网络模型,包含一个输入层、一个隐藏层和一个输出层。定义层数+定义前向传播顺序class MLP(nn.Module): # 定义一个多层感知机(MLP)模型,继承父类nn.Moduledef __init__(self): # 初始化函数super(MLP, self).__init__() # 调用父类的初始化函数# 前三行是八股文,后面的是自定义的self.fc1 = nn.Linear(4, 10) # 输入层到隐藏层。
2025-05-27 21:38:14
528
原创 Day 32
作业:参考pdpbox官方文档中的其他类,绘制相应的图,任选即可。2.官方文档的阅读和使用:要求安装的包和文档为同一个版本。1.官方文档的检索方式:github和官网。4.绘图的理解:对底层库的调用。普通方法所需要的参数。
2025-05-27 20:50:09
170
原创 Day 30
------------------------------------------------ 相关概念辨析一下 ------------------------------------------------------核心特征:包的根目录下必须包含一个 `__init__.py` 文件(可以为空),用于标识该目录是一个包。导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)场景:要导入的模块位于完全不同的目录层级(如父目录、兄弟目录等)
2025-05-27 20:13:05
574
原创 Day 29
我们之前是用复用的思想来看装饰器的,换一个角度理解,当你想修改一个函数的时候,可以通过装饰器方法来修改而无需重新定义这个函数。装饰器本质就是一个语法糖,对类而言:@decorator 语法只是 MyClass = decorator(MyClass) 的简写,即使类已定义,仍可手动调用装饰器函数修改它。在类定义外部定义方法,然后把方法赋值给类的属性—这是一种动态方法,常在装饰器中使用,可以再外部修改类的方法。通过类装饰器,可以在不修改类内部代码的情况下,为多个类统一添加功能(如日志、统计)
2025-05-19 23:25:46
347
原创 Day 28
calculate_circumference():计算圆的周长(公式:2πr)。calculate_perimeter():计算周长(公式:2×(长+宽))。shape_type="rectangle":创建长方形(参数:长、宽)。calculate_area():计算圆的面积(公式:πr²)。is_square() 方法,判断是否为正方形(长 == 宽)。shape_type="circle":创建圆(参数:半径)。calculate_area():计算面积(公式:长×宽)。
2025-05-19 23:20:39
307
原创 Day 27
func.__name__ :按照pep8的约定,在一个变量前后都加上两个下划线代表着这是一个Python内置的变量,是自动创建的。作用返回 func 的名称更详细的可以问AI。编写一个装饰器 logger,在函数执行前后打印日志信息(如函数名、参数、返回值)
2025-05-17 13:59:30
223
原创 Day 26
● 任务: 编写一个名为 describe_shape 的函数,该函数接收图形的名称 shape_name (必需),一个可选的 color (默认 “black”),以及任意数量的描述该图形尺寸的关键字参数 (例如 radius=5 对于圆,length=10, width=4 对于矩形)。● 任务: 编写一个名为 print_user_info 的函数,该函数接收一个必需的参数 user_id,以及任意数量的额外用户信息(作为关键字参数)。3. 函数的参数类型:位置参数、默认参数、不定参数。
2025-05-17 13:51:19
683
原创 Day 25
如果找到匹配的,则执行该 except 块中的代码,然后继续执行整个 try-except 结构之后的代码(除非 except 块中又引发了新异常或执行了 return/break/continue 等)。如果 try 失败:try 块中出错前的代码会执行,然后匹配的 except 块的代码会执行(else 块不会执行)。except: 如果try块中的代码确实引发了特定类型的异常(或者任何异常,如果未指定类型),则执行此代码块。else: (可选)如果try块中的代码没有发生任何异常,则执行此代码块。
2025-05-17 12:14:27
890
原创 Day 24
作业:理解今日的内容即可,可以检查自己过去借助ai写的代码是否带有try-except机制,以后可以尝试采用这类写法增加代码健壮性。在即将进入深度学习专题学习前,我们最后差缺补漏,把一些常见且重要的知识点给他们补上,加深对代码和流程的理解。try-except-else-finally机制。debug过程中的各类报错。try-except机制。
2025-05-17 12:07:51
123
原创 Day 23
整理下全部逻辑的先后顺序,看看能不能制作出适合所有机器学习的通用pipeline。将 Pipeline 分解为可插拔的组件,按需启用或禁用,由于本人水平有限,一下部分内容出自deepseek。通过参数化选择模型和超参数。根据数据类型动态预处理方法。方案三:自动特征类型识别。方案二:动态配置模型。
2025-05-17 11:59:14
210
原创 Day 21
自由作业:探索下什么时候用到降维?或者让ai给你出题,群里的同学互相学习下。可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。还有一些其他的降维方式,也就是最重要的词向量的加工,我们未来再说。
2025-05-11 22:55:22
167
原创 Day 19
因此,方差筛选会设定一个方差阈值,剔除方差低于这个阈值的特征,保留那些变化较大的特征,从而减少特征数量,提高模型效率(值得注意的是,方差筛选只需要特征数据即可筛选,是无监督筛选,不像其他筛选算法)答:第一次创建 rf_selector 是专门用于特征重要性评估,传入的是原始的 x_train,第二次创建 rf_model_rf 是用筛选后的特征训练最终预测模型,传入的是筛选后的 x_train_rf,让特征选择和最终模型实现了隔离,避免数据泄露。2. 特征组合:从n个特征中组合出m个特征,如pca等。
2025-05-10 23:38:14
623
原创 Day20
知识点回顾:线性代数概念回顾(可不掌握)奇异值推导(可不掌握)奇异值的应用特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高,但图像质量损失越大)降噪:通常噪声对应较小的奇异值。通过丢弃这些小奇异值并重构矩阵,可以达到一定程度的降噪效果。推荐系统:在协同过滤算法中,用户-物品评分矩阵通常是稀疏且高维的。
2025-05-10 00:17:06
376
原创 Day 17
实际在论文中聚类的策略不一定是针对所有特征,可以针对其中几个可以解释的特征进行聚类,得到聚类后的类别,这样后续进行解释也更加符合逻辑。DBSCAN 的参数是 eps 和min_samples,选完他们出现k和评估指标。除了经典的评估指标,还需要关注聚类出来每个簇对应的样本个数,避免太少没有意义。聚类常见算法:kmeans聚类、dbscan聚类、层次聚类。KMeans 和层次聚类的参数是K值,选完k指标就确定。以及层次聚类的 linkage准则等都需要仔细调优。选择合适的算法,根据评估指标调参( )
2025-05-10 00:02:41
117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人