コード例 #1
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
        public Tensor CreateVariable(float[] data, long[] shape, string name = "")
        {
            shape = BackendUtil.Row2ColMajor(shape);
            var arr = new CNTK.NDArrayView(BackendUtil.CastShapeInt(shape), data, DeviceManager.Current);
            var v   = new CNTK.Variable(BackendUtil.CastShapeInt(shape), VariableKind.Parameter, CNTK.DataType.Float, arr, false, new AxisVector(), false, name, name);

            return(Out(v));
        }
コード例 #2
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
        private Tensor CreateVariable(int[] data, long[] shape, string name = "")
        {
            shape = BackendUtil.Row2ColMajor(shape);

            var arr = new CNTK.NDArrayView(BackendUtil.CastShapeInt(shape), Array.ConvertAll(data, x => (float)x), DeviceManager.Current);
            var v   = new CNTK.Variable(BackendUtil.CastShapeInt(shape), VariableKind.Input, CNTK.DataType.Float, arr, false, new AxisVector(), false, name, name);

            return(Out(v));
        }
コード例 #3
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
        public Tensor Reshape(Tensor x, params long[] shape)
        {
            shape = BackendUtil.Row2ColMajor(shape);

            long prod = -1 * shape.Aggregate(1L, (a, b) => a * b);

            for (int i = 0; i < shape.Length; i++)
            {
                if (shape[i] == -1)
                {
                    shape[i] = x.ElementCount / prod;
                    break;
                }
            }

            return(Out(Data.ModDims(In(x), shape)));
        }
コード例 #4
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
        public Tensor CreateVariable(float[] data, long[] shape, string name = "")
        {
            shape = BackendUtil.Row2ColMajor(shape);
            var result = Out(Data.CreateArray(data));

            result.Name = name != "" ? UUID(name) : UUID("V");
            if (shape.Length == 2)
            {
                result = (NDArrayTensor)result.Reshape(shape);
            }

            if (shape.Length == 3)
            {
                result = (NDArrayTensor)result.Reshape(shape);
            }

            if (shape.Length == 4)
            {
                result = (NDArrayTensor)result.Reshape(shape);
            }

            return(result);
        }
コード例 #5
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
 public Tensor Constant(float value, long[] shape)
 {
     shape = BackendUtil.Row2ColMajor(shape);
     return(Out(Data.Constant <float>(value, BackendUtil.CastShapeInt(shape))));
 }
コード例 #6
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
        public Tensor Transpose(Tensor x, params int[] dims)
        {
            var shape = BackendUtil.Row2ColMajor(BackendUtil.Int2Long(dims));

            return(Out(Data.Reorder(In(x), BackendUtil.CastShapeUInt(shape))));
        }
コード例 #7
0
ファイル: SiaNetBackend.cs プロジェクト: touhidulfahim/SiaNet
 public Tensor Constant(float value, long[] shape)
 {
     shape = BackendUtil.Row2ColMajor(shape);
     return(Out(In(value, shape)));
 }