Uploaded image for project: 'SystemDS'
  1. SystemDS
  2. SYSTEMDS-652

Left-Indexing With Result of DML Function Changes Matrix Size

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • SystemML 0.9, SystemML 0.10
    • SystemML 0.10
    • Compiler
    • None

    Description

      I've found a bug in which assigning the result of a DML function to a portion of a matrix with left-indexing results in the left-hand matrix being reduced in size dimensionally. This bug was encountered while working on the deep learning DML library, and the following simplified example aims to provide a simple, reproducible example.

      Given the following code,

      N = 3
      M = 5
      forward = function(matrix[double] X) return (matrix[double] out) {
        out = 1 / (1 + exp(-X))
      }
      
      X = rand(rows=N, cols=M)
      X[,1:2] = forward(X[,1:2])
      print("X1: " + nrow(X) + "x" + ncol(X))
      
      if(1==1){}
      
      X = rand(rows=N, cols=M)
      temp = forward(X[,1:2])
      X[,1:2] = temp
      print("X2: " + nrow(X) + "x" + ncol(X))
      
      if(1==1){}
      print("")
      

      , notice that X should always be a 3x5 matrix, as both cases are equivalent. However, in the first case, X is truncated to a 3x2 matrix:

      X1: 3x2
      X2: 3x5
      

      Note: The if(1==1) statements are included because otherwise the print statements are executed out of order.

      Attachments

        Issue Links

          Activity

            People

              mboehm7 Matthias Boehm
              dusenberrymw Mike Dusenberry
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: