机器学习PAI EasyRec的模型 底层为什么是用的estimator,而不是keras ?是因为[阿里云机器学习PAI]

机器学习PAI EasyRec的模型 底层为什么是用的estimator,而不是keras ?是因为想要同时兼容1.0版本吗?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 在机器学习 PAI 中,EasyRec 模型底层使用的是 Estimator 而不是 Keras 的原因有多个考虑因素:

    1. 兼容性:Estimator 是 TensorFlow 的高级 API,它提供了更广泛的兼容性,可以与不同版本的 TensorFlow 和其他相关工具一起使用。相比之下,Keras 是一个更高级的框架,对于一些特定的功能和配置可能需要与特定版本的 TensorFlow 配合使用。通过使用 Estimator,EasyRec 可以在不同版本的 TensorFlow 上运行,并且能够更好地与其他组件进行集成。

    2. 分布式训练支持:Estimator 提供了分布式训练的支持,可以在多台机器或多个计算节点上进行并行训练。这是由于 Estimator 使用 TensorFlow 的分布式计算框架,而 Keras 对分布式训练的支持相对较弱。

    3. 结构化输入处理:Estimator 提供了更方便的接口来处理结构化数据,可以通过 Feature Columns 等方式对输入数据进行预处理和特征工程。这对于推荐系统等需要处理复杂、多特征输入的任务非常重要。

    尽管 EasyRec 使用 Estimator 作为底层框架,但你仍然可以利用 TensorFlow 的低级部分编写自定义模型或使用 Keras 自定义层,并将其集成到 Estimator 框架中。

    这样,EasyRec 可以同时兼容 TensorFlow 1.0 版本及以上,并提供更多的灵活性和功能拓展性。

  2. keras目前不太方便做分布式训练,可以用keras来开发自定义组件,然后用组件拼搭模型,自定义keras layer 可以参考这个:https://easyrec.readthedocs.io/en/latest/component/backbone.html#id13,此回答整理自钉群“【EasyRec】推荐算法交流群”