最牛资源
当前位置: 史上最牛 > 中国最牛 > 科技 >

谷歌机器学习Google Machine Learning Engine执行预测

2018-08-29 14:07 来源于:未知
热搜标签:
史上最牛网导读: GCP Machine Learning Engine 帮您节省大量维运成本! 随著近期机器学习( Machine Learning,以下简称 ML )的热潮,企业拿自己的机器学习模型做测试已经是司空见惯,且在这之中大部分的企业会选

GCP Machine Learning Engine 帮您节省大量维运成本!

随著近期机器学习( Machine Learning,以下简称 ML )的热潮,企业拿自己的机器学习模型做测试已经是司空见惯,且在这之中大部分的企业会选择使用 TensorFlow。因 TensorFlow 开放原始码,您可以在自己的电脑上做原型测试,让您可以在小规模的程式验证执行上快速测试。当您测试完毕,您可以将你在电脑上测试好的 TensorFlow 资料放进 Google Cloud,并可混合架构上的 CPU、GPU 甚至 TPU 达到优化效果。

* TensorFlow 机器学习软体
* TPU 比 GPU 快 15~30 倍的处理器

当您淮备好将你的 ML 工作提升到下一个阶段,您就必须针对基本设定做一些调整。一般来说,这些选择将会影响到运作工程和 ML 工程花费的时间。

为了帮助您快速了解,我们已经发佈一系列的教学课程,像是关于如何在 Google Compute Engine 上创立和执行,以及如何执行相同的程式在 Google Machine Learning Engine 上训练模型。我们使用 MNIST model 作为 ML 的基础模型,或许这不是最好的运作数据库,但我们能够用来加强解决工程方面的问题。

在上述已经提过 TensorFlow 有开放原始码,所以您可以在自己的笔电上运作,或是在自有机房的 sever 端运作,甚至在 Raspberry PI 上运行。TensorFlow 可以在分散式丛集中运作,让您可以分散程式运行的工做到多台机器上,以节省时间。第一个实例是如何在 Compute Engine 上运行 TensorFlow,如(图 1) 所示,藉由创造一个可重複使用的客製化映像档,并且利用 Cloud Shell 执行初始化脚本。创建一个能够正常执行的环境需要许多步骤。儘管这些步骤不是很複杂,不过这些维运相关的步骤的确会花掉一些本来可以用在ML开发上的时间。

* distributed cluster 分散式管理不同项目内容
* Cloud Shell 可以方便管理云端资源的浏览器
谷歌机器学习Google Machine Learning Engine执行预测图1. Google Compute Engine的TensorFlow 项目

第二个实例是使用相同的程式码在 Cloud ML Engine 运行,且只需一行指令便能自动配置训练模型所需的资源。这项解决方案也深入解决了神经网路和分散式训练的细节。如 (图2) 所示,您甚至能够使用 TensorBoard 将训练机器的成果视觉化。而在分配资源上所节省的时间能够花费在分析您的ML。
谷歌机器学习Google Machine Learning Engine执行预测图2,使用TensorBoar将资料视觉化

无论您如何训练您的模型,最终所希望达成的目标是能够“预测”。

传统上,这是需要花费最多工程去完成的部分。如果您想要用 web-service 去做预测,您最少需要做设定配置、网路安全、伺服器、负载平衡、监视等等,以及自行创建某种执行程式。在这两种实例中,您将会使用 Cloud ML Engine 预测服务,能够帮助您有效的省下维运工作,让您的模型能够在稳定、有弹性且安全的环境中运行。一旦建立了预测模型,您将快速建立 Cloud Datalab 并下载一个简单的范例去执行预测测试。在这个范例中,您能够用滑鼠或触控板画一个数字(如图 3 所示),此数字将会被转换到与 MNIST data 中相互匹配的矩阵格式。分析完后,这个范例将会发送图像到新的预测 API 中,并且告诉您数据分析的结果如 (图 4)。
谷歌机器学习Google Machine Learning Engine执行预测
图 3
谷歌机器学习Google Machine Learning Engine执行预测
图 4

上述的过程同时也展示了一项在管理模型时非常重要但却容易被忽略的重点,而这项重点也是可以藉由 Cloud ML Engine 和 Cloud Dataflow 轻易解决的。当使用预先建立好的机器学习模型处理标淮资料时,容易忽略机器学习的训练、部署,而预测结果为一系列数据分析后的表层结果。事实上,您所掌握的数据通常并不是为了提供机器学习而刻意搜集的,而且搜集的资料通常也不能在不经处理的状态下直接使用。
谷歌机器学习Google Machine Learning Engine执行预测

反之,在将资料用来训练 TensorFlow model 之前,您通常需要事先处理这些数据。常见的处理数据方式包括删除重複数据、缩放/转换资料数值、创建词彙,以及处理一些突发状况。接下来才对处理过数据进行训练,以得到 TensorFlow model。

在进行预测的时候,您从客户端收到的资料即是前述的未经整理的资料。然而,您的 TensowFlow model 是经由(…各种整理方式…)所清理过的资料所训练出来的。

而您用来支持预测工作的基础设施可能不是由 Python 撰写的。在这样的形况下,为了能重现前述在训练 TensorFlow model 之前的预处理步骤,您可能需要花费大量时间,以在基础设施上运用既有环境及程式语言重建这些预处理步骤。在许多状况下,这些用不同语言或环境重建出的预处理步骤会和原本的处理方式不一致,即使不一致的部分相当少,也可能导致预测成果不如预期。

藉由Cloud Dataflow去执行预处理以及由Cloud ML Engine去执行预测,可以大幅减少额外的工程工作。因为 Cloud Dataflow 可以将预处理的程式码同时用于训练前的资料处理以及预测时的资料处理。

总结

TensorFlow增加了新的 APIs和抽象层让您能够随心所欲的发展自己的机器学习模型。Cloud Machine Learning Engine 是构筑在 TensorFlow 之上的,所以您不会被绑在特定的代管服务上。如果您需要的话,您也可以在 Compute Engine 上自行建立 TensorFlow 集群,就如同前述的第一个使用范例。但我们认为您应该希望能更快速的完成工程工作以及建置预测训练的环境,并且把时间花在转换、分析以及改善您的模型。藉由Cloud Machine Learning Engine、Cloud Datalab以及Cloud Dataflow的帮助, 您可以大幅缩短您的时间。将维运的部份交给我们,把宝贵的时间花在分析资料,将分析结果视觉化,以及搭建可同时用于训练和预测的预处理架构。


网友评论
/
推荐文章