今年早些时候,我们发布了一款在 TensorFlow 上的最先进的图像分类模型实现——Inception -V3。这些代码允许用户使用一个单一的本地机器或机器集群在 Image Net 分类数据集上通过同步梯度下降(synchronized gradient descent)的方式训练模型。该 Inception-V3模型建立在 TensorFlow 的 TF- Slim 实验库上,它是一个用于在 TensorFlow 中定义、训练和评估模型的轻量软件包。这个TF-Slim 库提供了常见的抽象,可以使用户简要快速地定义模型,同时还能维持模型架构透明和其超参数的明确性。
自发布以后,TF-Slim 增长迅速,添加了多种类型的层、损失函数和评估指标,用于训练和评估模型的方便的例程(routine)也越来越多,。这些例程考虑到了扩展工作时你需要担心的所有细节,比如并行读取数据、在多台机器上部署模型等等。此外,我们已经利用标准数据集创建了 TF-Slim 图像模型库(TF-Slim Image Models library),可以为许多广泛使用的图像分类模型提供定义和训练脚本。TF-Slim 和它的组件已经在谷歌内部得到了广泛使用,而很多改进已经被集成到 tf.contrib.slim 中。
今天,我们很高兴与 TF 社区共享最新的 TF-Slim 版本。以下几点需要强调:
许多新种类的层(如 Atrous Convolution 和 Deconvolution)丰富了神经网络架构的大家庭。
支持更多的损失函数和评估指标(例如,mAP,IoU)
一个部署库,可以使得用多个 GPU / CPU在同一台机器或多台机器上执行同步或异步训练变得更简单:https://github.com/tensorflow/models/blob/master/slim/deployment/model_deploy.py
用于定义和训练许多使用广泛的图形分类模型的代码(例如,Inception[1][2][3],VGG[4],AlexNet[5],ResNet[6]):https://github.com/tensorflow/models/tree/master/slim/nets
用于上述图像分类模型的预训练模型权重。这些模型已经在 ImageNet 分类数据集上训练过了,但是也能用来执行很多其他的计算机视觉任务。举个简单的例子,我们提供了可以微调这些分类器以适应一个新的输出标签集合的代码。
容易处理标准图像数据集的工具,如 ImageNet,CIFAR 10 和 MNIST:https://github.com/tensorflow/models/tree/master/slim/datasets
想尝试一下 TF-Slim 吗?这条链接(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/slim)可以帮到你。
如果你想试试图像分类模型可以看下这条介绍或者 Jupyter notebook。