Esempio n. 1
0
        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);
        }