- 博客(12)
- 收藏
- 关注
原创 batchsize和epoch的关系
是两个关键的超参数,它们决定了模型如何学习和更新参数。意味着模型在 1 个 Epoch 内需要进行 312 次参数更新。在深度学习训练过程中,
2025-02-07 21:26:34
1117
原创 BN是做了线性变换,和加一个线性层有什么区别?
BN 是一种正则化方法,用于标准化网络中每一层的输出,从而加速训练并提高模型的稳定性。它对输入数据进行线性变换和标准化,但它的目的是解决深度网络训练中的问题,如梯度消失或梯度爆炸。
2025-01-14 19:55:36
897
原创 为什么加了batch norm收敛时间变短
缓解内部协变量偏移,稳定输入分布。稳定梯度,避免梯度消失或爆炸。提供正则化效果,减少过拟合。允许使用更大的学习率。减少对参数初始化的依赖。这些机制共同作用,使得模型训练更加稳定和高效,从而显著缩短收敛时间。
2025-01-13 23:53:14
456
原创 GAN的详解
定义了训练的批次大小、生成器输入噪声的维度、图像展平后的大小、训练的轮数以及学习率等重要参数。# 生成器网络结构定义# 判别器网络结构定义分别定义了生成器和判别器的网络结构,都是由多个全连接层以及激活函数组成,生成器从随机噪声生成图像,判别器判断输入图像是真还是假。创建生成器和判别器的实例,选择二元交叉熵损失函数(BCELoss),并分别为生成器和判别器定义Adam优化器。
2025-01-02 23:17:36
726
原创 ROS2中launch文件里的IncludeLaunchDescription、PythonLaunchDescriptionSource用法
在ROS 2中,launch文件 用于配置和启动多个节点、参数以及其他资源,通常以Python或XML格式编写。在launch文件中,IncludeLaunchDescription 和 PythonLaunchDescriptionSource 是用来 嵌套和复用其他launch文件 的功能,下面详细介绍它们的用法和用例。1. IncludeLaunchDescription 用法功能IncludeLaunchDescription 允许你在一个launch文件中嵌入或调用另一个launch文件
2024-12-17 17:09:57
626
原创 ROS2中launch文件的Node用法
Node是 ROS 2 launch 文件中的核心元素,用于配置和启动节点。支持多种参数,如packageexecutableparameters和remappings。可通过 Python 或 XML 编写 launch 文件,根据需求灵活配置节点。C++ 节点:通过配置和编译生成可执行文件,最终放在目录下。Python 节点:通过setup.py安装并注册为可执行脚本,最终也位于。executable参数在 launch 文件中指定的是可执行文件的名称,ROS 2 会自动在指定包的。
2024-12-17 16:09:39
1465
原创 ROS2的launch文件中的LaunchConfiguration的用法
在中,是在启动文件(Launch Files)中用于动态配置参数、节点选项等的一种机制。通过使用,你可以在运行时或在启动文件中灵活地调整参数,而无需手动修改代码。以下是详细讲解的用法,包括概念、实例和最佳实践。
2024-12-17 15:30:14
636
原创 怎么理解池化层可以缓解卷积层对位置的敏感性?
池化层通过下采样的方式实现特征的空间压缩,减少了对具体位置的依赖,同时保留了特征的主要信息,从而缓解了卷积层对位置的敏感性。这种特性使得卷积神经网络在处理具有形变、噪声或位移的输入数据时更加鲁棒。
2024-12-13 00:33:04
294
原创 卷积层图像特征提取原理
卷积层能够通过局部感受野、参数共享、以及层次化的特征提取来有效捕捉图像中的重要特征,从而帮助深度神经网络理解图像内容。通过不断的卷积操作,网络能够逐步从简单的低级特征构建出复杂的高级特征,这使得卷积神经网络(CNN)在计算机视觉任务中表现出色。
2024-12-10 10:27:16
1174
原创 如何避免过拟合?如何避免梯度消失和梯度爆炸?
避免过拟合通常需要综合使用多个策略,不同的方法针对不同的场景和数据类型可能会有不同的效果。实践中,通常从增加数据、正则化和简化模型这几方面入手,然后结合交叉验证和早停等技术进行调优。要避免梯度消失和梯度爆炸问题,可以从以下几个方面入手:1. 选择合适的激活函数(ReLU系列)。2. 使用正确的权重初始化方法(如Xavier、He初始化)。3. 在需要时进行梯度裁剪。4. 采用批归一化来标准化输入。5. 采用自适应优化器(如Adam)。
2024-12-08 14:52:17
1011
原创 为什么权重不能初始化为常数?
如果网络中的所有神经元的权重初始化为相同的常数(如0),每个神经元的输出将是一样的。如果所有权重都初始化为相同的常数值,那么在反向传播过程中,所有的神经元会收到相同的梯度更新。假设激活函数是Sigmoid或ReLU等,如果权重初始化得过于一致,所有的神经元可能会进入激活函数的饱和区间(例如Sigmoid的输出会集中在0和1之间),这将导致梯度变得非常小,进而导致梯度消失,影响训练效果。如果初始化所有的权重为相同的常数值,优化过程中的权重更新会趋于相同,算法无法有效地通过不同的路径来找到全局最优解。
2024-12-08 14:17:16
289
原创 我们创建好网络之后torch是按什么规则给参数初始化的?
在 PyTorch 中,神经网络层(如 `nn.Linear`、`nn.Conv2d` 等)有默认的初始化方法,通常是基于 Xavier 初始化(`nn.init.xavier_*`)或 He 初始化(`nn.init.kaiming_*`),它们能够帮助模型更好地训练和收敛。- 对于自定义网络,我们可以根据需求手动选择初始化方法,也可以选择不同的 `torch.nn.init` 函数来调整权重的初始化策略。
2024-12-08 14:13:11
908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人