Trying to avoid many synapse copies for cluster neurons

This commit is contained in:
Pascal Serrarens 2026-08-11 16:54:16 +02:00
parent 22fe85478b
commit 1f7c3ef7e8

View File

@ -187,22 +187,24 @@ namespace NanoBrain {
Debug.LogError($"Could not find cluster Resource {synapseData.clusterName}"); Debug.LogError($"Could not find cluster Resource {synapseData.clusterName}");
else { else {
uint instanceCount = 1; uint instanceCount = 1;
ExternalClusterData externalClusterData = null;
foreach (ExternalClusterData externalCluster in clusterData.clusters) { foreach (ExternalClusterData externalCluster in clusterData.clusters) {
if (externalCluster.clusterName == synapseData.clusterName) { if (externalCluster.clusterName == synapseData.clusterName) {
instanceCount = externalCluster.instanceCount; instanceCount = externalCluster.instanceCount;
//extPrefab.name = externalCluster.name; externalClusterData = externalCluster;
}
}
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);
if (externalClusterData != null)
extCluster.name = externalClusterData.name;
//extCluster.name = clusterData.name; //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);
@ -392,7 +394,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}");
} }
} }
} }