Esempio n. 1
0
 def backward(self, grad_output):
     input = self._saved_tensor
     grad_input = avgpool2d_backward(input, grad_output, self.kernel_size,
                                     self.pad)
     return grad_input
Esempio n. 2
0
    test_pool_out = avgpool2d_forward(pool_inp, 2, 0)
except:
    print(
        '[FAILED] avgpool2d_forward: bug in codes, can not run for inp.shape = (4, 3, 6, 6), ker_size = 2, pad = 0'
    )
else:
    if test_pool_out.shape != pool_out.shape:
        print('[ERROR] avgpool2d_forward: output shape is not correct')
    else:
        diff = test_pool_out - pool_out
        if abs(diff).max() > 1e-5:
            print('[ERROR] avgpool2d_forward: output value is not correct')
        else:
            print('[PASS] avgpool2d_forward: all correct')

try:
    test_grad_pool_inp = avgpool2d_backward(pool_inp, grad_pool_out, 2, 0)
except:
    print(
        '[FAILED] avgpool2d_backward: bug in codes, can not run for inp.shape = (4, 3, 6, 6), grad.shape = (4, 3, 4, 4), ker_size = 2, pad = 0'
    )
else:
    if test_grad_pool_inp.shape != grad_pool_inp.shape:
        print('[ERROR] avgpool2d_backward: grad input shape is not correct')
    else:
        diff = test_grad_pool_inp - grad_pool_inp
        if abs(diff).max() > 1e-5:
            print(
                '[ERROR] avgpool2d_backward: grad input value is not correct')
        else:
            print('[PASS] avgpool2d_backward: all correct')