-
Notifications
You must be signed in to change notification settings - Fork 331
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Network converted from ANN doesn't retain weights after training? #601
Comments
Thank you for using BindsNET. The conversion process should be:
Note
ps. The script that you are using to convert the network is not updated and is not part of the supported code in BindsNET. The code you are using probably contain some code that needs to be update. With that said, I will be happy to help you use it, and hopefully, you can help by contributing your time to fix some of the small kinks that exist in the BindsNET code. |
Thanks Hananel for the very quick reply! We're not training the SNN twice. We're just using the ANN->SNN conversion as a way to build a deep SNN architecture. We couldn't find an example of a multilayer architecture in your example, so we've been using this method. Does this make sense? So our process is:
So basically this should work right? The problem is that after step 3, the SNN doesn't seem to retain the weights. Re: unsupported code, yes I'm aware of that and even opened a pull request to update the external script. Any help would be much appreciated. |
If I'm not mistaken (I didnt use this part of the code for a long time) the method About the PR, if the code work on the main BindsNET, I will be glad if you submit it to this repository, with only one request, you will help in the future to update the code if necessary to new upcoming changes in PyTorch/BindsNET. |
First of all thank you so much for this very impressive project!
My current process:
bindsnet.conversion.ann_to_snn()
.Network.run()
For training, I am following the training and test methods in
examples/eth_mnist.py
.For conversion from ANN to SNN, I am following this conversion example script.
The SNN seems to learn something, and reaches ~50% accuracy on MNIST.
However, the SNN doesn't seem to retain the weights learned while running
Network.run()
. When I test or retrain the SNN, it resets to the same performance it had before runningrun()
.I am attaching a minimal reproduction script. The critical part is that after running
_train_snn()
for the second time, the performace resets and progresses in the same way as it did during the first training.More details:
Thank you in advance for any help!
bindnset_issue.py.txt
The text was updated successfully, but these errors were encountered: