点击上面的兴趣,All in AI China

本文介绍了如何利用迁移学习,利用tensorflow机器学习平台对图像进行分类。

在机器学习环境中,迁移学习是一种可以重复使用已经训练过的模型并用于其他任务的技术。图像分类是使用图像作为输入分配高概率类(通常是标签)的过程。这个过程使用深度学习模型,即深度神经网络或更详细的卷积神经网络(CNN)。CNN由多个层组成,每个层负责学习和识别特定特征。楼下可以识别零件、边缘等。最终图层决定图像类别。

现代图像识别模型有数百万个参数,训练模型需要很多计算能力。迁移学习使您能够使用一组自定义映像重新培训网络的最后一层,并在不发生更改的情况下重用所有剩馀的模型。迁移学习可以大大减少培训模式所需的时间。机器学习的另一个有趣的优点是,几乎所有的模型都已经接受过训练,因此不需要大型图像数据集来训练新模型。

本文介绍了如何使用TensorFlow执行以前的学习。

安装TensorFlow

第一步是设置要在本文档中使用的环境。您可以使用多种方法开始使用Tensorflow。最简单快捷的方法是使用Docker。

Docker安装完成后,可以安装TensorFlow。

标记使您可以选择所需的版本。本教程使用了1.12.0版。Devel发行版添加了一些附加功能,可在本教程后面使用。要安装Tensorflow docker镜像,请键入:

docker pull tensor flow/tensor flow:devel-1 . 12 . 0

安装已完成,准备开始运行TensorFlow。

图像数据集

安装TensorFlow后,您可以选择要用于培训模型的数据集。可以使用几组图像数据集。更改图像数据集也可以使用相同的过程。要创建TensorFlow模型,必须使用cat图像数据集。训练模特以识别猫的品种。牛津IIIT宠物数据集有猫狗图像数据集。这个图像数据集包含狗和猫的图像,是用于培训机器学习模型和应用迁移学习的完整图像数据集。下载并解压缩图像数据集。

创建目录映像结构

为了应用迁移学习,有必要根据猫的品种对图像进行分组。创建名为的新目录tensor,并在该目录下调用新目录cat-images。图像结构如下:

现在启动TensorFlow图像:

Dockerrun-it-p 600633606006

-v/users/Francesco/desktop/tensor/:/tensor _ flow

Your_tensorflow_docker_name

使用TensorFlow创建机器学习自定义模型

准备创建自定义模型,复制存储库tensorflow-for-poets:

Git克隆

这样,可以使用脚本轻松地创建模型。现在我们开始训练模特。

python tensor flow-for-poets-2/scripts/re

-model _ dir=/tensor _ flow/inception-v 3

-output _ graph=/tensor _ flow

-output _ labels=/tensor _ flow

-image _ dir=/tensor _ flow/cat-images/

-bottleneck _ dir=/tensor _ flow/cats _ bottleneck

有几点需要注意。

- model_dir是储存模型的位置,在本例中为tensor_flow

- output_graph是要创建的图表的名称(ca)

- output_labels是标签名称(ca)

- image_dir是储存图像以训练模型的位置

- bottleneck_dir是瓶颈所在

“瓶颈”是人们常用的非正式用语。

实际进行分类的最终输出层之前使用该层。

此步骤需要大量时间,具体时间长短取决于电脑功能和使用的迭代次数。

使用TensorFlow Board分析模型

机器学习模型准备就绪并且培训过程完成后,我们就可以分析模型了。我们可以评估创建的模型。输入以下命令:

tensorboard --logdir /tmp/retrain_logs/

它运行TensorFlow,使用浏览器,我们可以打开仪表板。键入:localhost:6006以访问Web控制台。

选择图表,您将看到模型:

在顶部菜单上选择SCALARS以评估模型

列车精度是系统用于训练模型的图像分类精度。验证精度是指训练过程中未使用的图像的精度。验证精度是模型的"真实"精度。通常,它应该小于列车精度。

如果列车精度高而验证精度低,则创建的模型过度拟合。这意味着该模型不能很好地概括测试数据。相反的情况下,模型也是不合适的,所以我们可以改进它。

下图为熵,该曲线应该减少。

如何测试TensorFlow模型

模型达到要求后,我们就可以测试它:

bazel-bin/tensorflow/examples/label_image/label_image --graph=/tensor_flow --image=/tm --input_layer=Mul --output_layer=final_result --labels=/tensor_flow

用下面的图像来测试模型:

结果如下所示:

如您所见,模型正确检测到了猫的品种。

摘要

希望您通过本文了解了有关如何使用迁移学习创建自定义模型的知识。如果要在其他方案(例如移动应用程序)中使用此模型,则应考虑使用其他体系结构模型(即Mobilenet)。

编译出品

1.《【怎样知道我的是什么猫】你的猫是哪种猫?一起学习用天梭流式机器测试猫品种!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《【怎样知道我的是什么猫】你的猫是哪种猫?一起学习用天梭流式机器测试猫品种!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/pet/3084146.html