I have tried torch.nn.AdaptiveAvgPool2d(output_size) as follow:
m = nn.AdaptiveAvgPool2d((4,1))
a=torch.randn(1, 64, 7, 9)
output = m(input)
then I got the following results:
output[0,1,0]=torch.mean(a[0,1,0:2])
output[0,1,1]=torch.mean(a[0,1,1:4])
output[0,1,2]=torch.mean(a[0,1,3:6])
output[0,1,3]=torch.mean(a[0,1,5:7])
Do anyone know how the function torch.nn.AdaptiveAvgPool2d(output_size) works?  Or can someone tell me where I can find the source code of torch.nn.AdaptiveAvgPool2d(output_size)?