machine-learning - Elephas 教程错误 - ValueError:无法解释优化器标识符
问题描述
我正在尝试在 Colab 上运行这个 elephas 教程。
我准备了环境
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q https://downloads.apache.org/spark/spark-2.4.6/spark-2.4.6-bin-hadoop2.7.tgz
!tar xf spark-2.4.6-bin-hadoop2.7.tgz
!pip install -q findspark
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-2.4.6-bin-hadoop2.7"
import findspark
findspark.init("spark-2.4.6-bin-hadoop2.7")
!pip install elephas
当我适合模型时
pipeline = Pipeline(stages=[estimator])
fitted_pipeline = pipeline.fit(df)
我收到以下错误消息
>>> Fit model
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-11-6d2ae7604dd2> in <module>()
1 # Fitting a model returns a Transformer
2 pipeline = Pipeline(stages=[estimator])
----> 3 fitted_pipeline = pipeline.fit(df)
11 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/optimizers.py in get(identifier)
901 else:
902 raise ValueError(
--> 903 'Could not interpret optimizer identifier: {}'.format(identifier))
ValueError: Could not interpret optimizer identifier: 1e-06
如您所见,错误与衰减 ( decay=1e-6
) 有关。无论如何,即使更改此值,我仍然会遇到相同的错误。
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
sgd_conf = optimizers.serialize(sgd)
有任何想法吗?
解决方案
如果您使用的是 Tensorflow 2.0 API,这可能与不兼容有关。我建议使用最新版本重试:https ://github.com/danielenricocahall/elephas/releases/tag/1.0.0 ,它现在包含对 Tensorflow 2.1.x 和 Tensorflow 2.3.x 的支持。
推荐阅读
- javascript - 如何访问 index.ejs(视图)的 javascript 部分中的本地数据?
- c - 如何判断 C 中的信号量中是否有进程在等待
- node.js - 大量 postMessages 后 nodejs webworker-threads 崩溃
- git-bash - Git-bash 在用户文件夹文档而不是库中创建目录
- react-virtualized - 如何正确使用 CellMeasurer 根据内容长度设置表格列宽?
- api - 如何向 Kong 插件添加自定义身份验证逻辑
- c# - 如何让 SqlConnection 实例化?
- ruby-on-rails - 将 Webpacker 与 jQuery 一起使用,无需重复代码
- python - 如何在尽快输出识别出的单词的同时继续进行语音识别
- c++ - 如何正确编码此函数,以便计算 int 的每个数字的总和?