微软开源了 MMLSpark,用于用于 Apache Spark 的的深度学习库。MMLSpark 可以与微软认知工具包和 OpenCV 完美整合。
微软发现,虽然 SparkML 可以建立可扩展的机器学习平台,绝大多数开发者的精力都耗在了调用底层 API 上。MMLSpark 旨在简化 PySpark 中的重复性工作。
以 UCI 的成人收入普查数据集举例,使用其他项目预测收入:
如果直接使用 SparkML,每一列都需要单独处理,整理为正确的数据类型;在 MMLSpark 中只需要两行代码:
model = mmlspark.TrainClassifier (model=LogisticRegression (), labelCol=” income”) .fit (trainData) predictions = model.transform (testData)
深度神经网络(DNN)在图像识别和语音识别等领域不逊于人类,但是 DNN 模型的训练需要专业人员方可进行,与 SparkML 的整合也十分不易。MMLSpark 提供了方便的 Python API,可以方便地训练 DNN 算法。MMLSpark 可以方便地使用现有模型进行分类任务、在分布式 GPU 节点上进行训练、以及使用 OpenCV 建立可扩展的图像处理管线。
以下 3 行代码可以从微软认知工具集中初始化一个 DNN 模型,从图像中抽取特征:
cntkModel = CNTKModel () .setInputCol (“images”) .setOutputCol (“features”) .setModelLocation (resnetModel) .setOutputNode (“z.x”) featurizedImages = cntkModel.transform (imagesWithLabels) .select ([‘labels’,’features’]) model = TrainClassifier (model=LogisticRegression (),labelCol=”labels”) .fit (featurizedImages)
MMLSpark 已经发布到 Docker Hub 上,使用下面的命令即可在单机部署:
docker run -it -p 8888:8888 -e ACCEPT_EULA=yes microsoft/mmlspark
查看英文原文:
https://github.com/Azure/mmlspark
https://blogs.technet.microsoft.com/machinelearning/2017/06/07/announcing-microsoft-machine-learning-library-for-apache-spark/