Tất cả thử thách
Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Xavier and He Weight Initialization

Compute the range or standard deviation used to initialize the weights of a layer.

Bạn sẽ học được gì

  • Compute initialization ranges for a layer
  • Choose between Xavier and He
  • Understand why initialization matters

Đề bài

Xem bản dịch

Weights that start too big or too small make deep networks hard to train. Two standard schemes pick the scale from the layer size, where fan_in is the number of inputs and fan_out the number of outputs:

methodreturns
"xavier_uniform"limit √(6 / (fan_in + fan_out)), weights drawn from [-limit, limit]
"xavier_normal"standard deviation √(2 / (fan_in + fan_out))
"he_uniform"limit √(6 / fan_in)
"he_normal"standard deviation √(2 / fan_in)

Xavier (Glorot) suits sigmoid and tanh layers; He suits ReLU layers.

Implement init_bound(method, fan_in, fan_out).

Input

method: One of "xavier_uniform", "xavier_normal", "he_uniform" or "he_normal".

fan_in, fan_out: The layer's number of inputs and outputs.

Output

Return the limit or standard deviation as a decimal number.

Ràng buộc

1 ≤ fan_in, fan_out ≤ 100,000

Ví dụ

Ví dụ 1
Đầu vào:
fan_in = 3
method = "xavier_uniform"
fan_out = 3

Kết quả mong đợi:
expected = 1.0
Đầu vào:
long long fan_in = 3;
std::string method = "xavier_uniform";
long long fan_out = 3;

Kết quả mong đợi:
double expected = 1.0;
Đầu vào:
long fan_in = 3;
string method = "xavier_uniform";
long fan_out = 3;

Kết quả mong đợi:
double expected = 1.0;

Giải thích

√(6 / (3 + 3)) = √1 = 1, so weights are drawn from [-1, 1].

Ví dụ 2
Đầu vào:
fan_in = 50
method = "he_normal"
fan_out = 10

Kết quả mong đợi:
expected = 0.2
Đầu vào:
long long fan_in = 50;
std::string method = "he_normal";
long long fan_out = 10;

Kết quả mong đợi:
double expected = 0.2;
Đầu vào:
long fan_in = 50;
string method = "he_normal";
long fan_out = 10;

Kết quả mong đợi:
double expected = 0.2;

Giải thích

He only uses fan_in: √(2 / 50) = √0.04 = 0.2.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.