- 博客(51)
- 收藏
- 关注
原创 神经网络-Day50
在更理想的情况下,如果能让 attention 图的值都趋近于 sigmoid 函数的反函数中对应输出为1的值,那么CBAM就近似于一个“直通车”(x * 1 = x),网络可以选择“忽略”它。BasicBlock 的设计者何恺明博士等人提出了一个绝妙的想法:与其让网络层直接学习一个目标映射 H(x),不如让它学习这个映射与输入 x 之间的“差值”,即残差(Residual)F(x) = H(x) - x。我们知道,加载预训练模型的时候,需要加载好预训练的模型架构,然后加载预训练的权重。
2025-06-10 22:12:07
997
原创 神经网络-Day46
注意力机制,本质从onehot-elmo-selfattention-encoder-bert这就是一条不断提取特征的路。各有各的特点,也可以说由弱到强。其中注意力机制是一种让模型学会「选择性关注重要信息」的特征提取器,就像人类视觉会自动忽略背景,聚焦于图片中的主体(如猫、汽车)。transformer中的叫做自注意力机制,他是一种自己学习自己的机制,他可以自动学习到图片中的主体,并忽略背景。我们现在说的很多模块,比如通道注意力、空间注意力、通道注意力等等,都是基于自注意力机制的。
2025-06-06 21:51:54
1316
原创 神经网络-Day45
在神经网络训练中,为了帮助理解,借用了很多的组件,比如训练进度条、可视化的loss下降曲线、权重分布图,运行结束后还可以查看单张图的推理效果。如果现在有一个交互工具可以很简单的通过按钮完成这些辅助功能那就好了。所以现在介绍下tensorboard这个可视化工具,他可以很方便的很多可视化的功能,尤其是他可以在运行过程中实时渲染,方便我们根据图来动态调整训练策略,而不是训练完了才知道好不好。TensorBoard 是 TensorFlow 生态中的官方可视化工具(也可无缝集成 PyTorch),用于实时监控训练
2025-06-05 23:28:57
1480
2
原创 神经网络-Day42
这种形式很简约,只需要一行就可以定义一个函数,lambda 的核心价值在于用极简语法快速定义临时函数,避免为一次性使用的简单逻辑单独命名函数,从而减少代码冗余,提升开发效率。Hook 函数是一种回调函数,它可以在不干扰模型正常计算流程的情况下,插入到模型的特定位置,以便获取或修改中间层的输出或梯度。前向钩子是一个函数,它会在模块的前向传播完成后立即被调用。装饰器实现核心是修改原始函数的行为,在其基础上添加额外功能,控制流:被装饰函数 → 原始计算 → 回调函数,适合统一的、可复用的处理逻辑。
2025-06-01 21:42:01
1175
原创 神经网络-Day40
批量维度不变性:无论进行flatten、view还是reshape操作,第一个维度batch_size通常保持不变。动态维度指定:使用-1让PyTorch自动计算该维度的大小,但需确保其他维度的指定合理,避免形状不匹配错误。
2025-05-30 17:17:08
1418
1
原创 神经网络-Day39
昨天介绍了minist这个经典的手写数据集,作为图像数据,相较于结构化数据(表格数据)他的特点在于他每个样本的的形状并不是(特征数,),而是(宽,高,通道数)。# 先继续之前的代码from torch.utils.data import DataLoader , Dataset # DataLoader 是 PyTorch 中用于加载数据的工具。
2025-05-29 16:59:19
576
原创 神经网络-Day38
维度DatasetDataLoader核心职责定义“数据是什么”和“如何获取单个样本”定义“如何批量加载数据”和“加载策略”核心方法(获取单个样本)、__len__(样本总数)无自定义方法,通过参数控制加载逻辑预处理位置在中通过transform执行预处理无预处理逻辑,依赖Dataset返回的预处理后数据并行处理无(仅单样本处理)支持多进程加载(典型参数root(数据路径)、transform(预处理)batch_sizeshuffle核心结论Dataset类:定义数据的内容和格式。
2025-05-28 16:46:48
706
原创 神经网络-Day37
实际上,在早停策略中,保存 checkpoint(检查点) 是更优选择,因为它不仅保存了模型参数,还记录了训练状态(如优化器参数、轮次、损失值等),一但出现了过拟合,方便后续继续训练。同时每隔固定的训练轮次都会保存模型参数,下次可以接着这里训练,缩小训练的范围。如果可以监控验证集的指标不再变好,此时提前终止训练,避免模型对训练集过度拟合。----监控的对象是验证集的指标。深度学习中模型的保存与加载主要涉及参数(权重)和整个模型结构的存储,同时需兼顾训练状态(如优化器参数、轮次等)以支持断点续训。
2025-05-27 21:38:35
818
原创 神经网络学习-Day34
self.fc1是一个实例化的对象,为什么具备了函数一样的用法,这是因为nn.Linear继承了nn.Module类,nn.Module类中定义了__call__方法。可以注意到,self.fc1 = nn.Linear(4, 10) 此时,是实例化了一个nn.Linear(4, 10)对象,并把这个对象赋值给了MLP的初始化函数中的self.fc1变量。这需要你进一步理解二者的区别,深度学习项目的运行时长往往很长,如果只停留在跑通的层面,那是不够的。实际上,这并非本质的原因。
2025-05-24 17:59:03
805
原创 Python基础学习-Day32
大多数 Python 库都会有官方文档,里面包含了函数的详细说明、用法示例以及版本兼容性信息。面对一个全新的官方库,是否可以借助官方文档的写法了解其如何使用。我们以pdpbox这个机器学习解释性库来介绍如何使用官方文档。在官方文档中搜索函数名,然后查看函数的详细说明和用法示例。一般通过github仓库都可以找到对应的官方文档那个。
2025-05-22 23:20:53
453
原创 Python基础学习-Day24
随着深度学习项目变得越来越大、数据量越来越多、代码结构越来越复杂,你会越来越频繁地用到 os 模块来管理文件、目录、路径,以及进行一些基本的操作系统交互。虽然深度学习的核心在于模型构建和训练,但数据和模型的有效管理是项目成功的关键环节,而 os 模块为此提供了重要的工具。简单来说,一个可迭代对象就是指那些能够一次返回其成员(元素)的对象,让你可以在一个循环(比如 for 循环)中遍历它们。os.walk() 是 Python os 模块中一个非常有用的函数,它用于遍历(或称“行走”)一个目录树。
2025-05-14 22:16:34
669
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人