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

Sparse Max Pooling Unsupported

    XMLWordPrintableJSON

Details

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

    Description

      Currently, our max pooling built-in operator does not support sparse matrices. However, sparse matrices are a common possibility in neural nets that make use of ReLU and Dropout layers, and are likely to happen at random depending on exact characteristics of intermediate matrices during training. Therefore, we should accept sparse matrices as input.

      Caused by: org.apache.sysml.runtime.DMLRuntimeException: Sparse maxpooling_backward is not supported
      	at org.apache.sysml.runtime.matrix.data.LibMatrixDNN.maxpooling_backward(LibMatrixDNN.java:526)
      	at org.apache.sysml.runtime.instructions.cp.ConvolutionCPInstruction.processInstruction(ConvolutionCPInstruction.java:205)
      	at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:305)
      	... 26 more
      

      Reproducible example (Python):

      script = """
      N = 2
      C = 3
      Hin = 10
      Win = 10
      Hout = 5
      Wout = 5
      f = 2
      stride = 2
      X = matrix(0, rows=N, cols=C*Hin*Win)
      dout = matrix(0, rows=N, cols=C*Hout*Wout)
      out = max_pool_backward(X, dout, 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")
      l = out.toDF().collect()
      l
      

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: