-
Notifications
You must be signed in to change notification settings - Fork 1.4k
First CPU implementation of HashedNets compression algorithm for DNNs #220
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
Conversation
This is just changing the 'weights' vector to a compressed 'weightBucket' vector of size 'BUCKET_SIZE' per layer. Will have restructure other parts of the code for this to make algorithmic sense.
| fNet.setErrorFunction (DNN::ModeErrorFunction::CROSSENTROPY); | ||
| // net.setErrorFunction (ModeErrorFunction::SUMOFSQUARES); | ||
|
|
||
| const int BUCKET_SIZE = 8; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Aditya,
Why bucket size is constant value here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Omar, that's because this is the checkGradients () function. As you can see above at lines 1100 - 03, this is a predefined Neural Net created just to see if the algorithm calculates gradients properly. This is independent of the actual training.
|
Could you rebase this PR and squash the duplicate commits? |
|
Can one of the admins verify this patch? |
|
This patch needs some work. I'm closing the pull request for now. Will issue a new one after resolving the issues. |
This is an implementation of HashedNets (https://arxiv.org/pdf/1504.04788.pdf) in ROOT.
It is built over the existing implementation of DNNs in TMVA and supports multithreading.