【发布时间】:2018-03-11 14:32:54
【问题描述】:
我有一个预训练权重 [h5df] 约为 700mb 的 keras 模型。我想将它与 Apache Spark 一起用作广播变量。 1. 这似乎是不可能的,因为 keras 模型本身不具备火花感知能力且不可序列化。 2. 用谷歌搜索了一下,我发现 Elephas 库可以完成这项工作。所以尝试在 ElephasTransformer 中封装 Keras 预训练模型。这会引发多个错误(我使用 python 2.7)。例如在 Elephas 的 ml_model.py 文件中,“from pyspark.ml.util import keyword_only”,导入不可用。即使我尝试对此进行注释并在代码中进行适当的修改,它似乎也无法处理 keras 模型的广播,因为它在其中一个密集层中引发了张量错误。
如何在 apache spark 中使用预训练的 keras 模型作为广播变量?
【问题讨论】:
-
我成功共享了广播变量内的 900MB 数据。我想,对象成为广播变量的唯一要求是它应该是可序列化的。它可以在 Java 中轻松完成,对 python 不太确定。是否可以分享一些我们可以查看的代码?
-
你找到解决办法了吗?
标签: apache-spark keras broadcast