Reproduce nengo lmu loihi

Hi,

I was trying to reproduce this example: https://www.nengo.ai/nengo-loihi/examples/lmu.html on the INRC cloud VM with 0.9 nxsdk. But encountered this problem in the last step. Any ideas on how to solve it? Here is the stack trace:

BuildError Traceback (most recent call last)
in
1 model = nengo_loihi.builder.Model(dt=dt)
2 model.pes_error_scale = 200.0
----> 3 with nengo_loihi.Simulator(net, model=model) as sim:
4 sim.run(sim_t)
5

~/nxsdk09/lib/python3.5/site-packages/nengo_loihi/simulator.py in init(self, network, dt, seed, model, precompute, target, progress_bar, remove_passthrough, hardware_options)
143
144 # Build the network into the model
–> 145 self.model.build(network)
146
147 # Build the extra passthrough connections into the model

~/nxsdk09/lib/python3.5/site-packages/nengo_loihi/builder/builder.py in build(self, obj, *args, **kwargs)
206 model.seeded[obj] = self.seeded[obj]
207
–> 208 built = model.builder.build(model, obj, *args, **kwargs)
209 if self.build_callback is not None:
210 self.build_callback(obj)

~/nxsdk09/lib/python3.5/site-packages/nengo/builder/builder.py in build(cls, model, obj, *args, **kwargs)
237 for obj_cls in type(obj).mro:
238 if obj_cls in cls.builders:
–> 239 return cls.builders[obj_cls](model, obj, *args, **kwargs)
240
241 raise BuildError(“Cannot build object of type %r” % type(obj).name)

~/nxsdk09/lib/python3.5/site-packages/nengo/builder/network.py in build_network(model, network, progress)
80 logger.debug(“Network step 2: Building subnetworks”)
81 for subnetwork in network.networks:
—> 82 model.build(subnetwork)
83
84 logger.debug(“Network step 3: Building connections”)

~/nxsdk09/lib/python3.5/site-packages/nengo_loihi/builder/builder.py in build(self, obj, *args, **kwargs)
206 model.seeded[obj] = self.seeded[obj]
207
–> 208 built = model.builder.build(model, obj, *args, **kwargs)
209 if self.build_callback is not None:
210 self.build_callback(obj)

~/nxsdk09/lib/python3.5/site-packages/nengo/builder/builder.py in build(cls, model, obj, *args, **kwargs)
237 for obj_cls in type(obj).mro:
238 if obj_cls in cls.builders:
–> 239 return cls.builders[obj_cls](model, obj, *args, **kwargs)
240
241 raise BuildError(“Cannot build object of type %r” % type(obj).name)

~/nxsdk09/lib/python3.5/site-packages/nengo/builder/network.py in build_network(model, network, progress)
92 # TODO: Except perhaps if the connection being learned
93 # is in a subnetwork?
—> 94 model.build(conn)
95
96 logger.debug(“Network step 4: Building probes”)

~/nxsdk09/lib/python3.5/site-packages/nengo_loihi/builder/builder.py in build(self, obj, *args, **kwargs)
206 model.seeded[obj] = self.seeded[obj]
207
–> 208 built = model.builder.build(model, obj, *args, **kwargs)
209 if self.build_callback is not None:
210 self.build_callback(obj)

~/nxsdk09/lib/python3.5/site-packages/nengo/builder/builder.py in build(cls, model, obj, *args, **kwargs)
237 for obj_cls in type(obj).mro:
238 if obj_cls in cls.builders:
–> 239 return cls.builders[obj_cls](model, obj, *args, **kwargs)
240
241 raise BuildError(“Cannot build object of type %r” % type(obj).name)

~/nxsdk09/lib/python3.5/site-packages/nengo_loihi/builder/connection.py in build_connection(model, conn)
63 build_host_neurons_to_chip(model, conn)
64 else:
—> 65 build_host_to_chip(model, conn)
66
67 elif pre_onchip and not post_onchip:

~/nxsdk09/lib/python3.5/site-packages/nengo_loihi/builder/connection.py in build_host_to_chip(model, conn)
137 raise BuildError(
138 "nengo-loihi does not yet support %r transforms "
–> 139 “on host to chip connections” % (type(conn.transform).name,)
140 )
141

BuildError: nengo-loihi does not yet support ‘NoTransform’ transforms on host to chip connections

Thanks!

Hi @originofamonia, and welcome to the Nengo forums!

The error you are experiencing is a result of a version mismatch between the Nengo and NengoLoihi python packages. The current NengoLoihi release (v0.10.0) only supports up to Nengo v3.0.0, whereas the latest Nengo release is v3.1.0. There are two methods to fix this issue, you can either:

  1. Uninstall Nengo v3.1.0 and install Nengo v3.0.0:
pip uninstall nengo
pip install nengo==3.0.0
  1. Uninstall the NengoLoihi pip package, and install NengoLoihi from source. This method requires you to have git installed, so if you don’t, I recommend you use method 1.
pip uninstall nengo-loihi
git clone https://github.com/nengo/nengo-loihi
pip install -e nengo-loihi

Other Notes
We will be releasing an updated version of NengoLoihi (v0.11.0) soon, which will have support for NxSDK v0.9.8. This version of NxSDK removes the Python 3.5.2 restriction from previous NxSDKs, allowing you to use any python versions up to v3.7.x (NxSDK 0.9.8 doesn’t yet support Python v3.8). NengoLoihi v0.11.0 will also support the latest release of Nengo (v3.1.0).

Thanks @xchoo! The problem is solved.