
v1 Xavier 는 Normal. 실무(PyTorch torch.nn.init.xavier_uniform_)는 uniform + gain 이 표준:
Uniform 분산 이므로:
Normal 버전과 같은 표준편차를 갖도록 설계됨.
PyTorch 권장:
linear, sigmoid: gain = 1tanh: gain = 5/3 ≈ 1.667relu: gain = √2 ≈ 1.414leaky_relu(a): gain = √(2/(1+a²))함수 xavier_uniform_init(fan_in, fan_out, seed, gain=1.0) 를 완성하세요.
(fan_in, fan_out).rng.uniform(-a, a, ...) 사용, a = gain · sqrt(6/(fi+fo)).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (fan_in, fan_out) | |
| 2 | 범위 |W| ≤ a | 모든 원소 bound |
| 3 | 평균 ≈ 0 | 큰 size 샘플 |
| 4 | std ≈ a/√3 | |
| 5 | gain=2 → 범위·std 2배 | |
| 6 | 시드 재현성 | |
| 7 | 다른 시드 → 다른 W |
코드를 작성하고 Run 을 눌러보세요.