NoisyLinear
python
NoisyLinear(in_features: int, out_features: int, sigma0: float = 0.5) -> NoneNoisy linear layer for Noisy Networks. See: https://arxiv.org/abs/1706.10295
Initialize the NoisyLinear layer.
Parameters:
in_features(int) – Number of input features.out_features(int) – Number of output features.sigma0(float) – Initial standard deviation for noise.
Methods
forward
python
forward(x: torch.Tensor) -> torch.TensorForward pass with noise added to weights and bias.
Parameters:
x(Tensor) – Input tensor.
Returns:
Tensor– Output tensor.
reset_noise
python
reset_noise(epsilon_in: torch.Tensor | None = None, epsilon_out: torch.Tensor | None = None) -> NoneGenerate new noise and pre-calculate noisy weight and bias.
Parameters:
epsilon_in(Tensor | None) – Optional pre-scaled noise for input features.epsilon_out(Tensor | None) – Optional pre-scaled noise for output features.
reset_parameters
python
reset_parameters() -> NoneReset layer parameters using Mu initialization.
Values
bias
python
bias: torch.Tensorbias_mu
python
bias_mu: nn.Parameter = nn.Parameter(torch.empty(out_features))bias_sigma
python
bias_sigma: nn.Parameter = nn.Parameter(torch.empty(out_features))epsilon_in
python
epsilon_in: torch.Tensorepsilon_out
python
epsilon_out: torch.Tensorin_features
python
in_features = in_featuresout_features
python
out_features = out_featuressigma0
python
sigma0 = sigma0weight
python
weight: torch.Tensorweight_mu
python
weight_mu: nn.Parameter = nn.Parameter(torch.empty(out_features, in_features))weight_sigma
python
weight_sigma: nn.Parameter = nn.Parameter(torch.empty(out_features, in_features))