ShuffleNet
1.0.0
ShuffleNet
在 PyTorch 中的实现。 ShuffleNet
是一种适用于移动设备的高效卷积神经网络架构。根据该论文,它的性能比 Google 的 MobileNet 略胜一筹。
简而言之, ShuffleNet
是一种类似 ResNet 的模型,它使用残差块(称为ShuffleUnits
),其主要创新是使用逐点(或 1x1)组卷积,而不是普通的逐点卷积。
克隆存储库:
git clone https://github.com/jaxony/ShuffleNet.git
使用model.py
中定义的模型:
from model import ShuffleNet
# running on MNIST
net = ShuffleNet ( num_classes = 10 , in_channels = 1 )
在 ImageNet 上进行训练(使用 PyTorch ImageNet 示例), groups=3
并且没有通道乘数。在测试集上,获得了 62.2% 的 top 1 和 84.2% 的 top 5。不幸的是,这与论文的表 5 无法比较,因为他们没有使用这些设置运行网络,但它介于具有以下设置的网络之间: groups=3
和通道数量的一半(42.8% top 1),并且网络具有相同数量的通道但groups=8
(32.4% top 1)。预训练状态字典可以在这里找到,格式如下:
{
'epoch': epoch + 1,
'arch': args.arch,
'state_dict': model.state_dict(),
'best_prec1': best_prec1,
'optimizer' : optimizer.state_dict()
}
注意:使用默认的 ImageNet 设置进行训练,这实际上与论文中描述的训练方案不同。等待使用这些设置再次运行(并且groups=8
)。