I’m trying to run a code that runs fine on Nengo, to Nengo-Loihi.
Ran into a Build Error: “Could not find appropriate weight exponent”
I’m assuming that this has to do with the transform that I have on one of the connections and that it requires too high a level of precision than what is available on Loihi. Is this correct?
There are multiple decoders to be calculated in the code, how can I go about isolating which one is causing trouble?
On a more general note, what pitfalls does one have to be wary about while trying to use the nengo-loihi backend?
The full error message:
---------------------------------------------------------------------------
BuildError Traceback (most recent call last)
<ipython-input-2-1ff2f4579a5b> in <module>
49 c_p = nengo.Probe(net.output, synapse=0.01)
50
---> 51 sim = nengo_loihi.Simulator(net, dt=0.01)
52 sim.run(model.t_max)
~/miniconda3/envs/loihi/lib/python3.5/site-packages/nengo_loihi/simulator.py in __init__(self, network, dt, seed, model, precompute, target, progress_bar, remove_passthrough, hardware_options)
203
204 if target != "simreal":
--> 205 discretize_model(self.model)
206
207 if target in ("simreal", "sim"):
~/miniconda3/envs/loihi/lib/python3.5/site-packages/nengo_loihi/discretize.py in discretize_model(model)
221
222 for block in model.blocks:
--> 223 discretize_block(block)
224
225
~/miniconda3/envs/loihi/lib/python3.5/site-packages/nengo_loihi/discretize.py in discretize_block(block)
238 w_max = max(w_maxs) if len(w_maxs) > 0 else 0
239
--> 240 p = discretize_compartment(block.compartment, w_max)
241 for synapse in block.synapses:
242 discretize_synapse(synapse, w_max, p["w_scale"], p["w_exp"])
~/miniconda3/envs/loihi/lib/python3.5/site-packages/nengo_loihi/discretize.py in discretize_compartment(comp, w_max)
307 break
308 else:
--> 309 raise BuildError("Could not find appropriate weight exponent")
310 elif b_max > 1e-8:
311 b_scale = BIAS_MAX / b_max