-
Notifications
You must be signed in to change notification settings - Fork 2
Neuron dropout #165
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
base: master
Are you sure you want to change the base?
Neuron dropout #165
Conversation
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.
Looks good. It is unintuitive how setting mFR to 0 drops a unit out so I think the documentation should briefly explain.
features/bmi_task_features.py
Outdated
def _start_wait(self): | ||
|
||
# Decide which units to drop in this trial but don't actually drop them yet | ||
if (self.gen_indices[self.target_index] == self.unit_drop_targets[self.unit_drop_group_idx] and |
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 should in 'in' instead of '==' in case there are multiple targets to drop a unit on.
features/bmi_task_features.py
Outdated
''' | ||
|
||
unit_drop_prob = traits.Float(0, desc="Probability of dropping a group of units from the decoder") | ||
unit_drop_groups = traits.Array(value=[[0, 1], [2]], desc="Groups of unit indices to drop from the decoder one at a time") |
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.
Instead of being the unit indices to drop I think it should be based on the unit name/number.
features/bmi_task_features.py
Outdated
Override the decoder to drop random units. Keep a record of what's going on in the `trial` data. | ||
''' | ||
super()._start_targ_transition() | ||
if self.target_index + 1 < self.chain_length and np.any(self.decoder_units_dropped): |
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.
If self.decoder_units_dropped is the name we'll have to add something like an np.where here.
randomly drop neurons by setting their mean FR to zero
makes it so we can make a decoder with the property "unit_drop_prob" which controls the probability of each unit begin dropped on a given trial