- 博客(7)
- 收藏
- 关注
原创 Python装饰器和模型注册方法
在深度学习中,有这样的场景:设计了一个框架,但是其中某些模块可以使用多种模型,例如,在文本和图像的对比学习的框架中,文本和图像的编码器可以用基于CNN的网络或基于Transformer的网络等。按照传统的方法,如果需要替换这些模块,需要直接修改代码,这样比较麻烦,而且不是一种很好的交互方式。我们希望在输入初始化参数时就指定好这些模块用到的网络,并且还需要有良好的可拓展性。一种解决方法是利用Python装饰器实现“模型注册器”,在初始化时就自动生成一个“模型字典”,初始化时根据名称就可以直接调用。
2025-02-13 15:58:21
453
原创 显著性图Saliency Maps原理及绘制
Saliency Maps显著性图,是一种用于解释深度学习模型(尤其是卷积神经网络)决策的可视化技术。它通过生成一张热力图来展示图像中哪些区域对模型的预测结果贡献最大。通过系统地扰动(遮挡或修改)输入图像的某些区域,观察模型输出的变化。如果某个区域被扰动后模型的输出发生显著变化,说明该区域对模型的决策很重要。这种方法认为,高梯度区域对模型的输出影响较大,因此在显著性图中会显得更“亮”。计算模型输出相对于输入图像的梯度来获得显著性图。Saliency Maps的核心思想是通过计算。
2025-01-04 16:10:42
878
原创 GradCAM原理及代码
利用深度学习方法对数据进行分析时,在得到结果的同时还需要对算法进行可解释性分析。在分类任务中,GradCAM比较常用(它通过生成热力图来展示模型在做出特定类别预测时关注的区域,从而提供模型决策过程的可视化解释。
2025-01-03 21:53:19
1517
原创 交叉熵损失函数
交叉熵损失函数是一种在分类问题中常用的损失函数,它衡量的是模型输出的概率分布与真实标签的概率分布之间的差异。在初学时,仅仅通过调包实现交叉熵损失的计算,对其背后的概念和计算原理认识比较模糊。而各种”熵“的概念在深度学习算法中有非常广泛的用途。这里参考了一些教程,重新梳理一遍交叉熵这个概念,并提供了实现代码。
2025-01-02 11:01:10
1308
原创 PyTorch中卷积模块
参数做到的,传统卷积中,卷积核与所有通道的元素做点乘再相加,做到了所有通道信息的融合,而分组卷积是将输入特征图在特征通道维度分成多组,每一组用一组卷积进行运算,然后拼接在一起,这样做减少了计算量和参数量,但是不同组通道的信息相互独立。提供一个四元组:会分别对应于(上、下、左、右),例如,padding=(1,1,2,2),会在上边界添加一个元素,在下边界添加一个元素,在左边界添加两个元素,右边界添加两个元素。也就是说,原本一个卷积核的参数量,产生了两个通道的输出特征图,之前需要。:控制卷积核点之间的空间。
2024-12-01 16:50:23
2171
原创 MAE原理及关键代码解读
每个掩码token都是一个共享的、可学习的向量,表示了对一个确实patch的预测,另外对所有tokens增加了位置编码,如果没有位置编码掩码token就不知道自己在图像中的位置。编码器没有对完整的图像进行训练,因此,这样训练出来的编码器不需要大量的计算和存储,就能够做得很大。与传统自编码器不同,这里采用了一种非对称设计,编码器只能对可观测的部分进行操作(不包含mask tokens),一个轻量化的解码器可以从隐层空间和掩码部分重建完整的信号。和ViT一样,我们把图像分割成常规的,没有重叠的patches。
2024-11-24 22:04:51
1850
原创 Wasserstein GAN
Wasserstein GAN(简称WGAN)提出了一种Wasserstein损失,为了解决传统GAN训练中存在的一些问题,如训练不稳定和模式崩溃等。从上一节可以看出,判别器主要是为了能准确识别出源域和目标域,也就是最大化二者的Wasserstein距离,即。真实样本的得分应该尽可能高,生成样本的得分应尽可能低,最大化二者分数的差异。,这个公式的包括两个部分,首先是两个分布的距离要大,第二是对判别器有一个约束。在WGAN中,1-Lipchitz性是通过梯度惩罚实现的。
2024-11-21 21:55:46
2010
空空如也
模块嵌套引起的神经网络维度错误
2024-11-28
使用stable diffusion(sdxl-turbo)时遇到报错
2024-11-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人