Esempio n. 1
0
        public static Tensor Constant(float value, IAllocator allocator, DType dtype, params long[] sizes)
        {
            Tensor tensor = new Tensor(allocator, dtype, sizes);

            TOps.Fill(tensor, value);
            return(tensor);
        }
Esempio n. 2
0
        public static NDArray Constant(float value, IAllocator allocator, DType dtype, params long[] sizes)
        {
            NDArray tensor = new NDArray(allocator, dtype, sizes);

            TOps.Fill(tensor, value);
            return(tensor);
        }
Esempio n. 3
0
        public static NDArray Maximum(NDArray a, float b)
        {
            var b_t = new NDArray(a.Allocator, a.ElementType, a.Shape);

            TOps.Fill(b_t, b);
            return(Maximum(a, b_t));
        }
Esempio n. 4
0
        public static NDArray Maximum(float a, NDArray b)
        {
            var a_t = new NDArray(b.Allocator, b.ElementType, b.Shape);

            TOps.Fill(a_t, a);
            return(Maximum(a_t, b));
        }
Esempio n. 5
0
        public static Tensor Maximum(Tensor a, float b)
        {
            var b_t = new Tensor(a.Allocator, a.ElementType, a.Shape);

            TOps.Fill(b_t, b);
            return(Maximum(a, b_t));
        }
Esempio n. 6
0
        public static Tensor Maximum(float a, Tensor b)
        {
            var a_t = new Tensor(b.Allocator, b.ElementType, b.Shape);

            TOps.Fill(a_t, a);
            return(Maximum(a_t, b));
        }
Esempio n. 7
0
        /// <summary>
        /// Transposes the specified dimension1.
        /// </summary>
        /// <param name="dimension1">The dimension1.</param>
        /// <param name="dimension2">The dimension2.</param>
        /// <returns>Tensor.</returns>
        /// <exception cref="ArgumentOutOfRangeException">
        /// dimension1
        /// or
        /// dimension2
        /// </exception>
        private NDArray Transpose(int dimension1, int dimension2, bool NewContiguous = false)
        {
            if (dimension1 < 0 || dimension1 >= DimensionCount)
            {
                throw new ArgumentOutOfRangeException("dimension1");
            }
            if (dimension2 < 0 || dimension2 >= DimensionCount)
            {
                throw new ArgumentOutOfRangeException("dimension2");
            }

            if (dimension1 == dimension2)
            {
                storage.AddRef();
                return(this);
            }

            var newSizes   = (long[])shape.Clone();
            var newStrides = (long[])strides.Clone();

            ArraySwap(newSizes, dimension1, dimension2);
            ArraySwap(newStrides, dimension1, dimension2);

            if (NewContiguous)
            {
                return(TOps.NewContiguous(new NDArray(newSizes, newStrides, storage, storageOffset)).Reshape(newSizes));
            }

            return(new NDArray(newSizes, newStrides, storage, storageOffset));
        }
Esempio n. 8
0
        public static Tensor operator /(Tensor lhs, Tensor rhs)
        {
            if (rhs.DimensionCount == 1)
            {
                return(TOps.Div(lhs, rhs.ToArray().Cast <float>().First()));
            }

            if (lhs.DimensionCount == 1)
            {
                return(TOps.Div(lhs.ToArray().Cast <float>().First(), rhs));
            }

            (lhs, rhs) = TOps.Broadcast_Div(lhs, rhs);
            return(TOps.Div(lhs, rhs));
        }
Esempio n. 9
0
 public static Tensor operator *(float lhs, Tensor rhs)
 {
     return(TOps.Mul(rhs, lhs));
 }
Esempio n. 10
0
 public static Tensor operator *(Tensor lhs, float rhs)
 {
     return(TOps.Mul(lhs, rhs));
 }
Esempio n. 11
0
 public static NDArray operator <(NDArray lhs, NDArray rhs)
 {
     return(TOps.GreaterThan(rhs, lhs));
 }
Esempio n. 12
0
 public void Fill(float value)
 {
     TOps.Fill(this, value);
 }
Esempio n. 13
0
        public static Tensor operator <=(Tensor lhs, float rhs)
        {
            Tensor rhs_t = Tensor.Constant(rhs, lhs.Allocator, lhs.ElementType, lhs.shape);

            return(TOps.GreaterOrEqual(rhs_t, lhs));
        }
Esempio n. 14
0
 public static Tensor operator >=(Tensor lhs, float rhs)
 {
     return(TOps.GreaterOrEqual(lhs, rhs));
 }
Esempio n. 15
0
 public static Tensor operator >(Tensor lhs, float rhs)
 {
     return(TOps.GreaterThan(lhs, rhs));
 }
Esempio n. 16
0
 public static Tensor operator /(Tensor lhs, float rhs)
 {
     return(TOps.Div(lhs, rhs));
 }
Esempio n. 17
0
 public NDArray Tile(long repetitions)
 {
     return(TOps.Tile(this, repetitions));
 }
Esempio n. 18
0
        public static NDArray operator <=(NDArray lhs, float rhs)
        {
            NDArray rhs_t = NDArray.Constant(rhs, lhs.Allocator, lhs.ElementType, lhs.shape);

            return(TOps.GreaterOrEqual(rhs_t, lhs));
        }
Esempio n. 19
0
 public static NDArray operator <=(NDArray lhs, NDArray rhs)
 {
     return(TOps.GreaterOrEqual(rhs, lhs));
 }
Esempio n. 20
0
 public static NDArray operator >=(NDArray lhs, float rhs)
 {
     return(TOps.GreaterOrEqual(lhs, rhs));
 }
Esempio n. 21
0
 public static Tensor operator /(float lhs, Tensor rhs)
 {
     return(TOps.Div(rhs, lhs));
 }
Esempio n. 22
0
 public static Tensor operator +(Tensor lhs, float rhs)
 {
     return(TOps.Add(lhs, rhs));
 }
Esempio n. 23
0
 public static Tensor operator <(Tensor lhs, Tensor rhs)
 {
     return(TOps.GreaterThan(rhs, lhs));
 }
Esempio n. 24
0
 public static Tensor operator +(float lhs, Tensor rhs)
 {
     return(TOps.Add(rhs, lhs));
 }
Esempio n. 25
0
 public static Tensor operator <=(Tensor lhs, Tensor rhs)
 {
     return(TOps.GreaterOrEqual(rhs, lhs));
 }
Esempio n. 26
0
 public static NDArray operator /(float lhs, NDArray rhs)
 {
     return(TOps.Div(rhs, lhs));
 }
Esempio n. 27
0
 public Tensor Tile(long repetitions)
 {
     return(TOps.Tile(this, repetitions));
 }
Esempio n. 28
0
 public static Tensor operator -(float lhs, Tensor rhs)
 {
     return(TOps.Sub(lhs, rhs));
 }
Esempio n. 29
0
 public static Tensor operator -(Tensor lhs, float rhs)
 {
     return(TOps.Sub(lhs, rhs));
 }
Esempio n. 30
0
 public static NDArray operator >(NDArray lhs, float rhs)
 {
     return(TOps.GreaterThan(lhs, rhs));
 }