/// <summary>ベルヌーイ分布に従う2値</summary>
 public static VariableField BinaryRandom(Shape shape, Random random, float prob)
 {
     return(VariableNode.BinaryRandom(shape, random, prob));
 }
Example #2
0
        /// <summary>四元数2項演算</summary>
        internal static VariableNode QuaternionBinaryArithmetric(VariableNode x1, VariableNode x2, Operators.QuaternionBinaryArithmetric.QuaternionBinaryArithmetric arithmetric)
        {
            Function function = new Functions.QuaternionArithmetric.QuaternionBinaryArithmetric(arithmetric);

            return(Apply(function, x1, x2)[0]);
        }
Example #3
0
        /// <summary>チャネル拡張</summary>
        public static VariableNode ExpandChannel(VariableNode x, int expands)
        {
            Function function = new Functions.ArrayManipulation.ExpandChannel(x.Shape, expands);

            return(Apply(function, x)[0]);
        }
Example #4
0
        /// <summary>実数から3次元ベクトルを構成</summary>
        public static VariableNode TrivectorCast(VariableNode x, VariableNode y, VariableNode z)
        {
            Function function = new Functions.Trivector.TrivectorCast();

            return(Apply(function, x, y, z)[0]);
        }
Example #5
0
        /// <summary>四元数純第2成分</summary>
        public static VariableNode QuaternionPureI(VariableNode X)
        {
            Function function = new Functions.Quaternion.QuaternionPureI();

            return(Apply(function, X)[0]);
        }
Example #6
0
        /// <summary>軸反転</summary>
        public static VariableNode Flip(VariableNode x, int axis)
        {
            Function function = new Functions.ArrayManipulation.Flip(axis);

            return(Apply(function, x)[0]);
        }
Example #7
0
        /// <summary>複素実部</summary>
        public static VariableNode ComplexReal(VariableNode x)
        {
            Function function = new Functions.Complex.ComplexReal();

            return(Apply(function, x)[0]);
        }
        /// <summary>3次元ベクトル純Y成分</summary>
        public static VariableNode TrivectorPureY(VariableNode X)
        {
            Function function = new Functions.Trivector.TrivectorPureY();

            return(Apply(function, X)[0]);
        }
        /// <summary>ソート</summary>
        public static (VariableNode key, VariableNode value) SortWithKey(VariableNode k, VariableNode v, int axis)
        {
            Function function = new Functions.ArrayManipulation.SortWithKey(axis);

            VariableNode[] kv = Apply(function, k, v);

            return(kv[0], kv[1]);
        }
Example #10
0
        /// <summary>3次元ベクトル3次元カーネル積</summary>
        public static VariableNode TrivectorKernelProduct3D(VariableNode x, VariableNode y, VariableNode q, int kwidth, int kheight, int kdepth, int stride, bool transpose = false)
        {
            Function function =
                new Functions.TrivectorConvolution.TrivectorKernelProduct3D(x.Shape, y.Shape, kwidth, kheight, kdepth, stride, transpose);

            VariableNode w = Apply(function, x, y, q)[0];

            return(w);
        }
Example #11
0
        /// <summary>3次元ベクトル2項演算</summary>
        internal static VariableNode TrivectorBinaryArithmetric(VariableNode v, VariableNode u, Operators.TrivectorBinaryArithmetric.TrivectorBinaryArithmetric arithmetric)
        {
            Function function = new Functions.TrivectorArithmetric.TrivectorBinaryArithmetric(arithmetric);

            return(Apply(function, v, u)[0]);
        }
Example #12
0
 /// <summary>一様乱数を生成(XorShift)</summary>
 /// <remarks>値域 : [0, 1)</remarks>
 public static VariableField UniformRandom(Shape shape, Random random)
 {
     return(VariableNode.UniformRandom(shape, random));
 }
        /// <summary>複素純実数</summary>
        public static VariableNode ComplexPureReal(VariableNode real)
        {
            Function function = new Functions.Complex.ComplexPureReal();

            return(Apply(function, real)[0]);
        }
        /// <summary>チャネル方向に切り出し</summary>
        public static VariableNode ExtractChannel(VariableNode x, int index, int channels)
        {
            Function function = new Functions.ArrayManipulation.ExtractChannel(index, channels);

            return(Apply(function, x)[0]);
        }
        /// <summary>3次元ベクトル全結合カーネル積</summary>
        public static VariableNode TrivectorKernelProductDense(VariableNode x, VariableNode y, VariableNode q, bool transpose = false)
        {
            Function function =
                new Functions.TrivectorConvolution.TrivectorKernelProductDense(x.Shape, y.Shape, transpose);

            VariableNode w = Apply(function, x, y, q)[0];

            return(w);
        }
Example #16
0
        /// <summary>3次元ベクトルZ成分</summary>
        public static VariableNode TrivectorZ(VariableNode x)
        {
            Function function = new Functions.Trivector.TrivectorZ();

            return(Apply(function, x)[0]);
        }
        /// <summary>チャネル方向に挿入</summary>
        internal static VariableNode InsertChannel(VariableNode x, int index, int channels)
        {
            Function function = new Functions.ArrayManipulation.InsertChannel(index, channels);

            return(Apply(function, x)[0]);
        }
Example #18
0
 /// <summary>コンストラクタ</summary>
 /// <param name="node">入力ノード</param>
 /// <param name="tensor">テンソル</param>
 /// <param name="name">ノード名</param>
 /// <remarks>tensor を null にした場合フロー構築時にテンソルが割り当てられる</remarks>
 internal OutputNode(VariableNode node, Tensor tensor = null, string name = "")
     : base(node.Shape, tensor, node)
 {
     this.Name = name;
 }
Example #19
0
        /// <summary>3次元ベクトル四元数回転積四元数勾配</summary>
        internal static VariableNode TrivectorQuaternionMulQGrad(VariableNode v, VariableNode u, VariableNode q)
        {
            Function function = new Functions.TrivectorArithmetric.TrivectorQuaternionMulQGrad();

            return(Apply(function, v, u, q)[0]);
        }
        /// <summary>2項演算</summary>
        internal static VariableNode FactorArithmetric(VariableNode x1, VariableNode x2, Operators.FactorArithmetric.FactorArithmetric factorbinary_operator)
        {
            Function function = new Functions.FactorArithmetric.FactorArithmetric(factorbinary_operator);

            return(Apply(function, x1, x2)[0]);
        }
Example #21
0
        /// <summary>分離</summary>
        public static VariableNode[] Separate(VariableNode x, int axis, int[] lengths)
        {
            Function function = new Functions.ArrayManipulation.Separate(axis, lengths);

            return(Apply(function, x));
        }
Example #22
0
        /// <summary>2項演算</summary>
        internal static VariableNode BinaryLeftVectorArithmetric(VariableNode x1, VariableNode x2, Operators.BinaryArithmetric.BinaryLeftVectorArithmetric binary_operator)
        {
            Function function = new Functions.BinaryLeftVectorArithmetric.BinaryLeftVectorArithmetric(binary_operator);

            return(Apply(function, x1, x2)[0]);
        }
Example #23
0
        /// <summary>3項演算</summary>
        internal static VariableNode TrinaryArithmetric(VariableNode x1, VariableNode x2, VariableNode x3, Operators.TrinaryArithmetric.TrinaryArithmetric trinary_operator)
        {
            Function function = new Functions.TrinaryArithmetric.TrinaryArithmetric(trinary_operator);

            return(Apply(function, x1, x2, x3)[0]);
        }
Example #24
0
        /// <summary>四元数第4成分</summary>
        public static VariableNode QuaternionK(VariableNode x)
        {
            Function function = new Functions.Quaternion.QuaternionK();

            return(Apply(function, x)[0]);
        }
Example #25
0
        /// <summary>複素数1項演算</summary>
        internal static VariableNode ComplexUnaryArithmetric(VariableNode x, Operators.ComplexUnaryArithmetric.ComplexUnaryArithmetric arithmetric)
        {
            Function function = new Functions.ComplexArithmetric.ComplexUnaryArithmetric(arithmetric);

            return(Apply(function, x)[0]);
        }