1 TF-slim简介
TF-slim是一个轻型的TensorFlow高层API (tensorflow.contrib.slim) 。可以用来定义、训练和评估复杂模型。slim项目包含丰富的源码。可以使用TF-slim来训练和推理许多广泛应用于CNN的图像分类模型。slim项目包含许多脚本,你可以利用它们重新训练,也可以在已训练模型的基础上进行fine-tune。当然也包括一些默认的脚本,用来下载标准的图像数据集,并将它们转换为TensorFlow的TFRecord格式,以及使用TF-Slim的数据读和队列化函数来读取这些数据。也可以使用自己的数据进行训练。
可以参考脚本jupyter notebook,其提供了许多使用TF-Slim的图像分类例子。对于开发或者改进TF-Slim,可以参考main TF-Slim page.
2 安装
这里我们介绍TF-Slim的安装步骤
2.1 安装最新版本的TF-Slim
TF-Slim is available as tf.contrib.slim via TensorFlow 1.0. To test that your installation is working, execute the following command; it should run without raising any errors.
TF-Slim基于TensorFlow 1.0,库名为tf.contrib.slim。测试安装是否成功,运行下面的代码
python -c 'import tensorflow.contrib.slim as slim; eval = slim.evaluation.evaluate_once'
2.2 安装TF-Slim图像模型库
要使用TF-Slim进行图像分类,需要安装 TF-Slim image models library。其不是TensorFlow默认安装的。为了使用这些图像分类模型,我们需要将下载 tensorflow/models
cd $HOME/workspace
git clone https://github.com/tensorflow/models/
上面的命令会下将TF-Slim的图像模型库下载到目录$HOME/workspace/models/research/slim(同时会创建目录models/inception,该目录包含Slim的老版本,这里可以忽略)。
为了验证是否成功,可以执行下面的shell脚本。
cd $HOME/workspace/models/research/slim
python -c "from nets import cifarnet; mynet = cifarnet.cifarnet"
3 准备数据
作为Slim库的一部分,下表中的数据集的下载和格式转换脚本也内置在slim目录下。
Dataset
Training Set Size
Testing Set Size
Number of Classes
Comments
Flowers
2500
2500
5
Various sizes (source: Flickr)
60k
10k
10
32x32 color
60k
10k
10
28x28 gray
1.2M
50k
1000
Various size
对于每个数据集,我们需要下载原始数据,并将其转换为TensorFlow的基本TFRecord格式。每个TFRecord包含一个TF-Example协议缓冲文件。下面的脚本是显示如何转换Flowers数据集为TFRecord。
$ DATA_DIR=/tmp/data/flowers
$ python download_and_convert_data.py \
--dataset_name=flowers \
--dataset_dir="${DATA_DIR}"
完成上面