2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
이 코드 조각은 잘린 정규 분포를 사용하여 PyTorch를 사용하여 신경망의 가중치를 초기화하는 방법을 보여줍니다. 잘린 정규 분포는 생성된 값이 극단적인 값을 방지하기 위해 범위 내에서 잘리는 것을 의미합니다.여기서 사용됨torch.fmod
이 효과를 얻기 위한 해결 방법입니다.
잘린 정규 분포는 생성된 값이 특정 범위 내에 속하도록 보장하는 정규 분포를 수정한 것입니다. 구체적으로,torch.fmod
이 함수는 입력 텐서의 나머지 부분을 2로 나눈 값을 반환합니다(즉, 결과 값은 -2와 2 사이입니다).
코드에서 4개의 가중치 텐서는 서로 다른 표준편차에 따라 계산됩니다(init_sd_first
, init_sd_middle
, init_sd_last
)는 잘린 정규 분포에서 생성됩니다. 구체적인 측정기준은 다음과 같습니다.
(x_dim, width n_double)
(width, width n_double)
(width, 1)
이러한 가중치 텐서는 다음과 같이 생성됩니다.
initial_weights = [
torch.fmod(torch.normal(0, init_sd_first, size=(x_dim, width n_double)), 2),
torch.fmod(torch.normal(0, init_sd_middle, size=(width, width n_double)), 2),
torch.fmod(torch.normal(0, init_sd_middle, size=(width, width n_double)), 2),
torch.fmod(torch.normal(0, init_sd_last, size=(width, 1)), 2)
]