Paketoikaa sekvenssit ja käsitelkää täyttö
Kouluttakaa tehokkaasti eripituisilla syötteillä
Paketoikaa sekvenssit ja käsitelkää täyttö on ilmainen Deep Learning Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Deep Learning Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.
Erät tarvitsevat suorakulmioita
Jotta useita sekvenssejä voidaan käsitellä samanaikaisesti, erän on oltava siisti suorakulmio. Oikean maailman lauseet ovat kuitenkin eri pituisia, joten ne eivät asetu kohdakkain.
Täyttö yhteiseen pituuteen
Ratkaisu on täyttö: lyhyisiin sekvensseihin lisätään täytetokeneita, yleensä nollia, jotta jokainen erän rivi on yhtä pitkä.
pad_sequence-apufunktio
PyTorchin pad_sequence pinoaa muuttuvan pituisten tensorien luettelon yhdeksi täytetyksi eräksi yhdellä kutsulla.
from torch.nn.utils.rnn import pad_sequence
batch = pad_sequence(seqs, batch_first=True)Täyttö tuhlaa laskentaa
Täytetokenit ovat keinotekoisia. Jos RNN käsittelee ne silti, laskentaa kuluu turhaan ja täyttö voi saastuttaa piilotetun tilan.
Seuratkaa todellisia pituuksia
Kirjatkaa jokaisen sekvenssin todellinen pituus ennen täyttämistä. Välitätte nämä pituudet PyTorchille, jotta se tietää, mihin todellinen data päättyy.
lengths = [len(s) for s in seqs]Erän pakkaaminen
pack_padded_sequence muuttaa täytetyn erän ja pituudet tiiviiseen muotoon, jota RNN voi käsitellä koskematta täyttöön.
packed = pack_padded_sequence(batch, lengths, batch_first=True)RNN:n suorittaminen pakatulla datalla
Syöttäkää pakattu objekti suoraan nn.LSTM- tai nn.GRU-moduulille. Solu ohittaa täytetyt vaiheet, joten muisti pysyy puhtaana ja selkeänä.
out_packed, h_n = lstm(packed)Tulosteen purkaminen
Voitte lukea jokaisen vaiheen tulosteet uudelleen kutsumalla pad_packed_sequence-funktiota, joka palauttaa suorakulmaisen täytetyn muodon RNN:n suorittamisen jälkeen.
out, lengths = pad_packed_sequence(out_packed, batch_first=True)Järjestäminen pituuden mukaan
Perinteinen pakkaus edellyttää sekvenssien järjestämistä pisimmästä alkaen. Asettakaa enforce_sorted arvoon False, niin PyTorch käsittelee järjestämättömät erät puolestanne.
Häivyttäkää täyttö häviöstä
Ohittakaa täytetyt kohdat pisteytettäessä myös pakkaamisen jälkeen. Maski tai ignore_index pitää keinotekoiset tokenit poissa häviöstä.
loss_fn = nn.CrossEntropyLoss(ignore_index=PAD_ID)Liittäminen DataLoaderiin
Tehkää täyttö mukautetussa collate_fn-funktiossa, jotta jokainen erä saapuu valmiiksi täytettynä ja pituudet ovat valmiina pakkaamista varten.
Pikatarkistus
Miksi täytetty erä pakataan ennen sen syöttämistä RNN:lle?
Kertaus
Täyttäkää erä, jotta sen osat ovat samankokoisia, tallentakaa todelliset pituudet ja pakatkaa erä, jotta RNN ohittaa täytteen. Häivyttäkää täytetyt tokenit myös häviöstä. ✅
Opi Python tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Paketoikaa sekvenssit ja käsitelkää täyttö” ilmainen?
Kyllä – oppitunnin ”Paketoikaa sekvenssit ja käsitelkää täyttö” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Deep Learning Academy-kurssin, päivitä CoddyKit PROhon. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Paketoikaa sekvenssit ja käsitelkää täyttö”?
Kouluttakaa tehokkaasti eripituisilla syötteillä Harjoittelet Deep Learning Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Deep Learning Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Deep Learning Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Paketoikaa sekvenssit ja käsitelkää täyttö”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Deep Learning Academy-oppitunnilla?
Kyllä. Jokainen Deep Learning Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Miksi sekvenssit tarvitsevat muistia
- Tavallinen RNN-solu
- LSTM- ja GRU-portit
- Paketoikaa sekvenssit ja käsitelkää täyttö