谷歌EfficientNet缩放模型,PyTorch实现出炉,登上GitHub热榜
哈佛小哥哥出品,一天上热榜
郭一璞 发自 凹非寺
量子位 报道 | 公众号 QbitAI
谷歌上个月底提出的EfficientNet开源缩放模型,在ImageNet的准确率达到了84.1%,超过Gpipe,已经是当前的state-of-the-art了。
出炉没几天,官方TensorFlow版本在GitHub上就有了1300+星。
现在,哈佛数学系小哥哥Luke Melas-Kyriazi开源了自己的PyTorch实现,包含与训练模型和Demo。
帖子一出,就收到了众多PyTorch用户的欢迎,在Reddit上拿到了超过170个点赞,不少用户都准备上手尝试了:
等不及想把它merge到torchvision里!
在GitHub上也登上了热榜。
甚至,这个PyTorch实现还在隔壁岛国的收到了热烈欢迎。
啥是EfficientNet
EfficientNets是一种新的模型缩放方法,准确率比之前最好的Gpipe提高了0.1%,但是模型更小更快,参数的数量和FLOPS都大大减少,效率提升了10倍。
用复合缩放(compound scaling)的方法,与缩放神经网络的传统方法不同,用一组固定的缩放系数统一缩放每个维度。
实现复合缩放的首先是执行网格搜索,以在固定资源约束下找到基线网络(baseline model)的不同缩放维度之间的关系,确定每个维度的缩放比例系数。然后将这些系数将应用于基线网络,扩展到所需的目标模型大小或计算力。
模型缩放的有效性也在很大程度上依赖于基线网络。因此,为了进一步提高性能,谷歌还使用AutoML MNAS框架优化了模型的准确率和效率,执行神经架构搜索来开发新的基线网络。
安装使用方式
可以使用pip安装
1 pip install efficientnet_pytorch
或者用源代码安装
1 git clone https://github.com/lukemelas/EfficientNet-PyTorch 2 cd EfficientNet-Pytorch 3 pip install -e .
加载EfficientNet
1 from efficientnet_pytorch import EfficientNet 2 model = EfficientNet.from_name(‘efficientnet-b0’)
加载预训练模型
1 from efficientnet_pytorch import EfficientNet 2 model = EfficientNet.from_pretrained(‘efficientnet-b0’)
模型具体详情:
有Demo
Luke还准备了一份Colab笔记本Demo。
示例中,先悄咪咪的扔一只胖达。
嘿,果然认出来是胖达。
传送门
GitHub
https://github.com/lukemelas/EfficientNet-PyTorch
Google原论文
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Mingxing Tan, Quoc V. Le
https://arxiv.org/abs/1905.11946
Colab Demo
https://colab.research.google.com/drive/1Jw28xZ1NJq4Cja4jLe6tJ6_F5lCzElb4
- MEET2020 | 百度景鲲:AI交互正在吃掉旧产品边界,触达移动互联网盲区用户2019-12-10
- MEET2020 | 王砚峰揭秘搜狗AI技术体系:自然交互在左,知识计算在右,核心是语言2019-12-16
- MEET2020 | 旷视唐文斌:你到底给谁创造了什么样的价值?这是AI产品的灵魂拷问2019-12-17
- MEET2020 | 快手刘霁:AI基础能力决定每个公司AI的迭代和落地效率2019-12-20