首页 存档 技术 查看内容

Linux上TensorFlow的深入研究:构建一个低成本、快速、精准的图像分类器

2018-3-30 13:00 |来自: 互联网 314 0

摘要: 授权转载自OReillyData@Justin Francis 在过去的八个月里,我花了大量时间学习了尽可能多的机器学习知识。我经常对在这个小但快速成长的社区中的在线慕课(MOOCs)上遇到的各种各样的人感到惊讶。他们中既有费米实验 ...

授权转载自OReillyData@Justin Francis


在过去的八个月里,我花了大量时间学习了尽可能多的机器学习知识。我经常对在这个小但快速成长的社区中的在线慕课(MOOCs)上遇到的各种各样的人感到惊讶。他们中既有费米实验室(Fermilab)的量子研究员,也有硅谷的CEO们。最近我一直关注开源软件TensorFlow,这篇教程就是我的研究成果。

我觉得很多机器学习教程都是面向Mac系统的。使用Linux系统的一个主要优势是它是免费的,并支持基于GPU的TensorFlow。GPU的并行加速计算能力是机器学习重大进步的原因之一。因此你不需要为了构建一个快速分类器而使用最前沿的计算设备,像我用的计算机和显卡总共花费了不到400美元。

在本教程中我会告诉你如何在Ubuntu上使用GPU来训练自己的图像分类器。本教程跟Pete Warden的《“诗人”也能用TensorFlow》非常类似,但是稍有不同。我会假定你已经安装了TensorFlow和Bazel,并在你的主目录下git克隆了最新版本的TensorFlow。如果你还没有完成上述工作,你可以按照我博客上的教程进行操作。如果你的计算机没有与TensorFlow兼容GPU,你仍然可以使用这个教程,只不过它需要更长的时间。

整个训练过程非常简单,可以分为四个主要步骤:

1. 收集训练用的图像。

2. 使用TensorFlow和Inception模型来训练一个计算图/模型。

3. 编写脚本来用你的计算图来进行图像分类。

4. 通过对新图像进行分类来测试脚本。

我决定使用五种不同的鸷鸟来训练我的图像分类器。使用鸷鸟并不是一个偶然的决定,我曾在不列颠哥伦比亚省邓肯市的“猛龙”机构工作了两年,这是一个教育中心及野生动物管理机构。长期以来我对这些凶猛的神话生物有着深厚的热情。作为终极挑战,我把我的分类器跟康奈尔大学鸟类实验室的MerlinID工具系统进行对比。在本文的撰写过程中该实验室升级了它的网站并发布公告:“Merlin Photo ID 暂停使用以进行维护和升级。…康奈尔鸟类实验室和Visipedia团队正在合作研发可以识别照片中鸟类的计算机视觉技术”。毫无疑问,他们正在将他们的Merlin系统(现在不可用)升级为一个现代机器学习分类器。

收集训练用的图像

我从“猛龙”的脸书页面并结合网络搜索为每类鸷鸟收集了约100张图片。我找到了鸷鸟在许多不同的环境及地点的图片以建立图像集。为了使图像分类器有很好的泛化能力,至少用100张在不同的场景和背景中的图像用来训练它是比较理想的。还有一些方法可以扭曲现有的图像以得到更多的训练样本,但这可能会降低你的训练过程的速度。注意我们不需要用成千上万的样本来训练模型,这是因为TensorFlow会用Inception模型之前训练特征检测器来重新训练一个新模型。

我多做了一个实验,即让每种鸷鸟类图像样本的大约10%是幼鸟图像。我很好奇分类器是否可以找到一个幼鸟和成年鸟之间的相似之处。

一旦有了合适的图像数量和类型,我在我的TensorFlow目录下创一个文件夹:

$ cd ~/tensorflow

$ mkdir tf_files

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部