Hi!
How can I extract the mean and variance of a given batch in batchnorm layer, is it the running_mean\running_var just without model.evel()
Thanks a lot!
Running mean would contain the exponential average over previous batches. To get the mean and variance of the current batch you have to compute them using separate functions.
What do you mean by separate functions
Use separate functions to compute mean like torch.mean().
but how can I extract the inputs to the batchnorm
What do you mean?
If you want to get the current running_mean
and running_var
in a pretrained model, use model.{your_batch_norm_module}.running_mean
and model.{your_batch_norm_module}.running_var
.
If you want to get the running_mean
and running_var
in a pretrained model after forward x
, use torch.nn.functional.batch_norm
or just forward that layer.
If you donot have a pretrained model, and want to get the running_mean
and running_var
, init running_mean
to 0
and running_var
to 1
then use torch.nn.functional.batch_norm
or torch.batch_norm
.
I want the mean and the variance of a batch as the normbatch layer calculate
Use torch.mean() and torch.std(). There is also torch.normalize() function that you can look into.
thanks a lot but how can I get the tensor of the batchnorm, X
Hi, have you found a way to do it?