public void Awake() { if (!GenerateGraphFromCode) { return; } Random.InitState(0); // return; points = new List <Transform>(); for (float x = -1f; x < 1f; x += 0.1f) { for (float y = -1f; y < 1f; y += 0.1f) { var p = new GameObject("grid", typeof(SpriteRenderer)); p.transform.parent = transform; p.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Box Neuron"); p.transform.localScale = new Vector3(0.1f, 0.1f, 1f); grid.Add(p.GetComponent <SpriteRenderer>()); p.transform.localPosition = new Vector3(x, y, 0); var c = gradient.Evaluate(0); c.a = 0.4f; p.GetComponent <SpriteRenderer>().color = c; p.GetComponent <SpriteRenderer>().sortingOrder = -100; } } for (int i = 0; i < 30; i++) { var p = new GameObject("point", typeof(SpriteRenderer)); p.transform.parent = transform; p.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Box Neuron"); p.transform.localScale = new Vector3(0.05f, 0.05f, 1f); points.Add(p.transform); if (i < 16) { p.GetComponent <SpriteRenderer>().color = gradient.Evaluate(0); p.transform.localPosition = Random.insideUnitCircle * 0.5f; // p.transform.localPosition = Random.insideUnitCircle * 0.3f + new Vector2(-0.5f, 0); p.tag = "low"; } else { p.GetComponent <SpriteRenderer>().color = gradient.Evaluate(1); p.transform.localPosition = Random.insideUnitCircle.normalized * 0.7f; // p.transform.localPosition = Random.insideUnitCircle.normalized * 0.3f + new Vector2(0.5f, 0); p.tag = "high"; } } var layer1 = new List <CONTENT_NeuronLstm>(); // input for (int i = 0; i < 2; i++) { var g = new GameObject("input 0 (" + i + ")"); g.transform.localPosition = new Vector3(0, i); var v = g.AddComponent <CONTENT_NodeValue>(); v.value = Random.Range(-0.5f, 0.5f); v.display = v.gameObject.AddComponent <CONTENT_Display>(); v.canTrain = false; input.Add(v); } // layer 1 for (int i = 0; i < 1; i++) { var g = new GameObject("layer 1 (" + i + ")"); g.transform.localPosition = new Vector3(1, i * 0.4f); var n = g.AddComponent <CONTENT_NeuronLstm>(); foreach (var a in input) { foreach (var b in n.input) { CONTENT_ConnectionWeighted.Create(a, b); } // CONTENT_ConnectionWeighted.Create(item, n.input); } layer1.Add(n); } // // input // for (int i = 0; i < 2; i++) // { // var g = new GameObject("input 0 (" + i + ")"); // g.transform.localPosition = new Vector3(0, i); // var v = g.AddComponent<CONTENT_NodeValue>(); // v.value = Random.Range(-0.5f, 0.5f); // v.display = v.gameObject.AddComponent<CONTENT_Display>(); // v.canTrain = false; // input.Add(v); // } // // // layer 1 // for (int i = 0; i < 6; i++) // { // var g = new GameObject("layer 1 (" + i + ")"); // g.transform.localPosition = new Vector3(1, i * 0.4f); // var n = g.AddComponent<CONTENT_Neuron>(); // foreach (var item in input) // { // CONTENT_ConnectionWeighted.Create(item, n.input); // } // layer1.Add(n); // } // // layer 2 // for (int i = 0; i < 3; i++) // { // var g = new GameObject("layer 2 (" + i + ")"); // g.transform.localPosition = new Vector3(2, i * 0.66f); // var n = g.AddComponent<CONTENT_Neuron>(); // foreach (var item in layer1) // { // CONTENT_ConnectionWeighted.Create(item.output, n.input); // } // layer2.Add(n); // } // // output { var g = new GameObject("output"); g.transform.localPosition = new Vector3(3, 0); output = g.AddComponent <CONTENT_NodeAdd>(); output.tag = "output"; output.display = output.gameObject.AddComponent <CONTENT_Display>(); foreach (var item in layer1) { CONTENT_ConnectionWeighted.Create(item.output, output); // CONTENT_Connection.Create(item.output, output, true); } } // CONTENT_ConnectionWeighted.Create(input[0], output); }
public void Start() { CONTENT_ConnectionWeighted.Create(from, to, weight); }