It is black because it zeros out the values in the dimensions it collapses, for example: In[1]:= pool = PoolingLayer[{2}] In[6]:= pool@{{1, 1, 1}, {1, 1, 1}, {1, 1, 1}} Out[6]= {{1., 1.}, {1., 1.}, {1., 1.}} In[7]:= pool[{{1, 1, 1}, {1, 1, 1}, {1, 1, 1}}, NetPortGradient["Input"]] Out[7]= {{1., 1., 0.}, {1., 1., 0.}, {1., 1., 0.}} So the black strips correspond to the 9 dropped columns and rows from the 10x10 pooling. However, it looks like *there may be a bug in the documentation*, which shows this example: [![enter image description here][1]][1] But the result is not what we expect when executed (v11.3): [![enter image description here][2]][2] Without the `ImageAdjust` it looks like this: [![enter image description here][3]][3] [1]: https://i.sstatic.net/Twj6s.png [2]: https://i.sstatic.net/IjklK.png [3]: https://i.sstatic.net/7qH0o.png