private void button_Koh_Click(object sender, EventArgs e) { gr.Clear(BackColor); for (int i = 0; i < knet.HiddenLayers.Count; i++) { for (int j = 0; j < knet.HiddenLayers[i].neurons.Count; j++) { VectorRGB s = new VectorRGB( knet.HiddenLayers[i].neurons[j].inLinks[0].w, knet.HiddenLayers[i].neurons[j].inLinks[1].w, knet.HiddenLayers[i].neurons[j].inLinks[2].w ); gr.DrawEllipse(new Pen(s.ToColor(), 10), 20 * (i + 1), 50 * (j + 1), 20, 20); neuroPoint.Add(new Point(20 * (i + 1), 50 * (j + 1) + 10)); } } double koefKoh = 1.3, addingKoef = 0.1; for (int i = 0; i < vectors.Count; i++) { knet.InputLayer.neurons[0].imp = vectors[i].r / 255d; knet.InputLayer.neurons[1].imp = vectors[i].g / 255d; knet.InputLayer.neurons[2].imp = vectors[i].b / 255d; knet.RunIteration(); int winneri = 0, winnerj = 0; var b = knet.Study(koefKoh, out winneri, out winnerj, addingKoef); if (b) { pictureBox_NeuroShedule.Image = PointNeuron.Draw(knet, pictureBox_NeuroShedule.Width, pictureBox_NeuroShedule.Height, out listPointNeuron); } //gr.DrawRectangle(new Pen(vectors[i].ToColor(), 10), (float)(pictureBox_NeuroWorking.Width * i / vectors.Count), neuroPoint[neunum].Y, 10, 10); knet.ClearImps(); } //! textBoxInfo.Text = ""; for (int i = 0; i < knet.HiddenLayers[0].neurons.Count; i++) { for (int j = 0; j < knet.HiddenLayers[0].neurons[i].inLinks.Count; j++) { textBoxInfo.Text += "hl" + i + "," + j + ": " + knet.HiddenLayers[0].neurons[i].inLinks[j].w + Environment.NewLine; } textBoxInfo.Text += Environment.NewLine; } pictureBox_NeuroWorking.Image = bitmap; }
/// <summary> /// Draws a layed out VectorRGB field in the inspector /// </summary> static public VectorRGB VectorRGBFieldLayout(VectorRGB value, GUIContent label) { Rect position = EditorGUILayout.GetControlRect(); values [0] = value.r; values [1] = value.g; values [2] = value.b; EditorGUI.MultiFloatField(position, label, sublabels, values); value.r = values [0]; value.g = values [1]; value.b = values [2]; return(value); }
/// <summary> /// Try saving a VectorRGB into a SerializedProperty /// </summary> static public void ToProperty(SerializedProperty property, VectorRGB value) { property.FindPropertyRelative("r").floatValue = value.r; property.FindPropertyRelative("g").floatValue = value.g; property.FindPropertyRelative("b").floatValue = value.b; }