1 介绍
TorchNet是我在Torch官方文档(《TRAINING A CLASSIFIER》)里面看到的一个用于分类的网络模型,它收敛很快,给我留下了很深的印象;因为教程也没有给它起一个专有的名字,所以我就称它为TorchNet~
2 TorchNet的特点
2.1 Big Convolution Kernel
TorchNet的卷积层都使用了大的卷积核,其代码截图如下:
使用了大小为5的卷积核;
2.2 没有使用BN
TorchNet没有使用BN,其前向函数如下所示,
具体是什么原因,不太清楚,根据网上的资料显示“BN是有助于加快收敛的”,但是这里TorchNet没有使用BN,关于BN的效果还需要进一步的验证;
2.3 Head部分使用了多个FC层
TorchNet在Head部分使用了3个FC层,是Head部分具有很强的全局信息;
2.4 优化器使用SGD
这里TorchNet使用了SGD作为优化器,没有使用AdamW;
3 关于TorchNet的对比实验
在进行对比实验之前,首先我们对原始的TorchNet进行复现;[code]
3.1 两个 3 × 3 3\times3 3×3卷积代替 5 × 5 5\times5 5×5卷积
这里我们尝试使用2个
3
×
3
3\times3
3×3卷积代替
5
×
5
5\times5
5×5卷积;
结果如下:
可以看到两个
3
×
3
3\times3
3×3conv跟
5
×
5
5\times5
5×5conv的结果是类似的,所以我们可以尝试使用两个
3
×
3
3\times3
3×3卷积代替一个
5
×
5
5\times5
5×5卷积。
3.2 加上BN
加上BN的效果如下:
加上BN之后,好像也是有一点效果的;
3.3 多加一个FC,使用4个FC层
实验结果如下:
加了一个FC层,效果反而还下降了;
3.4 减少一个FC,使用2个FC层
前向运算的代码如下:
实验结果如图,
跟使用3个FC层的结果类似;
3.5 优化器换成AdamW
实验结果如下:
跟使用SGD的效果类似;