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

栏目: 数据库 · 发布时间: 5年前

内容简介:本文为 AI 研习社编译的技术博客,原标题 Tensorflow Vs Keras? — Comparison by building a model for image classification,作者为DataTurks: Data Annotations Made Super Easy。翻译 | shunshun    整理 |  凡江

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

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

翻译 | shunshun    整理 |  凡江

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

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

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

    Tensorflow:

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

    是时候做一个了!

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

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

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

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

现在,让我们采用Google的Tensorflow进行实验来训练模型。谷歌的这个仓库有许多令人惊叹的处理图像的简单实验的脚本。它非常简洁,足以满足我们的目的。还记得前面我用过“强大”这个词吗?是的,当我们使用称为迁移学习的方法时,这个词就会生效。迁移学习是一种有效的方式,它使用预训练模型,这些模型已经训练了几天或几周,然后改变最后一层以适应我们自己的类别。

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

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

Inception V3

现在克隆git仓库:

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

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

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

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

FLOWER DATA

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

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

创建数据

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

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

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

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

使用Dataturks创建数据

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

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

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

训练

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Keras

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

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

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

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

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

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

它看起来应该如下所示:

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

TRAIN FOLDER

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

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

戳链接: http://www.gair.link/page/TextTranslation/997

雷锋网 (公众号:雷锋网) 雷锋网雷锋网

A研习社每日更新精彩内容,点击链接 http://www.gair.link/page/translate 即可观看更多精彩内容:

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

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

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

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

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

等你来译:

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

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

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web安全测试

Web安全测试

霍普(Paco Hope)、沃尔瑟(Ben Waltber) / 傅鑫 / 清华大学出版社 / 2010-3 / 39.00元

《Web安全测试》内容简介:在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。《Web安全测试》中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的——可以完美地集成到你的常规测试套装中。 《Web安全测试》中的秘诀所覆盖的基础知识包括了从观察客......一起来看看 《Web安全测试》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试