Deep Learning

插值算法

线性插值找到距离被插值元素最近的两个点(x0,y0)、(x1,y1)。两点连线,线上的值即为插值。X,Y即为,插值的位置和值。双线性插值是线性插值在二维空间中的扩展,使用相同的方法。该方法使用到了被插值点周围最近的4个点(Q11,Q12,Q21,Q22),最终得到二维空间中的插值点P。在X方向上进行两次线性插值,得到R1,R2。在Y方向进行一次插值得到P。双三次插值(Bicubic interpolation)和双线性插值相比,参与计算的点数为4X4 = 16个点。插值函数不再为线性函数而是三次函数。最终插值点的值为16个点的加权求和。三次多项式的插值函数为16个点加权求和:

  • 纳兰涟漪
    纳兰涟漪
2 min read
Python

Numpy的广播机制

numpy运算,维度匹配成功之后,并不会直接复制。而是提供了一套广播运算的操作来进行广播加运算。对于小矩阵来说,不进行repeat的复制,节约了内存占用。但是,如果遇到较大矩阵的广播操作,或运算前使用了np.newaxis扩展了维度,那么运算是广播后的运算结果会占用非常大的内存。当结果频繁使用到了虚拟内存,此时for循环反而更有效率。匹配规则,从右向左看,维度数目必须匹配(相同或其中一个为1)。若有一个维度为1,则会触发广播。

  • 纳兰涟漪
    纳兰涟漪
1 min read