aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominic Symes <dominic.symes@arm.com>2021-09-03 11:45:59 +0100
committerDominic Symes <dominic.symes@arm.com>2021-09-03 11:47:44 +0100
commit32de3912884dc2dc1425b61c419bbd30f2adbbbd (patch)
tree42c31641f11f887d4dc1e447e076d51d2786aaba
parent8f57f9e092836a584d7b007b926a31fe2bc80b8a (diff)
downloadspecification-32de3912884dc2dc1425b61c419bbd30f2adbbbd.tar.gz
MAX_POOL2D: Fix padding behaviour
Change-Id: Idcf4b99161ce05e56391fbc9107a19617cb1ad21 Signed-off-by: Dominic Symes <dominic.symes@arm.com>
-rw-r--r--chapters/tensor_ops.adoc8
1 files changed, 5 insertions, 3 deletions
diff --git a/chapters/tensor_ops.adoc b/chapters/tensor_ops.adoc
index 7334f67..6bf9bf2 100644
--- a/chapters/tensor_ops.adoc
+++ b/chapters/tensor_ops.adoc
@@ -447,7 +447,6 @@ None
[source,c++]
----
-pad = flatten([0,0], pad, [0,0]);
for_each(0 <= n < N, 0 <= oy < H, 0 <= ox < W, 0 <= c < C ) {
in_t acc = minimum_value<in_t>;
iy = oy * stride_y - pad_top;
@@ -455,8 +454,11 @@ for_each(0 <= n < N, 0 <= oy < H, 0 <= ox < W, 0 <= c < C ) {
for_each( 0 <= ky < kernel_y, 0 <= kx < kernel_x ) {
y = iy + ky;
x = ix + kx;
- in_t value = tensor_read<in_t>(input, [N,IH,IW,C], [n,y,x,c], pad);
- acc = apply_max(acc, value);
+ ERROR_IF(y >= IH + pad_bottom || x >= IW + pad_right);
+ if (y >= 0 && y < IH && x >= 0 && x < IW) {
+ in_t value = tensor_read<in_t>(input, [N,IH,IW,C], [n,y,x,c]);
+ acc = apply_max(acc, value);
+ }
}
tensor_write<in_t>(output, [N,H,W,C], [n,oy,ox,c], acc);
}