You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Felix Schüler (JIRA)" <ji...@apache.org> on 2017/01/31 18:21:52 UTC

[jira] (SYSTEMML-1221) predict in LinearRegression Mllearn wrapper fails in Python

    [ https://issues.apache.org/jira/browse/SYSTEMML-1221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15847252#comment-15847252 ] 

Felix Schüler commented on SYSTEMML-1221:
-----------------------------------------

I believe this is a duplicate of SYSTEMML-1199 and the root cause for not detecting this earlier is that the Scala tests have never been included in any test-runs as described in SYSTEMML-1200

> predict in LinearRegression Mllearn wrapper fails in Python
> -----------------------------------------------------------
>
>                 Key: SYSTEMML-1221
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-1221
>             Project: SystemML
>          Issue Type: Bug
>          Components: APIs
>            Reporter: Berthold Reinwald
>
> from pyspark.sql import SQLContext
> from systemml.mllearn import LinearRegression
> sqlCtx = SQLContext(sc)
> regr = LinearRegression(sqlCtx)
> # Train the model using the training sets
> regr.fit(diabetes_X_train, diabetes_y_train)
> regr.predict(diabetes_X_test)
> Traceback (most recent call last):
>   File "/gpfs/fs01/user/s97f-e8039831bd320d-6262032d0bcc/.local/lib/python2.7/site-packages/systemml/mllearn/estimators.py", line 170, in predict
>     retNumPy = self.decode(convertToNumPyArr(self.sc, self.model.transform(convertToMatrixBlock(self.sc, X))))
>   File "/usr/local/src/spark160master/spark/python/lib/py4j-0.9-src.zip/py4j/java_gateway.py", line 813, in __call__
>     answer, self.gateway_client, self.target_id, self.name)
>   File "/usr/local/src/spark160master/spark/python/pyspark/sql/utils.py", line 45, in deco
>     return f(*a, **kw)
>   File "/usr/local/src/spark160master/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py", line 308, in get_return_value
>     format(target_id, ".", name), value)
> Py4JJavaError: An error occurred while calling o132.transform.
> : org.apache.sysml.api.mlcontext.MLContextException: Exception when executing script
> 	at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:307)
> 	at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:276)
> 	at org.apache.sysml.api.ml.BaseSystemMLRegressorModel$class.baseTransform(BaseSystemMLRegressor.scala:65)
> 	at org.apache.sysml.api.ml.LinearRegressionModel.baseTransform(LinearRegression.scala:83)
> 	at org.apache.sysml.api.ml.LinearRegressionModel.transform(LinearRegression.scala:95)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
> 	at java.lang.reflect.Method.invoke(Method.java:507)
> 	at py4j.reflection.MethodInvoker.invoke(MethodInvoker.java:231)
> 	at py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:381)
> 	at py4j.Gateway.invoke(Gateway.java:259)
> 	at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
> 	at py4j.commands.CallCommand.execute(CallCommand.java:79)
> 	at py4j.GatewayConnection.run(GatewayConnection.java:209)
> 	at java.lang.Thread.run(Thread.java:785)
> Caused by: org.apache.sysml.api.mlcontext.MLContextException: Exception occurred while validating script
> 	at org.apache.sysml.api.mlcontext.ScriptExecutor.validateScript(ScriptExecutor.java:553)
> 	at org.apache.sysml.api.mlcontext.ScriptExecutor.execute(ScriptExecutor.java:307)
> 	at org.apache.sysml.api.mlcontext.MLContext.execute(MLContext.java:299)
> 	... 15 more
> Caused by: org.apache.sysml.parser.LanguageException: Invalid Parameters : ERROR: null -- line 206, column 12 -- Mismatch in matrix dimensions of parameters for function TABLE
> 	at org.apache.sysml.parser.Expression.raiseValidateError(Expression.java:556)
> 	at org.apache.sysml.parser.BuiltinFunctionExpression.checkMatchingDimensions(BuiltinFunctionExpression.java:1447)
> 	at org.apache.sysml.parser.BuiltinFunctionExpression.checkMatchingDimensions(BuiltinFunctionExpression.java:1428)
> 	at org.apache.sysml.parser.BuiltinFunctionExpression.validateExpression(BuiltinFunctionExpression.java:677)
> 	at org.apache.sysml.parser.StatementBlock.validate(StatementBlock.java:567)
> 	at org.apache.sysml.parser.IfStatementBlock.validate(IfStatementBlock.java:70)
> 	at org.apache.sysml.parser.IfStatementBlock.validate(IfStatementBlock.java:70)
> 	at org.apache.sysml.parser.IfStatementBlock.validate(IfStatementBlock.java:77)
> 	at org.apache.sysml.parser.IfStatementBlock.validate(IfStatementBlock.java:70)
> 	at org.apache.sysml.parser.DMLTranslator.validateParseTree(DMLTranslator.java:140)
> 	at org.apache.sysml.api.mlcontext.ScriptExecutor.validateScript(ScriptExecutor.java:551)
> 	... 17 more
> UnboundLocalErrorTraceback (most recent call last)
> <ipython-input-51-d88481946cc5> in <module>()
> ----> 1 regr.predict(diabetes_X_test)
> /gpfs/fs01/user/s97f-e8039831bd320d-6262032d0bcc/.local/lib/python2.7/site-packages/systemml/mllearn/estimators.pyc in predict(self, X)
>     172                     traceback.print_exc()
>     173                 if isinstance(X, np.ndarray):
> --> 174                     return retNumPy
>     175                 else:
>     176                     return retNumPy # TODO: Convert to Pandas
> UnboundLocalError: local variable 'retNumPy' referenced before assignment



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)