Factorised (cheaper) gaussian noise from "Noisy Networks for Exploration"
    by Meire Fortunato, Mohammad Gheshlaghi Azar, Bilal Piot and others

def factorized_gaussian_noise(in_features, out_features, device):
    """
    Factorised (cheaper) gaussian noise from "Noisy Networks for Exploration"
    by Meire Fortunato, Mohammad Gheshlaghi Azar, Bilal Piot and others
    """
    in_noise = scaled_noise(in_features, device=device)
    out_noise = scaled_noise(out_features, device=device)

    return out_noise.ger(in_noise), out_noise