Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
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
- is related to
-
SYSTEMDS-1077 Max Pooling Null Pointer
- Resolved