Esempio n. 1
0
        /// <summary>
        /// Show the load, delete and record buttons
        /// </summary>
        protected void ShowButtons(IMLConfiguration node)
        {
            m_ButtonsRect.x      = m_IconCenter.x + 20;
            m_ButtonsRect.y      = m_IconCenter.y + m_IconCenter.height;
            m_ButtonsRect.width  = m_BodyRect.width - 40;
            m_ButtonsRect.height = 150;


            GUILayout.BeginArea(m_ButtonsRect);

            // if button contains mouse position
            TrainModelButton();
            GUILayout.Space(15);
            RunModelButton();
            GUILayout.Space(15);
            GUILayout.BeginHorizontal();
            GUILayout.Space(NodeWidth / 2 - 40);
            if (GUILayout.Button("", m_NodeSkin.GetStyle("Reset")))
            {
                node.ResetModel();
                numberOfExamplesTrained = 0;
            }
            GUILayout.EndHorizontal();
            GUILayout.BeginHorizontal();
            GUILayout.Label("reset model", m_NodeSkin.GetStyle("Reset Pink Label"));
            GUILayout.EndHorizontal();
            GUILayout.Space(15);
            ShowRunOnAwakeToggle(node);
            GUILayout.EndArea();
        }
Esempio n. 2
0
        /// <summary>
        /// Called whenever the xNode editor window is updated
        /// </summary>
        public override void OnBodyGUI()
        {
            // Override label width for this node (since some names are quite long)
            LabelWidth = 184;

            base.OnBodyGUI();

            m_IMLConfigNode = (target as IMLConfiguration);

            // SHOW KEYBOARD SHORTCUTS
            // Show information about runtime keys for interaction
            GUIStyle styleGUIBox = new GUIStyle(GUI.skin.box);

            styleGUIBox.richText = true;
            if (m_IMLConfigNode.EnableKeyboardControl)
            {
                GUILayout.Box("<b>Runtime Keys:</b>\n <b>Train:</b> " + m_IMLConfigNode.TrainingKey.ToString()
                              + " | <b>Run:</b> " + m_IMLConfigNode.RunningKey,
                              styleGUIBox);
                //GUILayout.Box("<b>Runtime Keys:</b>\n <b>Run:</b> R", styleGUIBox);

                // Show key configs
                m_IMLConfigNode.TrainingKey = (KeyCode)EditorGUILayout.EnumFlagsField(m_IMLConfigNode.TrainingKey);
                m_IMLConfigNode.RunningKey  = (KeyCode)EditorGUILayout.EnumFlagsField(m_IMLConfigNode.RunningKey);
                EditorGUILayout.Space();
            }

            // SHOW INPUTS CONFIG
            EditorGUILayout.Space();
            ShowExpectedInputsConfigLogic();
            EditorGUILayout.Space();

            // SHOW OUTPUTS CONFIG
            ShowExpectedOutputsConfigLogic();
            EditorGUILayout.Space();

            // SHOW TRAINING STATUS
            ShowTrainingStatus();

            // SHOW TOTAL NUMBER OF TRAINING EXAMPLES
            // Account for dtw
            if (m_IMLConfigNode.LearningType == IMLSpecifications.LearningType.DTW)
            {
                EditorGUILayout.LabelField("Total No. Training Series: ", m_IMLConfigNode.TotalNumTrainingData.ToString());
            }
            // classification/regression
            else
            {
                EditorGUILayout.LabelField("Total No. Training Examples: ", m_IMLConfigNode.TotalNumTrainingData.ToString());
            }

            EditorGUILayout.Space();
            // SHOW MODEL OUTPUT
            ShowModelOutput();
            EditorGUILayout.Space();

            // SHOW TRAIN BUTTON
            ShowTrainModelButton();

            // SHOW RUN BUTTON
            ShowRunModelButton();

            // Init model button (to debug the model not working)
            if (GUILayout.Button("Reset Model"))
            {
                m_IMLConfigNode.ResetModel();
            }

            // SHOW FEATURE SELECTION MATRIX
            // ShowFeatureSelectionMatrix();

            // Errors with needed connections
            if (m_IMLConfigNode.ExpectedOutputList.Count == 0)
            {
                EditorGUILayout.HelpBox("There are no Expected Outputs Configured!", MessageType.Error);
            }

            if (m_IMLConfigNode.InputFeatures == null || m_IMLConfigNode.InputFeatures.Count == 0)
            {
                EditorGUILayout.HelpBox("There are no Realtime Input Features Connected!", MessageType.Error);
            }
        }