内容简介:本文为 AI 研习社编译的技术博客,原标题 Tensorflow Vs Keras? — Comparison by building a model for image classification,作者为DataTurks: Data Annotations Made Super Easy。翻译 | shunshun 整理 | 凡江
本文为 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](http://image-net.org/challenges/LSVRC/2015/results)图像分类竞赛中排名第二。当数据集的每个类别具有较少图像数量时,它被提及为迁移学习的最佳网络。
Inception V3
现在克隆git仓库:
现在,你可以选择图像。你所要做的就是以下面的方式存储数据集文件夹。
FLOWER DATA
它看起来应该像上面图那样(忽略image.py)。通过下面代码获得flower_photos文件夹:
创建数据
你可以使用任何你喜欢的图像。越多越好(目标是几千)。向上面文件夹格式那样以类别将它们分开,并确保它们在一个名为tf_files的文件夹中。
你可以下载已经存在的有多种任务使用的数据集,如癌症检测,权力的游戏中的人物分类。这里有各种图像分类数据集。
或者,如果你有自己独特的用例,则可以为其创建自己的数据集。你可以从网上下载图像并立即制作大型数据集,使用像Dataturks这样的注释工具,你可以手动上传图像并标记图像。更好的是,Dataturks的输出可以很容易地用于构建tf_files。
使用Dataturks创建数据
我发现了一个很棒的插件,可以在Google Chrome上批量下载图像。这个和Dataturks将使构建训练数据变得轻而易举。链接在这里。
您可以尝试使用dataturks的image_classification工具执行此操作。这里该 工具 提供的最佳功能是,如果我们有一个非结构化数据集,其中所有图像都在一个文件夹中。通过手动标记图像的类别,你可以下载一个json文件,该文件包含嵌入其中的类的图像的所有详细信息。然后使用下面给出的keras和tensorflow脚本:
训练
现在是时候训练模型了。在tensorflow-for-poets-2文件夹中,有一个名为scripts的文件夹,它包含重新训练模型所需的一切。retrain.py有一种特殊的裁剪和缩放图像的方式,非常酷。
然后使用以下命令训练,选项名称本身描述所需的训练路径的位置。
这将下载inception模型并使用training文件夹和给定的参数训练最后一层。我使用12GB Nvidia Tesla k80和7GB Vram在GCP实例上训练了4000步。
训练时80%数据集用作训练,20%用作测试,我们可以看到,它给出了91%的test_accuracy。现在是时候测试了!我们在`tf_files/`中有一个.pb文件,可用于测试。`label_image.py`中添加了以下更改:
上面的代码将帮助我们绘制正在测试的图像的准确性并保存它。对于rodom图像的置信度百分比如下所示
下面显示了几个测试图像的输出
包含所有类别的少量输出的拼贴画
正如我们所看到的,结果对于所述任务来说真的很好了。
Keras
Keras是一个基于TensorFlow构建的高级API(也可以在Theano之上使用)。与Tensorflow相比,它更加用户友好且易于使用。如果我们是所有这些深度学习的新手,并想从头开始编写一个新模型,那么我会建议使用Keras,因为其易读性和易写性。可以通过下面指令安装:
甚至这个东西都包含了tensorflow,所以CPU v/s GPU兼容性变化也将适用于此。
因为,我们必须执行使用inception模型的迁移学习对花进行分类的相同任务,我已经看到Keras以标准格式加载模型,如API编写的那样。
Keras有一种加载数据集的标准格式,即我们不是直接在数据集文件夹中提供文件夹,而是手动划分训练和测试数据,并按以下方式排列。我使用了我在tensorflow部分下载的相同数据集,并按照以下说明进行了一些更改。
它看起来应该如下所示:
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 中常见的安全问题以及如何避免他们
雷锋网原创文章,未经授权禁止转载。详情见 转载须知 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 基于PaddlePaddle的图像分类实战 | 深度学习基础任务教程系列(一)
- SpringBoot与异步任务、定时任务、邮件任务
- Opencv图像处理系列(六)—— 图像梯度
- opencv笔记(2):图像剪切和图像移位
- Opencv图像处理系列(九)—— 图像轮廓
- Python 图像处理 OpenCV (15):图像轮廓
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人机交互:以用户为中心的设计和评估
董建明、傅利民、[美]沙尔文迪 / 清华大学出版社 / 2003-9-1 / 28.00
本书综述部分介绍了与“用户为中心的设计和评估”方法相关的背景知识及发展概况。其后,分3篇分别介绍了解用户、用户界在设计和可用性评估的内容及一些相关的研究专题。最后,第11章讨论了在组织中实施以用户为中心的设计的专题。本书主要面向的读者包括:软件或网站的设计人员。同时本书也可成为“现代人因工程学”及“以用户为中心的设计”的教材,还可作为软件或网站公司经理的提高用户满意度或提升公司形象的手册。一起来看看 《人机交互:以用户为中心的设计和评估》 这本书的介绍吧!