PES learning rule

The BCM learning rule can technically be trained using the nengo_dl.Simulator, but, I have to once again make the distinction between online and offline training. The BCM learning rule, just like the PES learning rule, is an online learning rule. Whereas the sim.fit call is an offline learning rule. As I mentioned before, both do not run at the same time.

As to whether sim.fit is necessary with the BCM rule? I’m not clear on whether it is or isn’t. If you use the BCM rule, you will be modifying the connection weights to optimize a certain function (whatever function the BCM rule is optimizing). But, if you then use sim.fit after this process, you take whatever the BCM rule has learned, and then “override” it with whatever sim.fit is doing. At best, you are just seeding the sim.fit function with the output of the BCM rule…

As to whether you can train using the BCM rule, and then do classification on it? Yeah… that should be possible. I think you can run your network with the BCM rule for some amount of time, then save the weights, and create a “static” version of your network to then run the classification on it.