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)?