龙八娱乐

当前的位置是:主页 >> 行情

图像分类是根据图像的语义信息将不同类别图柔软

时间:2020-04-05 来源网站:龙八娱乐

图像分类任务中,Tensorflow 与 Keras 到底哪个更厉害?

本文为 AI 研习社编译的技术博客,原标题 Tensorflow Vs Keras? — Comparison by building a model for image classification,作者为DataTurks: Data Annotations Made Super Easy。

翻译 | shunshun 整理 | 凡江

是的,标题中的问题在数据科学家之间的谈话中是很常见。有人说TensorFlow更好,有人说Keras更好。让我们看看这个问题在图像分类的实际应用中的答案。

在此之前,先介绍Keras和Tensorflow这两个术语,帮助你在10分钟内构建强大的图像分类器。

Tensorflow:Tensorflow是开发深度学习模型最常用的库。它是有史以来最好的库,在日常实验中被许多极客选择。如果我说Google已经将Tensor Processing Units(TPU)用于处理张量,你能想象吗?是的,他们已经这样做了。他们提出了一个名为TPU的独立实例,它具有最强大的功率驱动计算能力来处理tensorflow的深度学习模型。

是时候做一个了!我现在将帮助你使用tensorflow创建一个功能强大的图像分类器。等等!什么是分类器?这只是一个简单的问题,你向你的tensorflow代码询问,给定的图像是玫瑰还是郁金香。所以,首先的首先,让我们在机器上安装tensorflow。官方文档有两个版本,即CPU和GPU版本。对于CPU版本:

请注意,我是在GPU上而非CPU上进行实验后才写的这篇博客。这里给出了详细的GPU安装。

现在,让我们采用Google的Tensorflow进行实验来训练模型。谷歌的这个仓库有许多令人惊叹的处理图像的简单实验的脚本。它非常简洁,足以满足我们的目的

。还记得前面我用过“强大”这个词吗?是的,当我们使用称为迁移学习的方法时,这个词就会生效。迁移学习是一种有效的方式,它使用预训练模型,这些模型已经训练了几天或几周,然后改变最后一层以适应我们自己的类别。

Inception V3是一个非常好的模型,在[2015 ImageNet Challenge](图像分类竞赛中排名第二。当数据集的每个类别具有较少图像数量时,它被提及为迁移学习的最佳络。

Inception V3

现在克隆git仓库:

现在,你可以选择图像。你所要做的就是以下面的方式存储数据集文件夹。

FLOWER DATA

它看起来应该像上面图那样(忽略)。通过下面代码获得flower_photos文件夹:

创建数据

你可以使用任何你喜欢的图像。越多越好(目标是几千)。向上面文件夹格式那样以类别将它们分开,并确保它们在一个名为tf_files的文件夹中。

你可以下载已经存在的有多种任务使用的数据集,如癌症检测,权力的游戏中的人物分类。这里有各种图像分类数据集。

或者,如果你有自己独特的用例,则可以为其创建自己的数据集。你可以从上下载图像并立即制作大型数据集,使用像Dataturks这样的注释工具,你可以手动上传图像并标记图像。更好的是,Dataturks的输出可以很容易地用于构建tf_files。

使用Dataturks创建数据

我发现了一个很棒的插件,可以在Google Chrome上批量下载图像。这个和Dataturks将使构建训练数据变得轻而易举。链接在这里。

您可以尝试使用dataturks的image_classification工具执行此操作。这里该工具提供的最佳功能是,如果我们有一个非结构化数据集,其中所有图像都在一个文件夹中。通过手动标记图像的类别,你可以下载一个json文件,该文件包含嵌入其中的类的图像的所有详细信息。然后使用下面给出的keras和tensorflow脚本:

训练

现在是时候训练模型了。在tensorflow-for-poets-2文件夹中,有一个名为scripts的文件夹,它包含重新训练模型所需的一切。有一种特殊的裁剪和缩放图像的方式,非常酷。

然后使用以下命令训练,选项名称本身描述所需的训练路径的位置。

这将下载inception模型并使用training文件夹和给定的参数训练最后一层。我使用12GB Nvidia Tesla k80和7GB Vram在GCP实例上训练了4000步。

训练时80%数据集用作训练,20%用作测试,我们可以看到,它给出了91%的test_accuracy。现在是时候测试了!我们在`tf_files/`中有一个.pb文件,可用于测试。`label_`中添加了以下更改:

上面的代码将帮助我们绘制正在测试的图像的准确性并保存它。对于rodom图像的置信度百分比如下所示

下面显示了几个测试图像的输出

包含所有类别的少量输出的拼贴画

正如我们所看到的,结果对于所述任务来说真的很好了。

KerasKeras是一个基于TensorFlow构建的高级API(也可以在Theano之上使用)。与Tensorflow相比,它更加用户友好且易于使用。如果我们是所有这些深度学习的新手,并想从头开始编写一个新模型,那么我会建议使用Keras,因为其易读性和易写性。可以通过下面指令安装:

甚至这个东西都包含了tensorflow,所以CPU v/s GPU兼容性变化也将适用于此。

因为,我们必须执行使用inception模型的迁移学习对花进行分类的相同任务,我已经看到Keras以标准格式加载模型,如API编写的那样。

Keras有一种加载数据集的标准格式,即我们不是直接在数据集文件夹中提供文件夹,而是手动划分训练和测试数据,并按以下方式排列。我使用了我在tensorflow部分下载的相同数据集,并按照以下说明进行了一些更改。

它看起来应该如下所示:

TRAIN FOLDER

至于,我们现在已完成数据集的设置,是时候进行训练了。我已经写了一小段代码来进行下面的训练:

想要继续阅读并且查看更多代码、链接和参考文献?

戳链接:

(公众号:)

A研习社每日更新精彩内容,点击链接即可观看更多精彩内容:

如何利用深度学习和 Pytorch 实现推荐系统

想了解 MIT 发布的最新编程语言 Julia,这篇文章就够了

开发者必看:8月 Python 热门开放源码

亚马逊、谷歌、微软等各家公司人脸识别对比

斯坦福CS231n李飞飞计算机视觉经典课程(中英双语字幕+作业讲解+实战分享)

等你来译:

使用 Python 完成自动特征工程——如何自动创建机器学习特征

利用 Pytorch 和 CoreML 建立一个风格转换的 iOS 程序

10个 Python 中常见的安全问题以及如何避免他们

原创文章,未经授权禁止转载。详情见转载须知。

北京北城中医医院在线咨询

怎么知道自己缺钙不

脑梗塞患者可以吃通心络吗

通心络治疗冠心病怎么样
得了冠心病怎么办
瘀血阻络是什么意思
XML 地图 | Sitemap 地图