Around line 38 in the file dcgan.py , Jeremy has:
output = output.mean(0)
return output.view(1) ```
the last few lines of the init method are :
```while csize > 4:
self.conv_block(main, 'pyramid', cndf, cndf*2, 4, 2, 1)
cndf *= 2; csize /= 2
\# state size. K x 4 x 4
main.add_module(f'final.{cndf}-1.conv', nn.Conv2d(cndf, 1, 4, 1, 0, bias=False))```
It seems to me that the last layer is a convolution that outputs 1 filter.
What is output = output.mean(0) doing?
If the output is a x*x matrix, should we be doing output.mean() instead(to get global average ).
I created a small 2d array , and calling mean(0) on that just gives me the averages column wise. I am not even able to call output.view(1)
What is the final layer's output of the DCGAN's discriminator class?