mv_prob_uniform#
- class brainpy.math.jitconn.mv_prob_uniform(vector, w_low, w_high, conn_prob, seed=None, *, shape, transpose=False, outdim_parallel=True)[source]#
Perform the \(y=M@v\) operation, where \(M\) is just-in-time randomly generated with a uniform distribution for its value.
This operator support
jit(),vmap(),grad()andpmap()etc. transformations on CPU and GPU devices.Warning
This API may change in the future.
In this operation, \(M\) is the random matrix with a connection probability conn_prob, and at each connection the value is the same scalar weight.
When
transpose=True, we perform an operation of \(y=M^T@v\).Note
Note that the just-in-time generated \(M\) (transpose=False) is different from the generated \(M^T\) (transpose=True).
If you pursue the same \(M\) and \(M^T\) when performing the just-in-time matrix generation, you should set
outdim_parallel=True, with the sacrifice of the speed compared withoutdim_parallel=False.- Parameters:
vector (
Array) – The vector.w_low (
float) – Lower boundary of the output interval.w_high (
float) – Upper boundary of the output interval.conn_prob (
float) – The connection probability.The random number generation seed.
Warning
If
seedis left asNone(the default), a host random seed is drawn withnumpy.random.randinton every call. This makes the result non-reproducible in eager mode, and – because the seed is captured as a Python constant – it becomes frozen the first time the function is traced underjit()/vmap(), so every subsequent jitted call reuses that single seed. For reproducible and correct behaviour under JAX transformations, always pass an explicit integerseed.transpose (
bool) – Transpose the random matrix or not.outdim_parallel (
bool) – Perform the parallel random generations along the out dimension or not. It can be used to set the just-in-time generated :math:M^T: is the same as the just-in-time generated \(M\) whentranspose=True.
- Returns:
out – The output of \(y = M @ v\).
- Return type:
Array