一个TensorFlow的新模型,Kaparthy小哥用了都说好

Posted AI科技大本营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个TensorFlow的新模型,Kaparthy小哥用了都说好相关的知识,希望对你有一定的参考价值。


昨天午饭时分,营长注意到Kaparthy小哥(特斯拉AI主管、马斯克红人、李飞飞高徒)的Twitter活跃了起来:


一个TensorFlow的新模型,Kaparthy小哥用了都说好


大意是说,Google一周前给TensorFlow增加的新模型NASNet让人很是兴奋。


https://github.com/tensorflow/models/tree/master/research/slim/nets/nasnet


这个代码分析起来比较难,但实现出来的模型是相当好用的,它在速度和准确度之间的取舍之道令人印象深刻。


看到此处,营长顿感此模型定是高手所为。


果不其然,在TensorFlow的GitHub页面,Google是这么说的:


该目录所包含的是NASNet模型的代码,这个模型出自Zoph等人的论文:Learning Transferable Architectures for Scalable Image Recognition(通过学习可迁移结构实现具有可扩展性的图像识别任务)。


该目录的nasnet.py文件,包含有三种不同配置的NASNet模型实现。其中NASNet-A是基于CIFAR-10数据集的模型,而另外两个模型则是NASNet-A基于ImageNet数据集的变体。


看来要查查"Learning Transferable Architectures for Scalable Image Recognition"这篇论文,一查才知道论文作者是Google Brain的四位大牛Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le。其中Quoc V. Le还是吴恩达的得意门生。


该论文于7月21日提交的初版,10月25日刚刚更新第二版,目测是为该TensorFlow模型的上线做准备。


该模型的使用介绍详述如下:


预训练模型


在ILSVRC-2012-CLS图像分类数据库上训练出来的两个NASNet-A模型,其节点参数是可用的,模型的分类精度是通过评估单幅图像计算出来的,数值如下表:


一个TensorFlow的新模型,Kaparthy小哥用了都说好


关于如何下载NASNet-A_Mobile_224模型节点参数,命令行代码如下所示,NASNet-A_Large_331模型的下载方式与之类似。


CHECKPOINT_DIR=/tmp/checkpoints 

mkdir ${CHECKPOINT_DIR}

cd ${CHECKPOINT_DIR} 

wget https://storage.googleapis.com/download.tensorflow.org/models/nasnet-a_mobile_04_10_2017.tar.gz tar -xvf nasnet-a_mobile_04_10_2017.tar.gz 

rm nasnet-a_mobile_04_10_2017.tar.gz


在TF-Slim图像分类库中得到更多关于如何将NASNet模型与自己项目相结合的信息:


https://github.com/tensorflow/models/blob/master/research/slim/README.md


要在设备上运行这些模型,需要在移动端上安装Tensorflow


https://www.tensorflow.org/mobile/


使用该模型进行推断的代码样例


测试NASNet模型—一个移动端的ImageNet模型


DATASET_DIR=/tmp/imagenet 

EVAL_DIR=/tmp/tfmodel/eval 

CHECKPOINT_DIR=/tmp/checkpoints/model.ckpt 

python tensorflow_models/research/slim/eval_image_classifier \ 

--checkpoint_path=${CHECKPOINT_DIR} \ 

--eval_dir=${EVAL_DIR} \ 

--dataset_dir=${DATASET_DIR} \ 

--dataset_name=imagenet \ 

--dataset_split_name=validation \ 

--model_name=nasnet_mobile \ 

--eval_image_size=224 \ 

--moving_average_decay=0.9999


测试NASNet模型—一个大型的ImageNet模型


DATASET_DIR=/tmp/imagenet 

EVAL_DIR=/tmp/tfmodel/eval 

CHECKPOINT_DIR=/tmp/checkpoints/model.ckpt 

python tensorflow_models/research/slim/eval_image_classifier \ 

--checkpoint_path=${CHECKPOINT_DIR} \ 

--eval_dir=${EVAL_DIR} \ 

--dataset_dir=${DATASET_DIR} \ 

--dataset_name=imagenet \ 

--dataset_split_name=validation \ 

--model_name=nasnet_large \ 

--eval_image_size=331 \ 

--moving_average_decay=0.9999


很快,就有人觉得TensorFlow的官方部署方法太笨了,Teahoon Lee立刻贴上了自己前一天刚刚优化出来的方法:


https://github.com/taehoonlee/tensornets/blob/master/tensornets/nasnets.p

y


一个TensorFlow的新模型,Kaparthy小哥用了都说好


Kaparthy小哥立刻表示,”干得漂亮!“


不过,TensorFlow有了新模型,PyTorch自然也不甘落后,几小时后,Remi Cadene就给出了该模型的Pytorch实现:


https://github.com/Cadene/pretrained-models.pytorch/blob/master/pretrainedmodels/nasnet.py


一个TensorFlow的新模型,Kaparthy小哥用了都说好


对于TensorFlow的原始代码,这两位小哥均表示太难读了,他们都是使用tensorboard工具才写好的新代码。


一个TensorFlow的新模型,Kaparthy小哥用了都说好


而计算机视觉全栈工程师、TenDozen创始人Jared则就此专门 @ Kaparthy小哥:我发现,绝大部分出自于论文的新模型,需要相当多的调教才能适用于工业级生产环境。但聊胜于无,至少我们现在是有了一个全新的模型。



从论文概念到实际部署,耗时不到4个月的NASNet,用时应当算是很短了。但是,鉴于Kaparthy小哥都说这代码很难,想必该模型距离部署到Tesla的自动驾驶平台,还是有一段路要走的。


另外,成功引起Kaparthy注意的那两位小哥,你们要不要来Tesla参观一圈?



精彩推荐




以上是关于一个TensorFlow的新模型,Kaparthy小哥用了都说好的主要内容,如果未能解决你的问题,请参考以下文章

恢复使用迭代器的 TensorFlow 模型

Tensorflow:您如何在模型训练期间实时监控 GPU 性能?

TensorFlow新文档发布:新增CLPDTensor...最先进的模型已就绪

Tensorflow Eager Execution - 计算顺序模型两层之间的梯度

图神经网络模型集合GraphGallery,TensorFLow&PyTorch一并实现

《30天吃掉那只 TensorFlow2.0》 1-4 时间序列数据建模流程范例 (国内新冠疫情结束时间预测问题)