Machine Box创始人教你快速建立一个ML图像分类器

AiTechYun

编辑:Yining

Machine Box的创始人Mat Ryer在medium上分享了一篇博文,意在教你在硬盘上快速的建立一个机器学习图像分类器。在这篇博文中,他用到了一个图像分类工具imageclass。

imgclass工具可以让你把一个文件夹装满图片,然后教一个分类器学会如何自动对未来的图像进行分类。它通过创建一个模型并将80%的示例图像发布到Classificationbox中,然后Classificationbox会学习不同类别的图像是什么样子,以及它们的共同特征是什么。剩下的(20%)图像被用来测试模型。然后,开发人员可以使用Classificationbox API来预测它以前从未见过的图像。

  • Classificationbox地址:https://machinebox.io/docs/classificationbox?utm_source=matblog&utm_medium=imgclass&utm_campaign=imgclass&utm_term=imgclass&utm_content=imgclass

这个项目是开源的并在Go语言中编写,本文将解释如何使用它。

  • 地址:https://github.com/machinebox/toys/tree/master/imgclass

安装

安装imgclass工具:

go get github.com/machinebox/toys/imgclass

如果你没有安装Go,这有一个安装地址:https://golang.org/doc/install

验证它是否安装正确:

$ which imgclass
/path/to/somewhere/bin/imgclass

准备教学数据

创建一个文件夹,并在此文件夹中为每个类创建一个子文件夹。

两个文件夹Gophers和Humans

在每个文件夹中,添加尽可能多的图片示例。通常,你提供的图片越多,你的模型就越好。

如果你想要在不需要收集大量图像数据的情况下使用它,那么你可以使用一个经典的猫与狗例子的样本数据集。本文的其余部分将使用此数据集。

  • 猫与狗例子的样本数据集下载地址:http://machinebox.io/samples/images/classification/catsvsdogs.zip

Spin up Classificationbox

Spin-up大意为“磁盘交错启动”,指的是一个硬盘驱动器或光盘驱动器加速了它的磁盘盘片或将光盘从一个停止的状态嵌入到运算的速度的过程。假设你已经安装了Docker,你可以用下面这个单行代码来Spin-up Classificationbox :

  • Docker安装:https://machinebox.io/docs/setup/docker?utm_source=matblog&utm_medium=imgclass&utm_campaign=imgclass&utm_term=imgclass&utm_content=imgclass#installing-docker
docker run -p 8080:8080 -e "MB_KEY=$MB_KEY" machinebox/classificationbox
  • 如果你需要一个MB_KEY,你可以以下网站中免费获得:

https://machinebox.io/account?utm_source=matblog&utm_medium=imgclass&utm_campaign=imgclass&utm_term=imgclass&utm_content=imgclass

运行之后,到http://localhost:8080,然后你能够看到API文档:

当你在本地运行Classificationbox时,你可以直接从container中访问文档

教学和验证

找到你的类文件夹所在的文件夹,并执行imgclass工具:

你将看到的图片和数量概述并要求确认创建模型

分类器可以更好地使用数量平衡的例子,因此,如果你能做到的话,可以在每个类中都使用相同数量的例子。

一旦创建了模型,就会提示你是否要教一个选择的(80%)图像。点击y和按下回车就会开始这个过程:

imgclass工具会将每个图像放入Classificationbox以便让它学习

教学(Teaching)本质上涉及打开每个图像,将其转换为一个base64字符串,并按要求将其提交到/classificationbox/teach API终端,就像这样:

POST /classificationbox/teach
{
 "inputs": [
 {
 "type": "image_base64",
 "key": "image",
 "value": "...base64 data..."
 ]
}

一旦教学完成,验证过程就会开始。

验证(validate)本质上是保留剩余的图像(20%),并要求Classificationbox来预测它们属于哪个类。如果它做对了,我们就把它当作正确的,否则就错了。

结果显示在终端:

没有任何机器学习模型是100%准确的,但是你可以通过一组好的教学数据来获得一些令人印象深刻的结果——在这种情况下,98%准确!

Machine Box将现有技术的机器学习能力运用到Docker容器中,因此开发者可以很容易地将自然语言处理、面部识别、对象识别等应用到你自己的应用中。它比任何云服务都要便宜,而且你的数据不会离开你的基础设施。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-03-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏梦里茶室

毫秒级检测!你见过带GPU的树莓派吗?

树莓派3B+英特尔神经计算棒进行高速目标检测 转载请注明作者梦里茶 ? 代码: 训练数据预处理: https://gist.github.com/ahan...

4.8K80
来自专栏实用工具入门教程

如何部署 TensorFlow 服务器

TensorFlow是一款由Google构建的用于训练神经网络的开源机器学习软件。TensorFlow的神经网络以有状态数据流图的形式表示。图中的每个节点表示神...

68730
来自专栏祝威廉

MLSQL如何支持部署SKLearn,Tensorflow,MLLib模型提供API预测服务

部署成API服务时,除了要把raw数据特征化成向量外,研发还要想着怎么加载模型,产生模型的框架五花八门,比如Tensorflow,SKlearn,Spark M...

14940
来自专栏专知

【最新TensorFlow1.4.0教程01】TF1.4.0介绍与动态图机制 Eager Execution使用

【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

41380
来自专栏Java进阶架构师

dubbo源码解析-详解LoadBalance

终于到了集群容错中的最后一个关键词,也就是LoadBalance(负载均衡),负载均衡必然会涉及一些算法.但是也不用太担心,算法这个词虽然高大上,但是算法也有简...

18330
来自专栏ATYUN订阅号

TensorFlow:使用Cloud TPU在30分钟内训练出实时移动对象检测器

是否能够更快地训练和提供对象检测模型?我们已经听到了这种的反馈,在今天我们很高兴地宣布支持训练Cloud TPU上的对象检测模型,模型量化以及并添加了包括Ret...

32850
来自专栏IT派

干掉照片中那些讨厌的家伙!Mask R-CNN助你一键“除”人!

【导读】:看过英剧《黑镜》吗?圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像的功能,可以让你屏蔽任何一个不想看见或不喜欢的人,然后留下...

13000
来自专栏CreateAMind

开源|MultiNet模型解决Kitti数据集自动驾驶中的道路分割、车辆检测和街道分类(附源代码)

MultiNet能够同时完成道路分割、汽车检测和道路分类的任务。MultiNet模型的实时存档速度和分割性能都处于最先进水平。详细的模型描述请查阅我们的论文。

32230
来自专栏AIUAI

GPU 显存 - Caffe 内存优化

58060
来自专栏小巫技术博客

Python 中文图片OCR

87930

扫码关注云+社区

领取腾讯云代金券