本文主要是介绍新resnet和resnext结构的改动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对resnet 和resnext 网络结构进行修改。主要修改为两处
第一处:
原先的bottleneck 模块三层卷积层,
1*1 | increase_dim=True:stride=2 increse_dim=False:stride=1 |
3*3 | stride=1 |
1*1 | stride=1 |
而网站上有这样一句话:
且在resnet.lua 和resnext.lua 代码里有相应的实现:
所以把bottleneck 模块改成:
1*1 | stride=1 |
3*3 | increase_dim=True:stride=2 increse_dim=False:stride=1 |
1*1 | stride=1 |
第二处:对于C*basewidth d 的理解
代码中有这样的实现:
如果basewidth=64,D=n*64/64=n n=64,128,256
可以得到resnext_29_c_64d 模型结构为:
如果basewidth=4, D=n*4/64=n/16 n=64,128,256,512
可以得到resnext_50_32_4d 模型结构为
与之对应,即参数量相似的resnet_50_1_64d 网络结构为:
所以网络结构修改完毕。
下面做实验:
这篇关于新resnet和resnext结构的改动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!