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

[jira] [Comment Edited] (SYSTEMML-1434) Broadcasting Error

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

Matthias Boehm edited comment on SYSTEMML-1434 at 3/24/17 12:48 AM:
--------------------------------------------------------------------

I'd recommend to convert this bug to a task as it's not related to broadcasts but a generalization of binary operations: So far, we support matrix-vector (w/ row or columns vectors) but no vector-matrix binary operations and this applies to all related compiler and runtime aspects, including broadcasts.


was (Author: mboehm7):
I'd recommend to convert this bug to a tasks as it's not related to broadcasts but a generalization of binary operations: So far, we support matrix-vector but no vector-matrix binary operations, but the vector can be either a row or column vector.

> Broadcasting Error
> ------------------
>
>                 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)