我正在使用 IBM Watson Studio(默认 spark python 环境)并尝试将 Keras 模型转换为 systemml DML 并在 Spark 上对其进行训练。

!pip install systemml
import systemml

这执行得很好。但是这个 -
from systemml import mllearn

throw
SyntaxError: import * 仅允许在模块级别
dir(systemml)

不显示 mllearn。

我尝试从 http://www.romeokienzler.com/systemml-1.0.0-SNAPSHOT-python.tar.gzhttps://sparktc.ibmcloud.com/repo/latest/systemml-1.0.0-SNAPSHOT-python.tar.gz 安装它
和一个 git clone 但没有成功。我究竟做错了什么?

最佳答案

您需要执行 dir(systemml.mllearn) 才能查看 mllearn 函数。

>>> dir(systemml.mllearn)
['Caffe2DML', 'Keras2DML', 'LinearRegression', 'LogisticRegression',
'NaiveBayes', 'SVM', '__all__', '__builtins__', '__doc__', '__file__',
'__name__', '__package__', '__path__', 'estimators']

请从 pypi.org 安装 SystemML 1.2。 1.2 是 2018 年 8 月的最新版本。1.0 版只有实验性支持。

能否请您尝试只导入 MLContext,看看加载主 SystemML jar 文件是否有效,以及您的安装使用的是什么版本?
>>> from systemml import MLContext
>>> ml = MLContext(sc)

Welcome to Apache SystemML!
Version 1.2.0

>>> print (ml.buildTime())
2018-08-17 05:58:31 UTC

>>> from sklearn import datasets, neighbors
>>> from systemml.mllearn import LogisticRegression

>>> y_digits = digits.target
>>> n_samples = len(X_digits)
>>> X_train = X_digits[:int(.9 * n_samples)]
>>> y_train = y_digits[:int(.9 * n_samples)]
>>> X_test = X_digits[int(.9 * n_samples):]
>>> y_test = y_digits[int(.9 * n_samples):]
>>>
>>> logistic = LogisticRegression(spark)
>>>
>>> print('LogisticRegression score: %f' % logistic.fit(X_train, y_train).score(X_test, y_test))
18/10/20 00:15:52 WARN BaseSystemMLEstimatorOrModel: SystemML local memory     budget:5097 mb. Approximate free memory available on the driver JVM:416 mb.
18/10/20 00:15:52 WARN StatementBlock: WARNING: [line 81:0] -> maxinneriter --     Variable maxinneriter defined with different value type in if and else clause.
18/10/20 00:15:53 WARN SparkExecutionContext: Configuration parameter     spark.driver.maxResultSize set to 1 GB. You can set it through Spark default configuration setting either to 0 (unlimited) or to available memory budget of size 4 GB.
BEGIN MULTINOMIAL LOGISTIC REGRESSION SCRIPT
...

关于python - SystemML:无法导入子模块 mllearn(因此无法导入 Keras2DML 函数),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52902289/

10-12 14:18