图片分类器的二次训练

来自CloudWiki
Cloud17讨论 | 贡献2018年7月21日 (六) 02:51的版本 (创建页面,内容为“==迁移学习== 迁移学习是一种技术,它通过采取一个模型,对一个相关的任务进行训练,并在一个新的模型中重复使用,从而…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

迁移学习

迁移学习是一种技术,它通过采取一个模型,对一个相关的任务进行训练,并在一个新的模型中重复使用,从而使这一方法变得简单。在本教程中,我们将重用从ImageNet上训练的强大的图像分类器的特征提取能力,并在上面简单地训练一个新的分类层。有关该方法的更多信息,您可以在DECAF上看到这篇论文。

虽然它不像训练完整模型那样好,但是对于许多应用来说,这是惊人的有效的,用中等数量的训练数据(数以千计,而不是数百万的标记图像)工作,并且可以在没有GPU的笔记本上运行三十分钟。本教程将向您展示如何在自己的图像上运行示例脚本,并将解释您有助于控制培训过程的一些选项。

本本教程使用TensorFlow Hub来调用预先训练过的模型或模块。对于初学者,我们将使用具有在ImageNet上训练的Inception V3架构的图像特征提取模块,并稍后返回其他选项,包括NASNet / PNASNet,以及MobileNet V1和V2。

在开始之前,您需要安装PIP包tensorflow-hub以及最新版本的TensorFlow。有关详细信息,请参阅TensorFlow Hub的安装说明。。

基于花卉图片的训练

在开始任何培训之前,您需要一组图像来向网络传授您想要识别的新类。后面的部分介绍了如何准备自己的图像,但为了方便起见,我们创建了一个花卉照片集,以便最初使用。要获取花卉照片集,请运行以下命令:

cd ~
curl -LO http://download.tensorflow.org/example_images/flower_photos.tgz
tar xzf flower_photos.tgz

一旦有了图像,就可以从GITHUB下载示例代码(它不是库安装的一部分):

mkdir ~/example_code
cd ~/example_code
curl -LO https://github.com/tensorflow/hub/raw/r0.1/examples/image_retraining/retrain.py

在最简单的情况下,训练脚本可以这样运行(大约需要半小时):

python retrain.py --image_dir ~/flower_photos

该脚本还有许多其他选项。您可以通过以下方式获得完整列表:

python retrain.py -h

此脚本加载预先训练的模块,并在您下载的花卉照片的顶部训练新的分类器。在完整的网络训练过程中,没有一种花卉种类属于原始的ImageNet类。转移学习的神奇之处在于,经过训练以区分某些对象的较低层可以重复用于许多识别任务而无需任何改动。

返回 人工智能