Score on returning with food
This commit is contained in:
parent
45511cd1b4
commit
22fe85478b
@ -188,16 +188,21 @@ namespace NanoBrain {
|
|||||||
else {
|
else {
|
||||||
uint instanceCount = 1;
|
uint instanceCount = 1;
|
||||||
foreach (ExternalClusterData externalCluster in clusterData.clusters) {
|
foreach (ExternalClusterData externalCluster in clusterData.clusters) {
|
||||||
if (externalCluster.name == synapseData.clusterName)
|
if (externalCluster.clusterName == synapseData.clusterName) {
|
||||||
instanceCount = externalCluster.instanceCount;
|
instanceCount = externalCluster.instanceCount;
|
||||||
}
|
//extPrefab.name = externalCluster.name;
|
||||||
if (this.nuclei.Find(nucleus => nucleus.name == synapseData.clusterName) is not Cluster extCluster)
|
if (this.nuclei.Find(nucleus => nucleus.name == synapseData.clusterName) is not Cluster extCluster) {
|
||||||
extCluster = new(extPrefab, this, instanceCount);
|
extCluster = new(extPrefab, this, instanceCount);
|
||||||
|
//extCluster.name = clusterData.name;
|
||||||
|
extCluster.name = externalCluster.name;
|
||||||
|
}
|
||||||
Neuron extNeuron = extCluster.GetNeuron(synapseData.neuronName);
|
Neuron extNeuron = extCluster.GetNeuron(synapseData.neuronName);
|
||||||
Debug.Log("Add receiver for external");
|
Debug.Log("Add receiver for external");
|
||||||
extNeuron.AddReceiver(receiver);
|
extNeuron.AddReceiver(receiver);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
Neuron sender = this.GetNeuron(synapseData.neuronName);
|
Neuron sender = this.GetNeuron(synapseData.neuronName);
|
||||||
sender?.AddReceiver(receiver, synapseData.weight, synapseData.trainable);
|
sender?.AddReceiver(receiver, synapseData.weight, synapseData.trainable);
|
||||||
@ -387,7 +392,7 @@ namespace NanoBrain {
|
|||||||
foreach (Synapse synapse in neuron.synapses) {
|
foreach (Synapse synapse in neuron.synapses) {
|
||||||
if (synapse.trainable) {
|
if (synapse.trainable) {
|
||||||
synapse.weight = (float)randomGenerator.NextDouble() * 2.0f - 1.0f;
|
synapse.weight = (float)randomGenerator.NextDouble() * 2.0f - 1.0f;
|
||||||
//Debug.Log($"{neuron.name}-{synapse.neuron.name} weight = {synapse.weight}");
|
// Debug.Log($"{neuron.name}-{synapse.neuron.name} weight = {synapse.weight}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -934,10 +939,12 @@ namespace NanoBrain {
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class ExternalClusterData {
|
public class ExternalClusterData {
|
||||||
public string name;
|
public string name;
|
||||||
|
public string clusterName;
|
||||||
public uint instanceCount;
|
public uint instanceCount;
|
||||||
|
|
||||||
public ExternalClusterData(Cluster cluster) {
|
public ExternalClusterData(Cluster cluster) {
|
||||||
this.name = cluster.name;
|
this.name = cluster.name;
|
||||||
|
this.clusterName = cluster.prefab.name;
|
||||||
this.instanceCount = (uint)cluster.instanceCount;
|
this.instanceCount = (uint)cluster.instanceCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -180,6 +180,8 @@ namespace NanoBrain {
|
|||||||
_outputValue = value;
|
_outputValue = value;
|
||||||
if (this.isFiring)
|
if (this.isFiring)
|
||||||
WhenFiring?.Invoke();
|
WhenFiring?.Invoke();
|
||||||
|
else
|
||||||
|
WhenNotFiring?.Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public float3 activation => outputValue;
|
public float3 activation => outputValue;
|
||||||
@ -228,6 +230,8 @@ namespace NanoBrain {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public Action WhenFiring;
|
public Action WhenFiring;
|
||||||
|
|
||||||
|
public Action WhenNotFiring;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// When true, the value will not be reset after timeToSleep.
|
/// When true, the value will not be reset after timeToSleep.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -120,6 +120,9 @@ namespace NanoBrain {
|
|||||||
public bool trainable;
|
public bool trainable;
|
||||||
|
|
||||||
public SynapseData(Synapse synapse) {
|
public SynapseData(Synapse synapse) {
|
||||||
|
if (synapse.neuron.parent.prefab != null)
|
||||||
|
this.clusterName = synapse.neuron.parent.prefab.name;
|
||||||
|
else
|
||||||
this.clusterName = synapse.neuron.parent.name;
|
this.clusterName = synapse.neuron.parent.name;
|
||||||
this.neuronName = synapse.neuron.name;
|
this.neuronName = synapse.neuron.name;
|
||||||
this.weight = synapse.weight;
|
this.weight = synapse.weight;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user