Stimulus Optimization
Optimizer
optimize_stimulus(stimulus, optimizer_init_fn, objective_object, optimization_stopper, stimulus_regularization_loss=None, stimulus_postprocessor=None)
Optimize a stimulus to maximize a given objective while minimizing a regularizing function. The stimulus is modified in place.
Source code in openretina/insilico/stimulus_optimization/optimizer.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
Objective
ContrastiveNeuronObjective
Bases: AbstractObjective
Objective described in [Most discriminative stimuli for functional cell type clustering] (https://openreview.net/forum?id=9W6KaAcYlr)
Source code in openretina/insilico/stimulus_optimization/objective.py
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 |
|
Regularizer
ChangeNormJointlyClipRangeSeparately
Bases: StimulusPostprocessor
First change the norm and afterward clip the value of x to some specified range
Source code in openretina/insilico/stimulus_optimization/regularizer.py
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
|
RangeRegularizationLoss
Bases: StimulusRegularizationLoss
Source code in openretina/insilico/stimulus_optimization/regularizer.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
forward(stimulus)
Penalizes the stimulus if it is outside the range defined by min_max_values.
Source code in openretina/insilico/stimulus_optimization/regularizer.py
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
|
StimulusPostprocessor
Base class for stimulus clippers.
Source code in openretina/insilico/stimulus_optimization/regularizer.py
53 54 55 56 57 58 |
|
process(x)
x.shape: batch x channels x time x n_rows x n_cols
Source code in openretina/insilico/stimulus_optimization/regularizer.py
56 57 58 |
|
TemporalGaussianLowPassFilterProcessor
Bases: StimulusPostprocessor
Uses a 1d Gaussian filter to convolve the stimulus over the temporal dimension. This acts as a low pass filter.
Source code in openretina/insilico/stimulus_optimization/regularizer.py
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|
process(x)
Apply a Gaussian low-pass filter to the stimulus tensor along the temporal dimension.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
x
|
Tensor
|
Tensor of shape (batch_dim, channels, time_dim, height, width) |
required |
Returns: Tensor: The filtered stimulus tensor.
Source code in openretina/insilico/stimulus_optimization/regularizer.py
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
|