ShuffleNet
1.0.0
PyTorch에서 ShuffleNet
구현. ShuffleNet
은 모바일 장치를 위한 효율적인 컨벌루션 신경망 아키텍처입니다. 논문에 따르면 Google의 MobileNet보다 약간 더 나은 성능을 보입니다.
한 문장으로 말하자면, ShuffleNet
은 ResNet과 유사한 모델로, Residual Block( 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 )
groups=3
이고 채널 승수 없이 ImageNet(PyTorch ImageNet 예제 사용)에서 훈련되었습니다. 테스트 세트에서는 상위 1위 62.2%, 상위 5위 84.2%를 기록했습니다. 불행하게도 이는 논문의 표 5와 비교할 수 없습니다. 왜냐하면 이러한 설정으로 네트워크를 실행하지 않기 때문입니다. groups=3
및 채널 수의 절반(42.8% 상위 1) 및 채널 수는 동일하지만 groups=8
(32.4% 상위 1). 사전 학습된 상태 사전은 여기에서 다음 형식으로 찾을 수 있습니다.
{
'epoch': epoch + 1,
'arch': args.arch,
'state_dict': model.state_dict(),
'best_prec1': best_prec1,
'optimizer' : optimizer.state_dict()
}
참고: 기본 ImageNet 설정으로 훈련했는데, 이는 실제로 백서에 설명된 훈련 방식과 다릅니다. 해당 설정(및 groups=8
)으로 다시 실행이 보류 중입니다.