[ https://issues.apache.org/jira/browse/SYSTEMML-1428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Dusenberry updated SYSTEMML-1428: -------------------------------------- Description: While working on SYSTEMML-1408, it was discovered that the built-in max pooling function gives incorrect results if padding > 0 is used. Padded Matrix: {code} # -- channel 1 # 0 0 0 0 0 0 # 0 1 2 3 4 0 # 0 5 6 7 8 0 # 0 9 10 11 12 0 # 0 13 14 15 16 0 # 0 0 0 0 0 0 # -- channel 2 # 0 0 0 0 0 0 # 0 1 5 9 13 0 # 0 2 6 10 14 0 # 0 3 7 11 15 0 # 0 4 8 12 16 0 # 0 0 0 0 0 0 {code} Correct output: {code} # -- channel 1 # 1 3 4 # 9 11 12 # 13 15 16 # -- channel 2 # 1 9 13 # 3 11 15 # 4 12 16 {code} Builtin output: {code} # -- channel 1 # 2 3 4 # 10 11 12 # 14 15 16 # -- channel 2 # 5 9 13 # 7 11 15 # 8 12 16 {code} The current behavior is as follows -- the builtin version is (1) *not* adding the 1st and 6th **columns** of padding, and (2) is performing **stride-1** max-pooling on the partially-padded matrix, rather than stride-2. Partially-padded matrix: {code} # -- channel 1 # 0 0 0 0 # 1 2 3 4 # 5 6 7 8 # 9 10 11 12 # 13 14 15 16 # 0 0 0 0 # -- channel 2 # 0 0 0 0 # 1 5 9 13 # 2 6 10 14 # 3 7 11 15 # 4 8 12 16 # 0 0 0 0 {code} ([PR 434 | https://github.com/apache/incubator-systemml/pull/434] contains more information.) > Built-in max pooling functions give incorrect output with padding>0 > ------------------------------------------------------------------- > > Key: SYSTEMML-1428 > URL: https://issues.apache.org/jira/browse/SYSTEMML-1428 > Project: SystemML > Issue Type: Bug > Reporter: Mike Dusenberry > Assignee: Mike Dusenberry > > While working on SYSTEMML-1408, it was discovered that the built-in max > pooling function gives incorrect results if padding > 0 is used. > Padded Matrix: > {code} > # -- channel 1 > # 0 0 0 0 0 0 > # 0 1 2 3 4 0 > # 0 5 6 7 8 0 > # 0 9 10 11 12 0 > # 0 13 14 15 16 0 > # 0 0 0 0 0 0 > # -- channel 2 > # 0 0 0 0 0 0 > # 0 1 5 9 13 0 > # 0 2 6 10 14 0 > # 0 3 7 11 15 0 > # 0 4 8 12 16 0 > # 0 0 0 0 0 0 > {code} > Correct output: > {code} > # -- channel 1 > # 1 3 4 > # 9 11 12 > # 13 15 16 > # -- channel 2 > # 1 9 13 > # 3 11 15 > # 4 12 16 > {code} > Builtin output: > {code} > # -- channel 1 > # 2 3 4 > # 10 11 12 > # 14 15 16 > # -- channel 2 > # 5 9 13 > # 7 11 15 > # 8 12 16 > {code} > The current behavior is as follows -- the builtin version is (1) *not* adding > the 1st and 6th **columns** of padding, and (2) is performing **stride-1** > max-pooling on the partially-padded matrix, rather than stride-2. > Partially-padded matrix: > {code} > # -- channel 1 > # 0 0 0 0 > # 1 2 3 4 > # 5 6 7 8 > # 9 10 11 12 > # 13 14 15 16 > # 0 0 0 0 > # -- channel 2 > # 0 0 0 0 > # 1 5 9 13 > # 2 6 10 14 > # 3 7 11 15 > # 4 8 12 16 > # 0 0 0 0 > {code} > ([PR 434 | https://github.com/apache/incubator-systemml/pull/434] contains > more information.) -- This message was sent by Atlassian JIRA (v6.3.15#6346)