protected virtual void InitBilinear(NDArray array) { var shape = new Shape(array.GetShape()); var size = (int)shape.Size; var weight = new float[size]; var f = Math.Ceiling(shape[3] / 2.0f); var c = (2 * f - 1 - f % 2) / (2.0 * f); for (var i = 0; i < size; ++i) { var x = i % shape[3]; var y = (i / shape[3]) % shape[2]; weight[i] = (float)((1 - Math.Abs(x / f - c)) * (1 - Math.Abs(y / f - c))); } array.SyncCopyFromCPU(weight); }