Repository: systemml Updated Branches: refs/heads/master 648eb21d6 -> eee35e984
[SYSTEMML-1774] Bugfix for NPE in relu backward instruction Closes #579. Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/eee35e98 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/eee35e98 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/eee35e98 Branch: refs/heads/master Commit: eee35e984aa1a810da1fadf294174e45dcca15bd Parents: 648eb21 Author: Niketan Pansare <npan...@us.ibm.com> Authored: Fri Jul 21 09:18:20 2017 -0800 Committer: Niketan Pansare <npan...@us.ibm.com> Committed: Fri Jul 21 10:18:20 2017 -0700 ---------------------------------------------------------------------- .../runtime/instructions/cp/ConvolutionCPInstruction.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/eee35e98/src/main/java/org/apache/sysml/runtime/instructions/cp/ConvolutionCPInstruction.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ConvolutionCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ConvolutionCPInstruction.java index f12cb7f..97a9a5a 100644 --- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ConvolutionCPInstruction.java +++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ConvolutionCPInstruction.java @@ -222,12 +222,15 @@ public class ConvolutionCPInstruction extends UnaryCPInstruction // (X > 0) * dout MatrixBlock input = ec.getMatrixInput(input1.getName(), getExtendedOpcode()); MatrixBlock dout = ec.getMatrixInput(_in2.getName(), getExtendedOpcode()); - MatrixBlock outputBlock = new MatrixBlock(input.getNumRows(), input.getNumColumns(), (input.isInSparseFormat() || dout.isInSparseFormat())); + MatrixBlock outputBlock; if( !input.isEmpty() && !dout.isEmpty() ) { - outputBlock.allocateDenseOrSparseBlock(); + outputBlock = new MatrixBlock(input.getNumRows(), input.getNumColumns(), false); + outputBlock.allocateDenseBlock(); LibMatrixDNN.reluBackward(input, dout, outputBlock, _numThreads); } + else + outputBlock = new MatrixBlock(input.getNumRows(), input.getNumColumns(), true); // release inputs/outputs ec.releaseMatrixInput(input1.getName(), getExtendedOpcode());