[DUBUCE1] 3. laboratorijska vježba - 2021/2022
miss_anthropocene
def collate_fn(batch):
texts, labels = zip(*batch)
lengths = torch.tensor([len(text) for text in texts])
return texts, labels, lengths
jel zna tko kak fixati error TypeError: len() of a 0-d tensor u ovoj funkciji?
bodilyfluids
neunist.iva Jel radiš negdje squeeze? možda je povezano s tim.
Mislim da error nema veze s collate_fn, nego s necim unutar unutar NLPDataseta
neksi
Što je bilo na blicu?
Jaster111
Jel bi mi onda za override getitem metode zapravo trebali u NLPDataset ubacit Vocab? Ne kužim, čini mi se to sve dosta redundantno.
indythedog
Jaster111 Da, bar sam ja tako stavio
Stavio sam da se u konstruktoru NLPDataseta predaje rječnik koji se želi koristiti za pretvaranje riječi u indekse
I onda svaki put kad pozovem getitem(self, index), dohvaćam traženu rečenicu iz dataseta, sve njene riječi pretvaram u (int) brojeve koristeći rječnik i vraćam tu rečenicu koja je sad u obliku brojeva.
Jaster111
Ima netko kakav cheat sheet za ovaj 2. zadatak? Šta mi šaljemo gdje i šta se sa čime radi? Kako koristimo u svemu tome dataloader, a kako embeddingse?
indythedog
Jaster111 Dataloader koristiš za iteriranje po podacima za treniranje/testiranje, tipa ovako
Samo onda ne smiješ zaboraviti da ti je izlaz iz dataloadera x_ind, tj. rečenica u kojoj su riječi zapisane preko njihovih indeksa u rječniku, dakle ovako nešto:
x_ind = [28 1 388 499 7876…], a ti želiš da ti svaka riječ u rečenici bude zapisana kao 300-dimenzionalni vektor. Te vektore su ti oni već dali u onoj glove_embeddings datoteci, i znači tamo za svaku riječ iz rječnika imaš zapisan njen 300-dim vektor iliti embedding. Tu embedding matricu napraviš kako su opisali, obavezno koristeći onaj pytorch wrapper.
I jednom kad imaš embedding matricu (konstruriraš je neovisno o modelu, te ju predaš kao parametar modela prilikom inicijalizacije), onaj x_ind od maloprije pretvaraš u njegovu vektorsku reprezentaciju x_vec koristeći embedding matricu pomoću ovog poziva:
I sad ti je x_vec u obliku u kojem ga možeš slobodno ubaciti u RNN ćeliju, i tjt.
bodilyfluids
Dodatno u vezi embedding matrice,
osim pretvorbe riječi direktno preko embedding matrice, torch nudi Embedding sloj koji se stavlja na početak mreže. Njemu na ulaz daš index riječi, a on ti vrati vektorsku reprezentaciju. Embedding layer možeš inicijalizirati nekom razdiobom ili mu možeš u konstruktor dati pretrenirane reprezentacije. Nije ga loše koristit jer možeš tijekom učenja ažurirati embedding matricu, pa tako dodatno ispoliraš embeddinge za konkretan dataset.
ovako ga se inicijalizira
self.embedding = nn.Embedding.from_pretrained(embeddings=embeddings, freeze=True)
BillIK
može li netko reći ispituje li se na bilcu i gradivo optimizacije ili samo povratni modeli?
Tompa007
Jel smijemo drugi zadatak model preko kerasa slozit ?
sheriffHorsey
Jel imao netko problem da je dio vrijednosti koje izvuce iz stoi dictionaryja krivo? Dobivam ove vrijednosti:
Numericalized text: [189, 2, 713, 7, 129, 358, 144]
sheriffHorsey
sheriffHorsey Idiote maloumni gleda se poredak iz ulazne datoteke
DoktorKanye
jel moze netko pokazati kako su napisali RNN razred, meni bez obzira koji cell koristim ispadaju slicni rezultati
bodilyfluids
DoktorKanye ma to je ok, nemoj se zamarat… Ako ti je accuracy slican onome sto su oni koristili its fine, barem je tako meni bilo na usmenom
Meni su sve celije isto davale slicne rezultate u 3. zadatku
Tompa007
Po epohama mi pada accuracy modela, neznam di sam mogo prenaucit model, ima neko mozda ideju il je imo slican problem ?
bodilyfluids
Mozda koristis vokabular naucen na validation setu. Tamo se negative pojavi cesce pa mu je index 0, pa ti model vrati suprotnu predikciju
Tompa007
Dragi prijatelj strojnog učenja Koristim vokabular iz train seta generiran :/
branimir1999
Meni je na baseline modelu i na LSTM modelu pocetni accuracy oko 73% pa konvergira na otprilike 78%. Je li itko zna u cemu bi mogao biti problem?
micho
branimir1999 Što misliš da je tu problem? Očekuješ oko 80% accuracy
sheriffHorsey
Ima li netko tko ima termin u četvrtak u 13:30 da bi se htio mijenjat za srijedu u 14? Malo su me zajebali su me s drugim labosima početkom tjedna pa mislim da neću stić riješit ovo, a nadoknadu sam nažalost već potrošio
indythedog
sheriffHorsey Posalji mail Petri Bevandic, postoji sansa da ce ti izac u susret tj. da ti da kasniji termin
sheriffHorsey
indythedog probao sam, kaze da je sve popunjeno u cetvrtak