TensorFlow implementation of PNASNet-5. While completely compatible with the official implementation, this implementation focuses on simplicity and inference.
In particular, three files of 1200 lines in total (nasnet.py, nasnet_utils.py, pnasnet.py) are refactored into two files of 400 lines in total (cell.py, pnasnet.py). This code no longer supports NCHW data format, primarily because the released model was trained with NHWC. I tried to keep the rough structure and all functionalities of the official implementation when simplifying it.
If you use the code, please cite:
@inproceedings{liu2018progressive,
author = {Chenxi Liu and
Barret Zoph and
Maxim Neumann and
Jonathon Shlens and
Wei Hua and
Li{-}Jia Li and
Li Fei{-}Fei and
Alan L. Yuille and
Jonathan Huang and
Kevin Murphy},
title = {Progressive Neural Architecture Search},
booktitle = {European Conference on Computer Vision},
year = {2018}
}- TensorFlow 1.8.0
- torchvision 0.2.1 (for dataset loading)
- Download the ImageNet validation set and move images to labeled subfolders. To do the latter, you can use this script. Make sure the folder
valis underdata/. - Download the
PNASNet-5_Large_331pretrained model:
cd data
wget https://storage.googleapis.com/download.tensorflow.org/models/pnasnet-5_large_2017_12_13.tar.gz
tar xvf pnasnet-5_large_2017_12_13.tar.gzpython main.pyThe last printed line should read:
Test: [50000/50000] Prec@1 0.829 Prec@5 0.962