def check_avg_dygraph_padding_results(self, place): with fluid.dygraph.guard(place): input_np = np.random.random([2, 3, 32]).astype("float32") input = fluid.dygraph.to_variable(input_np) result = F.avg_pool1d(input, kernel_size=2, stride=2, padding=[1], exclusive=True) result_np = avg_pool1D_forward_naive(input_np, ksize=[2], strides=[2], paddings=[1], exclusive=False) self.assertTrue(np.allclose(result.numpy(), result_np)) avg_pool1d_dg = paddle.nn.AvgPool1D(kernel_size=2, stride=None, padding=1, exclusive=True) result = avg_pool1d_dg(input) self.assertTrue(np.allclose(result.numpy(), result_np))
def check_avg_dygraph_padding_same(self, place): with fluid.dygraph.guard(place): input_np = np.random.random([2, 3, 32]).astype("float32") input = fluid.dygraph.to_variable(input_np) result = F.avg_pool1d( input, kernel_size=2, stride=2, padding="SAME") result_np = avg_pool1D_forward_naive( input_np, ksize=[2], strides=[2], paddings=[0]) self.assertTrue(np.allclose(result.numpy(), result_np))
def run_stride_out_of_range(): with fluid.dygraph.guard(): input_np = np.random.uniform(-1, 1, [2, 3, 32]).astype(np.float32) input_pd = fluid.dygraph.to_variable(input_np) padding = 0 res_pd = F.avg_pool1d(input_pd, kernel_size=2, stride=0, padding=padding, ceil_mode=True)
def check_avg_static_results(self, place): with fluid.program_guard(fluid.Program(), fluid.Program()): input = fluid.data(name="input", shape=[2, 3, 32], dtype="float32") result = F.avg_pool1d(input, kernel_size=2, stride=2, padding=0) input_np = np.random.random([2, 3, 32]).astype("float32") result_np = avg_pool1D_forward_naive( input_np, ksize=[2], strides=[2], paddings=[0], ceil_mode=False) exe = fluid.Executor(place) fetches = exe.run(fluid.default_main_program(), feed={"input": input_np}, fetch_list=[result]) self.assertTrue(np.allclose(fetches[0], result_np))