我试图制作一个反卷积层,仅使用numpy进行 [UpSampling + Conv层] 。我已经完成了Conv层的构建,但是我不知道UpSampling层的工作原理。
我认为有多个UpSampling层,例如用零填充输出,
1 2 3 1 0 2 0 3 0
4 6 7 -> 0 0 0 0 0 0
5 9 8 4 0 6 0 7 0
0 0 0 0 0 0
5 0 9 0 8 0
0 0 0 0 0 0
或者只是用最接近的值填充。
1 2 3 1 1 2 2 3 3
4 6 7 -> 1 1 2 2 3 3
5 9 8 4 4 6 6 7 7
4 4 6 6 7 7
5 5 9 9 8 8
5 5 9 9 8 8
但是,如何在这些层中进行反向传播?
我认为对于第一个UpSampling层,我们只需要使用 dout(从下一层传播的导数)中不为零的部分,但是我不确定。