Yolov3参数理解

1.yolov3-voc.cfg(参考很多文章写的汇总,有些写了但还是不是很懂,如果有误请及时指正)

[net]
# Testing                                  测试模式
# batch=1
# subdivisions=1
# Training                                 训练模式
 batch=64                                  一批训练样本的样本数量,每batch个样本更新一次参数
 subdivisions=16                           batch/subdivisions作为一次性送入训练器的样本数量,如果内存不够大,将batch分割为subdivisions个子batch

										   上面这两个参数如果电脑内存小,则把batch改小一点,batch越大,训练效果越好
										   subdivisions越大,可以减轻显卡压力
										   
										   
width=416                                  input图像的宽
height=416                                 input图像的高
channels=3                                 input图像的通道数

                                           以上三个参数为输入图像的参数信息 width和height影响网络对输入图像的分辨率,
					                       从而影响precision,只可以设置成32的倍数
										   
										   
momentum=0.9                               [?]DeepLearning1中最优化方法中的动量参数,这个值影响着梯度下降到最优值得速度https://nanfei.ink/2018/01/23/YOLOv2%E8%B0%83%E5%8F%82%E6%80%BB%E7%BB%93/#more


decay=0.0005                               [?]权重衰减正则项,防止过拟合.每一次学习的过程中,将学习后的参数按照固定比例进行降低,为了防止过拟合,decay参数越大对过拟合的抑制能力越强。


angle=0                                    通过旋转角度来生成更多训练样本
saturation = 1.5                           通过调整饱和度来生成更多训练样本
exposure = 1.5                             通过调整曝光量来生成更多训练样本
hue=.1                                     通过调整色调来生成更多训练样本



learning_rate=0.001
### YOLOv3 参数规模与数量 YOLOv3 是一种高效的实时目标检测算法,在其设计中引入了多个创新点来提升性能和速度。以下是关于 YOLOv3参数规模及其构成的详细介绍。 #### 参数规模概述 YOLOv3 使用 Darknet-53 作为骨干网络,该网络由一系列卷积层组成,不包含任何池化操作[^4]。Darknet-53 的结构使得它能够提取更丰富的特征,同时保持较低的计算复杂度。整个模型的参数总数约为 **27M (27 Million)** 左右[^5]。这些参数主要分布在以下几个部分: 1. **Darknet-53 骨干网络** - Darknet-53 包含 53 层卷积层,每层卷积都会增加一定的参数量。 - 卷积核大小通常为 \(3 \times 3\) 或 \(1 \times 1\),通道数逐渐增大以捕获更高层次的语义信息。 - 这些卷积层贡献了大部分的参数,大约占总参数的 90%以上。 2. **检测头 (Detection Heads)** - YOLOv3 在三个不同的尺度上进行预测,每个尺度都有独立的检测头。 - 每个检测头通过几个额外的卷积层生成最终的边界框预测结果。 - 这些检测头的参数相对较少,但由于存在三组类似的结构,因此也占据了一定比例的参数总量。 3. **其他辅助模块** - 如批量归一化 (Batch Normalization) 和激活函数 (ReLU),虽然它们本身不会增加太多可学习参数,但在整体架构中有重要作用。 #### 计算方法示例 为了更好地理解如何统计 YOLOv3参数数量,可以参考以下 Python 实现片段用于计算 PyTorch 中模型的总参数量: ```python import torch.nn as nn def count_parameters(model): return sum(p.numel() for p in model.parameters()) class ExampleModel(nn.Module): def __init__(self): super().__init__() self.conv_layers = nn.Sequential( nn.Conv2d(3, 32, kernel_size=3, padding=1), nn.BatchNorm2d(32), nn.ReLU(), # 更多层... ) example_model = ExampleModel() print(f'Total parameters: {count_parameters(example_model)}') ``` 此代码定义了一个简单的 `ExampleModel` 并打印出它的总参数数目。对于完整的 YOLOv3 模型,则需将其实际实现代入上述函数执行即可得到具体数值。 --- ### 总结 综上所述,YOLOv3 的总体参数规模接近于 27 百万级别,其中绝大部分来源于 Darknet-53 主干网路中的众多卷积层。这种设计既保证了良好的泛化能力和较高的精度,又兼顾到了推理阶段的速度需求。
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值