From beb47aeb261adcf0b4f587d1a964702d7abef6d1 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Tue, 1 Mar 2022 08:43:42 +0100 Subject: [PATCH] rv:: kohonen:: bugfix --- rogueviz/kohonen.cpp | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/rogueviz/kohonen.cpp b/rogueviz/kohonen.cpp index 88496ac0..cc136a44 100644 --- a/rogueviz/kohonen.cpp +++ b/rogueviz/kohonen.cpp @@ -684,12 +684,18 @@ void step() { cellcrawler& s = scc[cid.first]; s.sprawl(cellwalker(n.where, cid.second)); - vector fake(1,1); + vector fake(0,0); + /* for(auto& sd: s.data) + fake.push_back(exp(-sqr(sd.dist/sigma))); */ + + int dispersion_count = isize(s.dispersion); + int dispid = int(dispersion_count * tt); + auto it = gaussian ? fake.begin() : s.dispersion[dispid].begin(); for(auto& sd: s.data) { neuron *n2 = getNeuron(sd.target.at); - if(!n2) continue; + if(!n2) { it++; continue; } n2->debug++; double nu = learning_factor; @@ -703,15 +709,15 @@ void step() { for(int k=0; knet[k] += nu * (data[id].val[k] - n2->net[k]); - if(isnan(n2->net[k])) - throw hr_exception("obtained nan somehow, nu = " + lalign(0, nu)); + /* if(isnan(n2->net[k])) + throw hr_exception("obtained nan somehow, nu = " + lalign(0, nu)); */ } } - for(auto& n2: net) { + /* for(auto& n2: net) { if(n2.debug > 1) throw hr_exception("sprawler error"); n2.debug = 0; - } + } */ t--; if(t == 0) analyze();