Skip to content

Commit f9fb76d

Browse files
committed
docs(densenet): densenet-121 vs resnet-34_v2
1 parent d9c9c88 commit f9fb76d

File tree

7 files changed

+1081
-5
lines changed

7 files changed

+1081
-5
lines changed

docs/densenet/imgs/loss.png

41.7 KB
Loading

docs/densenet/imgs/top-1-acc.png

42.8 KB
Loading

docs/densenet/imgs/top-5-acc.png

36.9 KB
Loading

docs/densenet/index.md

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
`DenseNet`主要由两个模块组成:
1111

1212
1. `Dense Block`(负责特征提取)
13-
2. `Trantition Layer`(负责特征图衰减)
13+
2. `Transition Layer`(负责特征图衰减)
1414

1515
其中`Dense Block`中使用$3\times 3$卷积进行特征提取,同时利用$1\times 1$卷积来控制输入特征图个数,所以组成一个`Dense Layer`模块(`Conv(1x1) + Conv(3x3)`)进行实现
1616

@@ -32,7 +32,7 @@ BN -> ReLU -> Conv(1x1) -> BN -> ReLU -> Conv(3x3)
3232

3333
在每个`Dense Block`中,由多个`Dense Layer`组成,同时其每个`Dense Layer`的输出都作为后续`Dense Layer`的输入。不同的输入数据通过连接(`concatenating`)方式合并
3434

35-
## Trantition Layer
35+
## Transition Layer
3636

3737
* 实现文件:`py/lib/models/densenet/transition.py`
3838

@@ -54,4 +54,58 @@ BN -> ReLU -> Conv(1x1) -> AvgPool(2x2)
5454

5555
![](./imgs/figure-3.png)
5656

57-
比较`DenseNet-121``ResNet-34_v2`
57+
比较`DenseNet-121``ResNet-34_v2`
58+
59+
* 数据集:`voc 07+12`
60+
* 迭代次数:`100`
61+
* 批量大小:
62+
* `48(train)`
63+
* `48(test)`
64+
* 图像预处理:
65+
* 训练:缩放+随机裁剪+随机水平翻转+颜色抖动+随机擦除+数据标准化
66+
* 测试:缩放+`Ten Crop`+数据标准化
67+
68+
* 损失函数:标签平滑正则化,平滑因子`0.1`
69+
* 优化器:`Adam`,学习率`3e-4`,权重衰减`3e-5`
70+
* 学习率策略:`warmup`(共`5`轮)+余弦退火(`95`轮)
71+
72+
## 训练结果
73+
74+
![](./imgs/loss.png)
75+
76+
![](./imgs/top-1-acc.png)
77+
78+
![](./imgs/top-5-acc.png)
79+
80+
完整训练日志参考[训练日志](./log-dense101-vs-resnet34_v2.md)
81+
82+
### 检测精度
83+
84+
* `Top-1 Accuracy`
85+
* `DenseNet-121: 89.86%`
86+
* `ResNet-34_v2: 90.50%`
87+
* `Top-5 Accuracy`
88+
* `DenseNet-121: 99.20%`
89+
* `ResNet-34_v2: 99.29%`
90+
91+
### Flops和参数数目
92+
93+
```
94+
densenet_121: 5.731 GFlops - 30.437 MB
95+
resnet-34: 7.349 GFlops - 83.177 MB
96+
```
97+
98+
## 小结
99+
100+
| CNN Architecture | Data Type (bit) | Model Size (MB) | GFlops (1080Ti) | Top-1 Acc(VOC 07+12) | Top-5 Acc(VOC 07+12) |
101+
|:----------------:|:---------------:|:---------------:|:-----------------:|:--------------------:|:--------------------:|
102+
| ResNet-34_v2 | 32 | 83.177 | 7.349 | 90.50% | 99.29% |
103+
| DenseNet-121 | 32 | 30.437 | 5.731 | 89.86% | 99.20% |
104+
105+
从训练轨迹上看,`DenseNet-121`在前期能够得到更快的收敛速度,在后期两者逐渐趋同。`DenseNet-121``ResNet-34_v2`拥有更小的模型和`Flops`,两者也能够训练得到相近的准确度
106+
107+
进一步训练方向:
108+
109+
1. 更大批量训练
110+
2. 更多数据集训练
111+
3. 使用预训练模型

0 commit comments

Comments
 (0)