azure 使用
微软为鼓励在Azure中使用机器学习模型做了很多工作,但在其生态系统的许多其他部分中仍有使用它们的范围。 在Windows PC上,一种越来越重要的用途是将经过训练的模型带到您的台式机或嵌入式设备上。
借助本地机器学习支持,无需担心将数据传送到云服务,尤其是在带宽可能成为问题的地方。 您还可以在隐私可能成为问题以及法规控制数据传输和存储的地方保护数据。 此模型在金融服务或医疗保健中可能很重要,因为有关隐私的强有力的政府法规对可处理的数据以及处理方式具有重大影响。
几个月前 ,我对Windows ML进行了初步了解 ,但是现在值得更深入地研究一下新Windows 10版本的发布,该版本会将Windows ML API引入您的代码中 。 如果您使用的是Windows Insider构建,则可以在Windows 10 SDK的当前预览版中开始使用新的API。 它增加了对模型管理和使用机器学习数据类型(包括张量)的支持。 虽然在Windows 10更新本身发布之前您将无法发布代码,但是现在是开始探索如何向代码添加机器学习支持的好时机。
将您自己的机器学习模型带到Windows 10
Windows 10机器学习应用程序的核心是预先训练的模型。 只要将其导出为ONNX文件 ,无论在哪里培训或如何培训都没有关系。 借助ONNX,您可以像在Google支持的TensorFlow或任何种类的开源机器学习平台上训练的方法一样,对待来自Microsoft自己的Azure ML服务的模型。 使用Windows 10 SDK,您可以将模型挂接到PC摄像机,麦克风或传感器值流中。
微软正在将Windows ML放入即将发布的Windows 10 SDK中,以用于UWP应用 。 大多数Windows ML API在Windows.AI.MachineLearning
命名空间中找到,并且受其关联的DLL支持。
首先使用LearningModel
类将ONNX模型加载到您的应用中。 通常,您的代码附带有一个关联的模型,因此您可以从本地文件路径加载它,但是如果您希望定期更新模型,则可能希望从远程存储中加载模型。 还可以选择加载通过流传递的模型,因此您可以使用流来处理加密模型,以处理解密。
加载模型后,您将创建一个本地文件来包含它,然后将评估会话附加到该模型。 这是一个相对简单的过程,您可以将模型准备好仅用于几行代码。 LearningModel
类属性包括其输入和输出功能的详细信息,以及对模型元数据的访问。 加载模型后,您可以调用方法将其关闭,以及处置未使用的资源。 一旦关闭,您将无法再使用该模型,因此仅在完成后使用此选项。
可以将LearningModel
绑定到PC中的特定设备,让Windows ML通过DirectX(可以选择选择高功率或低功率)或通过CPU来利用GPU加速等功能。 值得考虑一下您的选择,因为新的CPU硬件正在添加特定于机器学习的指令集,这使其成为安装昂贵且耗电大的GPU卡的有用选择。 默认值是使用CPU,尽管将来可能会改变。
将数据输入和输出到机器学习模型中
加载LearningModel
,就可以使用.Net的反射工具来获取其InputFeatures
和OutputFeatures
。 这些定义了模型可以处理的数据类型,并具有四个选项:张量,序列,映射和图像。 张量是多维数组,它们可以保存大量数据。
类似地,图像作为张量处理,增加了通道的批处理和数量以及大小。 因此,在处理图像之前,需要将使用Windows ML处理的任何图像转换为适当的张量格式。 Microsoft提供了ImageFeatureValue
类来处理转换,但是,如果您愿意,可以编写自己的代码将图像转换为张量。
转换为适当的格式后,您可以在调用LearningModelSession
的Evaluate
方法获取结果之前将数据绑定到适当的输入,该方法可从LearningModelEvaluationResult
类获得。 值得查看此类的示例代码,以了解如何将数据传递到模型并读回结果。 该过程相对简单,尽管与所有复杂任务一样,将其实现为异步功能是一个好主意,因为在PC和IoT硬件上加载和处理模型可能会花费一些时间。
Windows 10上的Azure ML:使数据科学民主化
微软为简化在Windows代码中使用机器学习模型的过程做了很多工作。 Windows ML API将其移至熟悉的.Net世界,并为您提供了将数据转换为模型友好格式所需的工具。
尽管您仍然需要考虑张量的复杂性,但使用Windows ML所做的大部分工作都是围绕图像处理,从视频发送帧或从传感器传递值流。 在许多情况下,当您使用张量格式时,使用机器学习进行抵押或贷款审批时,基础数据将是熟悉的数组,例如财务数据。
结果是使数据科学民主化。 在使用Azure ML进行训练之前,可以使用专用数据科学工具(例如Anaconda Python或Jupyter Notebooks)来构建模型。 一旦数据科学专家对该模型感到满意,就可以将其导出并提供给任何人使用。 使用熟悉的代码包装该模型,您可以在需要的地方使用它并使用它。
翻译自: https://www.infoworld.com/article/3308381/how-to-use-azure-ml-in-windows-10.html
azure 使用