Hi all, I’m a nengo newbie. I am planning on using nengo-loihi to classify Spiking Heidelberg Datasets. Can I now define my own STDP for learning? I saw in the forum back in October 19 said that Nengo Lothi only supports PES learning rules.
Also, I would like to ask if BCM and Oja rules can be used in Loihi as well. Thanks to any can help.
Hello, and welcome to the forum!
Unfortunately, NengoLoihi still only supports the PES learning rule. We have no immediate plans to add other learning rules. We also do not have support for custom learning rules.
To define your own learning rules, the best approach would be to look at how we’ve implemented PES, and try to add another learning rule accordingly. If you’re interested in going beyond BCM and Oja, then the first step would probably be to implement your custom learning rule in basic Nengo so that you can try it out there, first.
You also might want to also check out this thread and get in touch with that user, as they are also interested in doing custom learning rules with NengoLoihi.
While we would like to do more NengoLoihi development ourselves, the Loihi chip itself is not a commercial product and we don’t receive any funding to work on NengoLoihi, so we’re quite limited in terms of what we can find time for. That said, with Loihi 2 recently coming out, there may be more opportunities for us to get funding for NengoLoihi development, though that remains unclear.
Thank you for your reply! So can I implement STDP in nengo first and bring the optimized weight matrix into nengo loihi afterwards?
Yes, that would definitely be the easiest option, if you don’t care about doing the learning on Loihi.
To add, I detail the process of saving and loading weight matrices in this post. What’s relevant for the STDP learning rule is probably that you’ll need to use
nengo.Connection(..., transform=<weight_matrix>) to load the weight matrix, and you may also need to remove the neuron gain from the weight matrix (see the bottom of the post) depending on how your STDP connection was implemented.
I think I get it, thanks for your help!