云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

百度云_金助理为何那样百度云_9元

小七 141 0

几乎所有想了解机器学习(ML)的人迟早都会学习解决MNIST分类问题的教程。MNIST数据集包含大量的手写(标记)数字,其目标是对这些图像进行图像识别以检测实际数字。在这篇博文中,我们想展示如何使用刚刚随HANA2 SPS02发布的应用程序函数库(AFL)的外部机器学习(EML)组件来实现这一点(有关一般要点,请参阅本博客)。新的EML-AFL允许对Google Tensorflow服务实例和可用模型执行来自SAP HANA SQL和SQLScript的推断调用请求。要处理的数据可以从SAP HANA传递到TensorFlow,也可以通过调用传递到要查找数据的位置链接。

有一系列优秀的视频演示如何在HANA上实现MNIST分类问题,将的图像存储为784列的浮点表。它在技术上没有什么问题,但是MNIST数据的格式不必要的尴尬,因为视频教程的作者试图改变尽可能少的原始模型编码。我们想展示另一种方法,使用google推荐的TensorFlow数据格式TFRecords。如果你还不熟悉的话,不用担心,我们会解释你需要了解的内容_型号.py执行培训并以特殊格式保存模型(保存的模型),该格式稍后可以部署在TensorFlow服务服务器上。这个python脚本是MNIST教程的一部分https://tensorflow.github.io/serving/serving\u basic.html。我们将展示如何使用Google提供的命令行工具读取模型的签名。在第二节中,我们将解释什么是TFRecords、如何使用它们以及如何将数据(MNIST手写图像)获取到HANA表中。当服务器运行时,侦听推断请求并且图像存储在HANA表中,那么您就可以执行实际的推断调用了。这将把数据输入到TensorFlow图中,您可以在HANA表中查看结果。我们将展示如何做到这一点。

训练并导出TensorFlow模型:

设置具有所有必要依赖关系的系统不是一件容易的任务,但是在下面我们假设这已经在许多关于这个主题的博客文章和教程中完成了。运行python程序mnist\u saved_型号.py它将创建一个保存了文件的目录_型号.pb和一个子目录调用变量。要快速检查模型是否正确保存以及签名的外观,可以使用保存的\模型\ cli工具。在我们的例子中,我们将模型存储在models/2文件中,unix shell的相应命令行看起来像

生成输出:

它告诉我什么?结果表明,该模型包含两个特征码。第一个称为"predict\u images",需要一个形状为(-1784)的(原始)张量,关于云服务器,-1表示未指定数量的行,它返回一个包含形状为(-1)的分类结果的张量"scores",理财返利平台,10) 。第二个签名称为"serving\u default",输入是一个名为tf.示例. 输出是具有指定形状和数据类型的"类"和"分数"。

到目前为止,一切看起来都很好。现在的问题是,如何使用'serving\ U default'签名将数据馈送到图形?这将在下一节中解释。

谷歌标准的TensorFlow数据格式:

将数据输入TensorFlow图的两种主要方法要么是通过一个run()调用的feed_dict参数,这是大多数人通常的做法,要么是从文件中读取数据。您可以读取文本文件,但更有效的是使用二进制文件格式。谷歌推荐的TensorFlow文件格式是.tfrecords。该格式的文件包含表单的记录tf.train.示例然后通过协议缓冲区序列化为字符串。一句话里有很多信息,让我们逐一解析:tf.train.示例是一种数据格式,用于存储用于推理和训练的数据。它包含一个键值存储(features);其中每个键(字符串)映射到一个feature消息(在本例中是一个FloatList)。有关更多信息,请参阅https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/example/example.proto

TensorFlow的文件格式基于协议缓冲区,也称为protobuf,它为各种编程语言生成类,以高效的方式处理数据。以这种格式存储记录构成了一个.tfrecords文件。

现在让我们在实践中使用它。以下代码将加载MNIST数据集,微信返利机器人安全吗,并将它们转换为tf.示例并将结果保存到文件中。

这将创建一个tf.示例28×28图像的像素值为784。

这完成了第一步,将数据转换为模型签名所期望的格式,即tf.示例。现在我们应该能够通过命令行界面将这些记录输入到模型中

这将产生模型签名定义中描述的结果,即我们的pickle文件中包含的两个记录的"classes"和"scores":

下一步是将序列化数据存储在HANA中因为我们处理的是二进制数据,所以存储数据的自然方法是BLOB(二进制大对象)。为了将数据从python环境移动到HANA世界,python连接器pyhdb非常方便。我们只需打开一个连接并将数据(在本例中为单个记录)写入以前创建的HANA表中,物联网开发,云服务器买哪个好,其中一列定义为BLOB。