Beispiel #1
0
        public Tensor CreateVariable(float[] data, long[] shape, string name = "")
        {
            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));
        }
        public override Rect OnGUI()
        {
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            {
                // toggle interface type objects
                EditorGUI.BeginChangeCheck();
                {
                    includeInterfaces = GUILayout.Toggle(includeInterfaces, "Include Interfaces", EditorStyles.toolbarButton);
                }
                if (EditorGUI.EndChangeCheck())
                {
                    api.Rebuild();
                }

                GUILayout.FlexibleSpace();
                if (!api.GetTargets().Any() && GUILayout.Button("inspect Unity Object"))
                {
                    api.ResetTargets(new[] { typeof(UnityEngine.Object) });
                }

                // search field
                GUILayout.FlexibleSpace();
                searchstring = BackendUtil.DrawEntitySelectSearchField(searchstring, api);
            }
            GUILayout.EndHorizontal();
            return(BackendUtil.GetMaxRect());
        }
Beispiel #3
0
        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));
        }
 public override Rect OnGUI()
 {
     GUILayout.BeginHorizontal(EditorStyles.toolbar);
     {
         GUILayout.FlexibleSpace();
         searchString = BackendUtil.DrawEntitySelectSearchField(searchString, api);
     }
     GUILayout.EndHorizontal();
     return(BackendUtil.GetMaxRect());
 }
Beispiel #5
0
 public Tensor RandomNormal(long[] shape, float mean, float stddev, int?seed = null)
 {
     if (seed.HasValue)
     {
         return(Out(C.NormalRandom(BackendUtil.CastShapeInt(shape), CNTK.DataType.Float, mean, stddev, (uint)seed.Value)));
     }
     else
     {
         return(Out(C.NormalRandom(BackendUtil.CastShapeInt(shape), CNTK.DataType.Float, mean, stddev)));
     }
 }
Beispiel #6
0
        public Tensor RandomUniform(long[] shape, float min, float max, int?seed = null)
        {
            var result = Data.RandUniform <float>(BackendUtil.CastShapeInt(shape));

            if (min != 0 || max != 1)
            {
                result = Data.Constant <float>((max - min), result.Dimensions) * result + Data.Constant <float>(min, result.Dimensions);
            }

            return(Out(result));
        }
Beispiel #7
0
        public Tensor RandomNormal(long[] shape, float mean, float stddev, int?seed = null)
        {
            var result = Data.RandNormal <float>(BackendUtil.CastShapeInt(shape));

            if (mean != 0 || stddev != 1)
            {
                result = Data.Constant <float>(stddev, result.Dimensions) * result + Data.Constant <float>(mean, result.Dimensions);
            }

            return(Out(result));
        }
Beispiel #8
0
 public Tensor RandomUniform(long[] shape, float min, float max, int?seed = null)
 {
     if (seed.HasValue)
     {
         return(Out(C.UniformRandom(BackendUtil.CastShapeInt(shape), CNTK.DataType.Float, min, max, (uint)seed.Value)));
     }
     else
     {
         return(Out(C.UniformRandom(BackendUtil.CastShapeInt(shape), CNTK.DataType.Float, min, max)));
     }
 }
Beispiel #9
0
        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)));
        }
Beispiel #10
0
        // no need for toolbar or controls
        public Rect OnGUI()
        {
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            {
                if (GUILayout.Button("Show active scene", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false)))
                {
                    api.ResetTargets(new object[] { sceneObj });
                }

                EditorGUI.BeginChangeCheck();
                includeComponents = GUILayout.Toggle(includeComponents, "Include components");
                if (EditorGUI.EndChangeCheck())
                {
                    api.Rebuild();
                }

                GUILayout.FlexibleSpace();
            }
            GUILayout.EndHorizontal();
            return(BackendUtil.GetMaxRect());
        }
Beispiel #11
0
        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);
        }
        public override Rect OnGUI()
        {
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            {
                GUILayout.FlexibleSpace();

                showLegend = GUILayout.Toggle(showLegend, "Legend", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false));
                if (showLegend)
                {
                    string title       = "Node colors";
                    var    colorLegend = new ColorLegendEntry[]
                    {
                        new ColorLegendEntry()
                        {
                            text = "Target Object", color = api.GetSkin().entityWidget.targetBackgroundColor
                        },
                        new ColorLegendEntry()
                        {
                            text = "Asset", color = api.GetSkin().entityWidget.backgroundColor
                        },
                        new ColorLegendEntry()
                        {
                            text = "Scene Object", color = sceneNodeColor
                        }
                    };

                    var   boxSize = ColorLegendBox.GetSize(title, colorLegend);
                    float boxPosX = EditorGUIUtility.currentViewWidth - boxSize.x - 10;
                    float boxPosY = 42;
                    ColorLegendBox.Draw(new Rect(boxPosX, boxPosY, boxSize.x, boxSize.y), title, colorLegend);
                }
            }
            GUILayout.EndHorizontal();

            return(BackendUtil.GetMaxRect());
        }
        public override Rect OnGUI()
        {
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            {
                // option: use all gameobjects of the active scene as targets
                if (GUILayout.Button("Show active scene", EditorStyles.toolbarButton))
                {
                    api.ResetTargets(Object.FindObjectsOfType <GameObject>().Cast <object>().ToArray());
                }

                // option: remove untagged objects
                if (ContainsUntaggedTargets() &&
                    GUILayout.Button("Hide untagged", EditorStyles.toolbarButton))
                {
                    api.ResetTargets(api.GetTargets().Where(IsUntagged).ToArray());
                }

                GUILayout.FlexibleSpace();

                searchstring = BackendUtil.DrawEntitySelectSearchField(searchstring, api);
            }
            GUILayout.EndHorizontal();
            return(base.OnGUI());
        }
Beispiel #14
0
 /// <summary>
 /// Reshapes the data frame to specified new shape.
 /// </summary>
 /// <param name="newShape">The new shape.</param>
 public void Reshape(params long[] newShape)
 {
     UnderlayingVariable = UnderlayingVariable.reshape(new Shape(BackendUtil.CastShapeInt(newShape)));
 }
Beispiel #15
0
 public Tensor Constant(float value, long[] shape)
 {
     return(Out(Data.Constant <float>(value, BackendUtil.CastShapeInt(shape))));
 }
Beispiel #16
0
 public Tensor Constant(float value, long[] shape)
 {
     shape = BackendUtil.Row2ColMajor(shape);
     return(Out(Data.Constant <float>(value, BackendUtil.CastShapeInt(shape))));
 }
Beispiel #17
0
 public void Load(float[] data, long[] shape)
 {
     UnderlayingVariable = np.array <float>(data);
     UnderlayingVariable.reshape(BackendUtil.CastShapeInt(shape));
 }
Beispiel #18
0
        private NDArray In(float value, params long[] shape)
        {
            NDArrayTensor tensor = new NDArrayTensor(Data.Constant(value, BackendUtil.CastShapeInt(shape)));

            return(tensor.InternalTensor);
        }
Beispiel #19
0
 private Variable In(float value, params long[] shape)
 {
     return(new Parameter(BackendUtil.CastShapeInt(shape), CNTK.DataType.Float, value));
 }
Beispiel #20
0
 public void Print(Tensor x, string title = "")
 {
     BackendUtil.Print(x.Shape, x.ToArray());
 }
Beispiel #21
0
        public Tensor Transpose(Tensor x, params int[] dims)
        {
            var shape = BackendUtil.Row2ColMajor(BackendUtil.Int2Long(dims));

            return(Out(Data.Reorder(In(x), BackendUtil.CastShapeUInt(shape))));
        }
Beispiel #22
0
 public SiaTensor RandomNormal(long[] shape, float mean, float stddev, int? seed = null)
 {
     return Out(tf.random_normal(BackendUtil.CastShapeInt(shape), mean, stddev, seed: seed));
 }
Beispiel #23
0
 public long[] GetShape(SiaTensor x)
 {
     return BackendUtil.Int2Long(In(x).getShape().Dimensions);
 }
Beispiel #24
0
 public SiaTensor RandomUniform(long[] shape, float min, float max, int? seed = null)
 {
     return Out(tf.random_uniform(BackendUtil.CastShapeInt(shape), min, max, seed: seed));
 }
Beispiel #25
0
 public SiaTensor Reshape(SiaTensor x, params long[] shape)
 {
     return Out(tf.reshape(In(x), BackendUtil.CastShapeInt(shape)));
 }
Beispiel #26
0
 public Tensor RandomBernoulli(long[] shape, float p)
 {
     return(Out(C.BernoulliRandom(BackendUtil.CastShapeInt(shape), CNTK.DataType.Float, p)));
 }
Beispiel #27
0
        private Variable In(float value, params long[] shape)
        {
            Constant c = _constant(value, BackendUtil.CastShapeInt(shape));

            return(c);
        }
Beispiel #28
0
 public Tensor Reshape(Tensor x, params long[] shape)
 {
     return(Out(C.Reshape(In(x), BackendUtil.CastShapeInt(shape))));
 }
Beispiel #29
0
 private Shape NDShape(params int[] shape)
 {
     return(new Shape(BackendUtil.CastShapeUInt(shape)));
 }
Beispiel #30
0
 public Tensor Constant(float value, long[] shape)
 {
     shape = BackendUtil.Row2ColMajor(shape);
     return(Out(In(value, shape)));
 }