当需要融合两个 layer 时, 先要确定层之间的坐标对应关系.
argument layer with coordinate map
坐标映射可以表示成 $Ax+b$, 其中 $A$是对角阵(即只有缩放, 没有拉伸), 根据坐标的维数, 赋值参数. 比如 2维的identity坐标变换 $(a_{1,2}, b_{1,2}) = (1, 0)$.
C++: make_pair: make two element a pari vector constructor: (n, value) transform: apply ops to each elements
组合变换: $A_2(A_{1}x+b_1)+b_2$.
逆变换: $A^{-1}y-A^{-1}b$.
deconvolution: filter map
convolution: filter map inv 确认下是逆.
应该要保证两个结点 scale 的尺度是一样的, 主要解决因为 padding 导致的偏移不一致. 从节点回溯直接找到一个共同的父节点, 然后计算仿射变换矩阵, 不确定 crop_h, crop_w 的计算方式 ...
在讨论区有关于重构 crop layer, 即只提供 crop 大小的参数. python code 用于计算 crop 的数值, 并不需要在网络中为了一个 crop 维护好多东西.
实现了根据提供的参数进行 crop 的实现; TODO: 具体细节梳理.
对话中有详细的设计说明.