-
Notifications
You must be signed in to change notification settings - Fork 7
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
MSE regression #98
MSE regression #98
Conversation
…the per timestep errors that drive lambda_V. Added code to fill the ringbuffer and code for the drive of lambda_V.
… and runs but not yet successful in doing a regression. Also fixed n error in spike_recorder where the event recording flag was missing. Fixed two occurrences of pull_var_from_device.
… the pattern_recognition example. Everythig is compiling and running but there is no learning; in particular, no detectable systematic changes across epochs - not even in terms of regularisation of the hidden layer.
…e's fix for this. Changed how the per_times_step_loss code block is activated for loss_mse.
…into mse_regression
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.
All looks good aside from some very minor formatting I've suggested
''' | ||
for (pop,pypop) in compiled_net.neuron_populations.items(): | ||
print(pypop.model.get_sim_code()) | ||
for var in pypop.model.get_vars(): | ||
print(var.name) | ||
for para in pypop.model.get_params(): | ||
print(para.name) | ||
for dp in pypop.model.get_derived_params(): | ||
print(dp.name) | ||
''' |
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.
''' | |
for (pop,pypop) in compiled_net.neuron_populations.items(): | |
print(pypop.model.get_sim_code()) | |
for var in pypop.model.get_vars(): | |
print(var.name) | |
for para in pypop.model.get_params(): | |
print(para.name) | |
for dp in pypop.model.get_derived_params(): | |
print(dp.name) | |
''' |
VarRecorder(output, genn_var="LambdaV", key="output_lambdav"), | ||
VarRecorder(output, genn_var="LambdaI", key="output_lambdai"), | ||
SynVarRecorder(h2o, genn_var="dw", key="h2o_dw"), |
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.
Not sure if we want to record all internal state in the example
… the eventprop pattern_recognition example.
…not be recorded correctly in batched simulations
* Added in corner case fixed from ``VarRecorder`` * Added ``get_underlying_conn`` helper to handle getting connectivity from ``Layer`` objects * Added source and target neuron masks for recording
Those all look good. Co-authored-by: neworderofjamie <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #98 +/- ##
==========================================
+ Coverage 65.92% 66.08% +0.15%
==========================================
Files 100 101 +1
Lines 4024 4125 +101
==========================================
+ Hits 2653 2726 +73
- Misses 1371 1399 +28 ☔ View full report in Codecov by Sentry. |
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.
I think this is ready to be merged as far as I can see?
of V versus target.
…into mse_regression
…ndoes the damage.
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.
couple of typos but all looks good aside from a bit of documentation on ConnVarRecorder
Co-authored-by: neworderofjamie <[email protected]>
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.
I think this looks good to go.
This PR extends the existing mechanism in the EventProp compiler used to support 'per-timestep' cross-entropy loss to also supports mean-squared error loss for regression tasks. Using this, the pattern recognition task (previously used as an e-prop example) has been implemented as an EventProp example (encountering #101 and #102 in the process)
Also, this PR fixes a number of corner cases involving recording of non-batched variables in batched simulations and implements
ConnVarRecorder
for recording fromConnection
objects.Fixes #52