我正在尝试在集群上分发Keras培训,并使用Elephas。但是,从Elephas(https://github.com/maxpumperla/elephas)的doc运行基本示例时:
from elephas.utils.rdd_utils import to_simple_rdd
rdd = to_simple_rdd(sc, x_train, y_train)
from elephas.spark_model import SparkModel
from elephas import optimizers as elephas_optimizers
sgd = elephas_optimizers.SGD()
spark_model = SparkModel(sc, model, optimizer=sgd, frequency='epoch', mode='asynchronous', num_workers=2)
spark_model.train(rdd, nb_epoch=epochs, batch_size=batch_size, verbose=1, validation_split=0.1)
我得到以下错误:
^{pr2}$另外,模型实际上是创建的,我可以做print(spark_model)
,并将得到这个<elephas.spark_model.SparkModel object at 0x7efce0abfcd0>
。错误发生在spark_model.train
期间。在
我已经用pip2 install git+https://github.com/maxpumperla/elephas
安装了elephas,也许这是相关的。在
我使用PySpark 2.1.1、keras2.1.4和python2.7。 我试过用spark submit运行它:
PYSPARK_DRIVER_PYTHON=`which python` spark-submit --driver-memory 1G filname.py
也可以直接放在Jupyter笔记本上。两者都会导致相同的问题。在
谁能给我点建议吗?这是与elephas有关还是PySpark问题?在
编辑:我还上传了虚拟环境的zip文件,并在脚本中调用它:
virtualenv spark_venv --relocatable
cd spark_venv
zip -qr ../spark_venv.zip *
PYSPARK_DRIVER_PYTHON=`which python` spark-submit --driver-memory 1G --py-files spark_venv.zip filename.py
然后在文件中我会:
sc.addPyFile("spark_venv.zip")
在导入这个keras之后没有任何问题,但是我仍然从上面得到elephas
错误。在
我找到了一个解决方案,如何正确地将虚拟环境加载到主机和所有从工作机:
有关GitHub问题的更多详细信息: https://github.com/maxpumperla/elephas/issues/80#issuecomment-371073492
您应该将
elephas
库作为参数添加到spark-submit
命令中。在引用官方指南:
Official guide
相关问题 更多 >
编程相关推荐