You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Mike Dusenberry (JIRA)" <ji...@apache.org> on 2017/03/24 01:09:41 UTC

[jira] [Updated] (SYSTEMML-1434) Generalize Binary Operations to (vector, matrix) Operands

     [ https://issues.apache.org/jira/browse/SYSTEMML-1434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mike Dusenberry updated SYSTEMML-1434:
--------------------------------------
    Summary: Generalize Binary Operations to (vector, matrix) Operands  (was: Broadcasting Error)

> Generalize Binary Operations to (vector, matrix) Operands
> ---------------------------------------------------------
>
>                 Key: SYSTEMML-1434
>                 URL: https://issues.apache.org/jira/browse/SYSTEMML-1434
>             Project: SystemML
>          Issue Type: Bug
>            Reporter: Mike Dusenberry
>         Attachments: broadcasting_test.dml
>
>
> Currently, we make use of broadcasting to allow for binary operations between matrices and vectors that have a common size in each the row or column dimension.  However, there is currently a limitation in which the matrix must be the first argument to the binary operator in order for the broadcasting to take place.  Otherwise, in the case of the vector being the first argument, an error will be thrown.  NumPy does not have this limitation.
> Works correctly --> op(matrix, vector):
> {code}
> a = rand(rows=4, cols=16)
> b = rand(rows=1, cols=16)
> out = a * b
> print(toString(out))
> {code}
> Fails --> op(vector, matrix):
> {code}
> a = rand(rows=4, cols=16)
> b = rand(rows=1, cols=16)
> out = b * a
> print(toString(out))
> {code}
> {code}
> org.apache.sysml.parser.LanguageException: Invalid Parameters : ERROR: tests/broadcasting_test.dml -- line 4, column 7 -- Mismatch in dimensions for operation (b MULT a)
>         at org.apache.sysml.parser.Expression.raiseValidateError(Expression.java:549)
>         at org.apache.sysml.parser.BinaryExpression.checkAndSetDimensions(BinaryExpression.java:188)
>         at org.apache.sysml.parser.BinaryExpression.validateExpression(BinaryExpression.java:141)
>         at org.apache.sysml.parser.StatementBlock.validate(StatementBlock.java:592)
>         at org.apache.sysml.parser.DMLTranslator.validateParseTree(DMLTranslator.java:141)
>         at org.apache.sysml.api.DMLScript.execute(DMLScript.java:588)
>         at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:350)
>         at org.apache.sysml.api.DMLScript.main(DMLScript.java:211)
> Exception in thread "main" org.apache.sysml.api.DMLException: org.apache.sysml.parser.LanguageException: Invalid Parameters : ERROR: tests/broadcasting_test.dml -- line 4, column 7 -- Mismatch in dimensions for operation (b MULT a)
>         at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:364)
>         at org.apache.sysml.api.DMLScript.main(DMLScript.java:211)
> Caused by: org.apache.sysml.parser.LanguageException: Invalid Parameters : ERROR: tests/broadcasting_test.dml -- line 4, column 7 -- Mismatch in dimensions for operation (b MULT a)
>         at org.apache.sysml.parser.Expression.raiseValidateError(Expression.java:549)
>         at org.apache.sysml.parser.BinaryExpression.checkAndSetDimensions(BinaryExpression.java:188)
>         at org.apache.sysml.parser.BinaryExpression.validateExpression(BinaryExpression.java:141)
>         at org.apache.sysml.parser.StatementBlock.validate(StatementBlock.java:592)
>         at org.apache.sysml.parser.DMLTranslator.validateParseTree(DMLTranslator.java:141)
>         at org.apache.sysml.api.DMLScript.execute(DMLScript.java:588)
>         at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:350)
>         ... 1 more
> {code}



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