You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Mike Dusenberry (JIRA)" <ji...@apache.org> on 2017/03/21 19:32:41 UTC

[jira] [Updated] (SYSTEMML-1428) Built-in max pooling functions give incorrect output with padding>0

     [ 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)