微软发布ML.NET 0.5,支持TensorFlow,深度学习更进一步!
微软在5月发布了由微软研究院开发、发展了十年的机器学习框架ML.NET,现在ML.NET 0.5来了,最大的更新便是开始支持TensorFlow,开发者可以在ML.NET中直接使用已经训练好的TensorFlow模型,进行评分。另外,微软正在开发新的ML.NET API,届时将会弃用现在的LearningPipeline API。
在.NET Conf 2018,微软顺势发布ML.NET 0.5,距离5月发布的ML.NET 0.1已经距离一段时间,这次带来巨大的更新,微软在ML.NET 0.5中,增加了TensorFlow模型评分转换(TensorFlow Transform)。微软提到,深度学习是人工智能和机器学习的子集,能够透过实例来学习人类自然学习的能力,与传统机器学习相比,深度学习可以直接从图像、声音以及文本中,学习物体侦测或是分类任务,甚至可以提供语音辨识以及语言翻译等功能,但传统的机器学习依赖特征工程以及数据处理。
深度学习模型需要大量标记数据以及多层类神经网络进行训练,微软认为,深度学习之所以会开始流行,除了对于计算机视觉任务表现良好外,刚好适用于如今数据爆炸情况。微软也想让ML.NET支持深度学习,因此透过新的TensorFlow Transform,在ML.NET中与TensorFlow进行第一阶段的整合,开发者可以自己训练或是从任何地方下载TensorFlow模型,在ML.NET中使用进行结果预测。
微软表示,这种整合方式,让开发者不需要具备TensorFlow内部细节知识,另外,从长远来看,使用ML.NET开发深度学习应用将更加容易。开发者只要增加ML.NET NuGet套件参照,到.NET Core或.NET Framework应用程序中就可以了。在ML.NET底层也是参照了原生TensorFlow函数库,让开发者可以撰写载入TensorFlow模型的代码,并且进行评分。
不过,由于现在ML.NET使用TensorFlow仍然有一些限制,微软正在更新API以提高整体灵活性。目前使用LearningPipeline API时,只能在LearningPipeline中作为数字和矢量输入,给分类器学习器(Classifier Learner)等学习器。但在即将要推出的全新ML.NET API,将能存取TensorFlow模型的分数,开发者可以直接使用TensorFlow模型进行评分,不像现在,还需要增加额外的学习器相关的训练程序。届时当新的API发布时,现行的LearningPipeline API将被弃用。
微软提到,虽然现在ML.NET框架支持了TensorFlow,未来也不排除整合其他诸如Torch和CNTK深度学习函数库。