From 2947f5678eb1377302cc15ff504d164c44d7dec3 Mon Sep 17 00:00:00 2001 From: chengduoZH Date: Mon, 23 Oct 2017 20:39:21 +0800 Subject: [PATCH] follow comments --- paddle/operators/math/im2col.cc | 116 +++++++++++++++++++------------- 1 file changed, 68 insertions(+), 48 deletions(-) diff --git a/paddle/operators/math/im2col.cc b/paddle/operators/math/im2col.cc index 441ae7c229..d3a736a62d 100644 --- a/paddle/operators/math/im2col.cc +++ b/paddle/operators/math/im2col.cc @@ -42,14 +42,20 @@ class Im2ColFunctor= input_height || - (im_col_idx - padding_left) < 0 || - (im_col_idx - padding_left) >= input_width) { + int im_row_idx = h * stride_height + h_offset - padding_up; + int im_col_idx = w * stride_width + w_offset - padding_left; + + if (im_row_idx < 0 || im_row_idx >= input_height || im_col_idx < 0 || + im_col_idx >= input_width) { col_data[(c * output_height + h) * output_width + w] = T(0); } else { - im_row_idx += c_im * input_height - padding_up; - im_col_idx -= padding_left; + im_row_idx += c_im * input_height; col_data[(c * output_height + h) * output_width + w] = im_data[im_row_idx * input_width + im_col_idx]; } @@ -104,14 +108,20 @@ class Col2ImFunctor= 0 && - (im_row_idx - padding_up) < input_height && - (im_col_idx - padding_left) >= 0 && - (im_col_idx - padding_left) < input_width) { - im_row_idx += c_im * input_height - padding_up; - im_col_idx -= padding_left; + int im_row_idx = h * stride_height + h_offset - padding_up; + int im_col_idx = w * stride_width + w_offset - padding_left; + + if ((im_row_idx) >= 0 && (im_row_idx) < input_height && + (im_col_idx) >= 0 && (im_col_idx) < input_width) { + im_row_idx += c_im * input_height; im_data[im_row_idx * input_width + im_col_idx] += col_data[(c * output_height + h) * output_width + w]; } @@ -173,14 +181,20 @@ class Im2ColFunctor(); T* col_data = col.data(); @@ -243,14 +257,20 @@ class Col2ImFunctor(); const T* col_data = col.data(); -- GitLab