深度学习可视化反卷积deconv deconvolution到底如何实现,也是反向传播的卷积层梯度

网上帖子都是给一个2D的卷积图,其实并没什么用。


由于任务需要,我自己写一套反向传播,发现各种坑的地方,

这次介绍一下反卷积的实现。

我开始以为反卷积这样就可以permute(para_conv, [2 1 4 3]);

但直接这样是不对的。


实际需要,在4D卷积核最后两个channel维度(3 和 4)互换后,一定要把前面两维也做变换。

具体变换就是上下、左右各翻转一次。

可以用fliplr和flipud实现。


反向传播如果没有自动求导的代码,手写这部分东西繁琐的地方很多,毫无意义,根据欧拉-拉格朗日方程,这种方法本身就是不精确的,所以求出精确的导数函数解也没有意义,能梯度下降好,收敛就可以了。

如果以后算力高,不知道会不会把数值分析里面的高级求值方法引入,比如著名的四阶龙哥库塔法这些。


你可能感兴趣的:(OpenCV函数学习,图像基础知识)