2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Αυτό το απόσπασμα κώδικα δείχνει πώς να αρχικοποιήσετε τα βάρη ενός νευρωνικού δικτύου χρησιμοποιώντας το PyTorch, χρησιμοποιώντας την περικομμένη κανονική κατανομή. Μια περικομμένη κανονική κατανομή σημαίνει ότι οι παραγόμενες τιμές περικόπτονται εντός ενός εύρους για την αποφυγή ακραίων τιμών.χρησιμοποιείται εδώtorch.fmod
Ως λύση για την επίτευξη αυτού του αποτελέσματος.
Η περικομμένη κανονική κατανομή είναι μια τροποποίηση της κανονικής κατανομής που διασφαλίζει ότι οι παραγόμενες τιμές εμπίπτουν σε ένα συγκεκριμένο εύρος. ΕΙΔΙΚΑ,torch.fmod
Η συνάρτηση επιστρέφει το υπόλοιπο του τανυστή εισόδου διαιρεμένο με το 2 (δηλαδή, έτσι ώστε η τιμή που προκύπτει να είναι μεταξύ -2 και 2).
Στον κώδικα, οι τέσσερις τανυστές βάρους υπολογίζονται σύμφωνα με διαφορετικές τυπικές αποκλίσεις (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)
]