技能开发 频道

怎么运用TensorFlow机器学习对图画进行分类?

本文将介绍怎么运用搬迁学习运用TensorFlow机器学习渠道对图画进行分类。

在机器学习环境中,搬迁学习是一种技能,使咱们能够重用现已练习的模型并将其用于另一个使命。 图画分类是将图画作为输入并为其分配具有概率的类(一般是标签)的进程。 该进程运用深度学习模型,即深度神经网络,或更详细的卷积神经网络(CNN)。 CNN由多个层组成,这些层中的每一个都担任学习和辨认特定特征。 基层能够辨认零件,边际等。 终究图层确认图画类别。

现代图画辨认模型具有数百万个参数,而且需求很多核算才能来练习模型。 运用搬迁学习,能够运用自定义图画集从头练习网络的终究一层,并重用一切剩下模型而无需更改。 运用搬迁学习能够大大削减练习模型所需的时刻。 机器学习的另一个风趣的优点是咱们不需求大型图画数据集来练习新模型,由于简直一切模型都现已过练习。

本文将介绍怎么运用TensorFlow进行搬运学习。

装置TensorFlow

第一步是设置咱们将在本文中运用的环境。有几种办法能够开端运用Tensorflow,最简略快速的办法是运用Docker:

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


完结docker装置后,即可装置TensorFlow。

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


运用Tag,您能够挑选您喜爱的版别。在本教程中,咱们运用的是1.12.0版别。devel发行版增加了一些其他功用,稍后将在本教程中运用它们。要装置Tensorflow docker镜像,请键入:

docker pull tensorflow / tensorflow:devel-1.12.0

装置完结,预备开端运转TensorFlow。

图画数据集

装置TensorFlow后,就能够挑选咱们想要用来练习模型的数据集了。有几个图画数据集可用。即便更改了图画数据集,也能够运用相同的进程。要创立TensorFlow模型,需求运用猫图画数据集。练习模型,以便它能辨认猫的种类。牛津IIIT宠物数据会集有一个猫狗图画数据集。该图画数据集包括狗和猫的图画,是用于练习机器学习模型和运用搬迁学习的完美图画数据集。下载图画数据集并解压缩。

创立目录图画结构

为了运用搬迁学习,有必要依据猫种类对图画进行分组。创立一个名为的新目录tensor,并在此目录下调用一个新目录cat-images。图画结构应该是:

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


现在,发动TensorFlow图画:

docker run -it -p 6006:6006 
 -v /Users/francesco/Desktop/tensor/:/tensor_flow 
 your_tensorflow_docker_name

运用TensorFlow创立机器学习自定义模型

预备创立自定义模型,先克隆存储库tensorflow-for-poets:

git clone https://github.com/googlecodelabs/tensorflow-for-poets-2

经过这种方法就能够运用脚本轻松创立模型。现在,咱们开端练习模型:

python tensorflow-for-poets-2 / scripts / retrain.py 
--model_dir = / tensor_flow / inception-v3 
--output_graph = /tensor_flow/cats_retrained.pb
--output_labels = /tensor_flow/cats_labels.txt 
--image_dir = / tensor_flow / cat-images / 
--bottleneck_dir = / tensor_flow / cats_bottleneck

有几点需求留意:

--model_dir 是存储模型的方位(在本例中为tensor_flow)

--output_graph 是行将创立的图表的称号(cats_retrained.pb)

--output_labels 是标签的称号(cats_labels.txt)

--image_dir 是存储图画以练习模型的方位

--bottleneck_dir 是发明瓶颈的当地

'瓶颈'是一个非正式术语,人们经常在实践进行分类的终究输出层之前运用该层。

此进程需求很多时刻,详细时刻长短取决于电脑功用和运用的迭代次数。

运用TensorFlow Board剖析模型

机器学习模型预备就绪而且练习进程完结后,咱们就能够剖析模型了。咱们能够评价创立的模型。输入以下指令:

tensorboard --logdir /tmp/retrain_logs/

它运转TensorFlow,运用浏览器,咱们能够翻开仪表板。键入:localhost:6006以拜访Web控制台。

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

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


在顶部菜单上挑选SCALARS以评价模型

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


列车精度是体系用于练习模型的图画分类精度。验证精度是指练习进程中未运用的图画的精度。验证精度是模型的"实在"精度。一般,它应该小于列车精度。

假如列车精度高而验证精度低,则创立的模型过度拟合。这意味着该模型不能很好地归纳测验数据。相反的情况下,模型也是不合适的,所以咱们能够改善它。

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

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


怎么测验TensorFlow模型

模型到达要求后,咱们就能够测验它:

bazel-bin/tensorflow/examples/label_image/label_image 
 --graph=/tensor_flow/cats_retrained.pb 
 --image=/tmp/lab1.jpg 
 --input_layer=Mul 
 --output_layer=final_result 
 --labels=/tensor_flow/cats_labels.txt

用下面的图画来测验模型:

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


成果如下所示:

搬迁学习:怎么运用TensorFlow机器学习对图画进行分类?


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

摘要

期望您经过本文了解了有关怎么运用搬迁学习创立自定义模型的常识。假如要在其他计划(例如移动运用程序)中运用此模型,则应考虑运用其他体系结构模型(即Mobilenet)。


0
相关文章