Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • SystemML 0.11
    • SystemML 0.11
    • None
    • None

    Description

      Currently, if a matrix of all zeros is passed into `max_pool`, a null pointer exception will be raised. This is a possibility within the course of training a neural net that uses ReLU & Dropout layers.

      script = """
      N = 2
      C = 3
      Hin = 10
      Win = 10
      f = 2
      stride = 2
      X = matrix(0, rows=N, cols=C*Hin*Win)
      out = max_pool(X, input_shape=[N,C,Hin,Win], pool_size=[f,f], stride=[stride,stride], padding=[0,0])
      """
      script = dml(script).output("out")
      out = ml.execute(script).get("out")
      out.toDF().collect()
      
      Caused by: org.apache.sysml.runtime.DMLRuntimeException: Error while executing multi-threaded MaxPooling_Forward
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.runParallelConvTask(LibMatrixDNN.java:889)
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.runConvTask(LibMatrixDNN.java:849)
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.maxpooling(LibMatrixDNN.java:733)
      	at org.apache.sysml.runtime.instructions.cp.ConvolutionCPInstruction.processInstruction(ConvolutionCPInstruction.java:192)
      	at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:305)
      	... 17 more
      Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
      	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.runParallelConvTask(LibMatrixDNN.java:883)
      	... 21 more
      Caused by: java.lang.NullPointerException
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.doPooling(LibMatrixDNN.java:756)
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.access$000(LibMatrixDNN.java:41)
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN$ConvTask.call(LibMatrixDNN.java:912)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	... 1 more
      

      Attachments

        Issue Links

          Activity

            dusenberrymw Mike Dusenberry added a comment - cc niketanpansare , nakul02

            This bug was fixed in https://github.com/apache/incubator-systemml/pull/158/files#diff-fc2b8d6f7d970f18901e50daabd9d0d1R191, but am waiting for 0.11 release before merging.

            niketanpansare Niketan Pansare added a comment - This bug was fixed in https://github.com/apache/incubator-systemml/pull/158/files#diff-fc2b8d6f7d970f18901e50daabd9d0d1R191 , but am waiting for 0.11 release before merging.

            Great! Should we extract that bug fix into a single commit and put it in 0.11 since we have to cut another release? It basically blocks any conv net scripts.

            dusenberrymw Mike Dusenberry added a comment - Great! Should we extract that bug fix into a single commit and put it in 0.11 since we have to cut another release? It basically blocks any conv net scripts.
            niketanpansare Niketan Pansare added a comment - Fixed in the commit https://github.com/apache/incubator-systemml/commit/e0e60a611190cd78f13cc9af83ebde1db2e9b8a1

            People

              niketanpansare Niketan Pansare
              dusenberrymw Mike Dusenberry
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: