开源的机器学习

Analytics-zoo简介

2019-04-16  本文已影响0人  飞驰2019

    虽然BigDL提供了完整的功能和完善的API,但是要想轻松自如的用好它其实并不容易。于是,Analytics-Zoo应运而生。这个项目一方面提供了将基于BigDL的深度学习模型与数据应用进行衔接的方法,另一方面提供了丰富的使用案例。在熟练掌握BigDL之前,从Analytics-Zoo这个项目入手是个事半功倍的好手段。

    Analytics-Zoo的主要特性包含以下几个部分:

    在BigDL(Spark)上训练Tensorflow模型:

    尽管BigDL本身提供了和Keras类似的API,但是在很多情况下,直接使用Tensorflow/Keras进行开发,然后将单机环境下的模型直接迁移到分布式环境仍然是个普遍存在的需求,而这个特性的意义正在于此。在实现上,基于python编写的Tensorflow模型经过二进制文件导出后,被Java环境下的Tensorflow包进行加载,然后通过JNI调用的方式进行训练。

图 1

    高级抽象API

    通过这部分接口的使用,开发者能够获得对已有模型的定制扩展能力,接口具体包含以下几个部分:

    1. 定制预训练模型

    对于参数规模很大的模型,在硬件和训练数据有限的情况下,想要自行训练是不现实的。这时往往需要加载别人预先训练的模型,然后根据自己的下游任务进行fine-tune(熟悉bert的朋友应该知道我在说什么)。在Analytics-Zoo中,这样的功能可以通过API调用轻易的实现。

    2. 自动求导

   和Tensorflow中类似,只要在进行运算时使用内置的算子,在反向(backward)过程时,对应操作的梯度也会自行得到计算。这样在对模型进行扩展时,无需关心梯度的问题。

    3. 对Spark dataframe和ML Pipeline的支持

    支持将模型训练的接口与Dataframe对接,对于习惯使用相关接口的开发者十分有益。

    模型Serving

    对训练好的模型,可以通过相应接口进行加载,然后在各种各样的Java应用中使用。

    内置模型

    项目中内置了不同场景下常用的模型,如对象检测、图像分类、文本分类和推荐等等。这些模型对于开发者而言,既可以直接使用,也可以作为自行编写模型的参考,十分有帮助。    

上一篇下一篇

猜你喜欢

热点阅读