Teknologian jakaminen

[PyTorch] torch.fmod käyttää katkaistua normaalijakaumaa alustaakseen hermoverkon painot

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Tämä koodinpätkä näyttää, kuinka hermoverkon painot alustetaan PyTorchin avulla käyttämällä katkaistua normaalijakaumaa. Typistetty normaalijakauma tarkoittaa, että luodut arvot katkaistaan ​​tietyllä alueella ääriarvojen estämiseksi.käytetty täällätorch.fmod Kiertokeinona tämän vaikutuksen saavuttamiseksi.

Yksityiskohtainen selitys

1. Typistetty normaalijakauma

Typistetty normaalijakauma on normaalijakauman muunnos, joka varmistaa, että generoidut arvot osuvat tietylle alueelle. Erityisesti,torch.fmod Funktio palauttaa syötetensorin loppuosan jaettuna kahdella (eli siten, että tuloksena oleva arvo on välillä -2 ja 2).

2. Painon alustus

Koodissa neljä painotensoria lasketaan eri keskihajonnan mukaan (init_sd_first, init_sd_middle, init_sd_last ) generoidaan typistetystä normaalijakaumasta. Tarkat mitat ovat:

  • Ensimmäisen kerroksen painotensorin muoto on (x_dim, width n_double)
  • Keskikerroksen kahden painotensorin muoto on (width, width n_double)
  • Viimeisen kerroksen painotensorin muoto on (width, 1)

Nämä painotensorit luodaan seuraavasti:

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)
]