[DUBUCE1] 4. laboratorijska vježba - 2021/2022
Emma63194
Rene ako može neko podijeliti grafove iz zadnjeg zadatka bio bih zahvalan
Meni je ovako ispalo:
model_feat mi je model koji koristi vektore iz prostora značajki, dok model_id samo sliku uzima.
Jel nam išta slično izgledaju grafovi?
steker
Emma63194 mislim koliko treba bit ulaz i izlaz za svaki layer
Emma63194
steker Aha, misliš kao, kolike su ulazne i izlazne dimenzije? Ja sam ovako, ali neka netko još provjeri, ne garantiram da je točno:
BNReluConv
- input dim: BATCH_SIZE x 1 x 28 x 28
- output dim: BATCH_SIZE x EMB_SIZE x 26 x 26
max pool
- input dim: BATCH_SIZE x EMB_SIZE x 26 x 26
- output dim: BATCH_SIZE x EMB_SIZE x 12 x 12
BNReluConv
- input dim: BATCH_SIZE x EMB_SIZE x 12 x 12
- output dim: BATCH_SIZE x EMB_SIZE x 10 x 10
max pool
- input dim: BATCH_SIZE x EMB_SIZE x 10 x 10
- output dim: BATCH_SIZE x EMB_SIZE x 4 x 4
BNReluConv
- input dim: BATCH_SIZE x EMB_SIZE x 4 x 4
- output dim: BATCH_SIZE x EMB_SIZE x 2 x 2
global average pool
- input dim: BATCH_SIZE x EMB_SIZE x 2 x 2
- output dim: BATCH_SIZE x EMB_SIZE x 1 x 1
steker
Emma63194 e to hvala
Emma63194
steker Np. Mene samo muči jer sam stavila da je veličina feature mapi stalno EMB_SIZE.
Nisu nigdje rekli koliko mora biti, osim da bi na izlazu zadnjeg sloja trebalo biti tako.
Ne znam jesmo li između trebali uzimati veće feature mape ili je u redu ovako kako sam ja stavila.
ErnestHemingway
Emma63194 Sve sto nije strogo definirano je prostor za vlastitu interpretaciju
ppooww
Rene Kak ga reshapeas? torch.reshape(img, (img.shape[0], 1))
? Nije mi bas najjasniji taj zadatak pa je bilo kakva pomoc dobrodosla
Ducky
pp ja reshapeam x na kraju funkcije
x = x.reshape((img.size(dim=0), self.emb_size))
Ducky
pp nvm, mislio sam si pito za 2. zadatak.
Radi mi torch.reshape(img, (img.shape[0], img.shape[2]*img.shape[3]))
za 82.16% acc, al mislim da možeš bilo kako reshejpat dok god ti je 2. dimenzija za r i repr ista (u evaluate)
steker
hellvetica reshapeaj vektor na kraju get features funkcije
faboche
Ducky Vidim da vec nekoliko ljudi spominje 82% tocnost. Ja uporno dobivam 12%, koje izmjene ste morali napravit u utils.py?
Daeyarn
koliko dugo vam traje treniranje u 2. zadatku?
tpulj
Daeyarn cca 5 min po epohi, ako ti puno traje vjerojatno ti sampling metode pre dugo traju
Probaj ovako:
def _sample_negative(self, index):
anchor_target = self.targets[index].item()
indicies = list()
for tar in self.target2indices:
if (tar != anchor_target):
indicies += self.target2indices[tar]
return choice(indicies)
def _sample_positive(self, index):
anchor_target = self.targets[index].item()
return choice(self.target2indices[anchor_target])
Daeyarn
tpulj wow, s ovim kodom se cak izvrte do kraja 😅 hvala puno!
Emma63194
tpulj U drugom dijelu, nemaš garanciju da ti pozitivan primjer neće biti isti sidru. Znam da je mala vjerojatnost da se to desi, ali opet.
U prvom, zašto ne samo nasumično odabrati razred (koji nije jednak razredu sidra) i onda samo nasumičan uzorak iz tog razreda?
Čini mi se da je to brže nego raditi listu i onda iz nje random birati.
tpulj
Daeyarn np, nemoj samo zaboravit izmjenit malo 😉
Tompa007
Ducky I meni je tako, si rijesio to ?
Emma63194
Ima li tko da je imao na početku slabiji performance i da je uspio skužiti u čemu je stvar i popraviti to?
Igram se već jedno vrijeme s hiperparametrima, ali najbolje što uspjevam dobiti je 72% točnost.
Ne znam u čemu bi mogao biti problem.
Emma63194
Emma63194 Problem je bio u tome što sam miješala numpy i torch. Izbjegavajte numpy kod loss
funkcije i koristite torcheve alternative funkcija koje bi vam mogle trebati.
tpulj
Emma63194
1) Zanemarivo 😄
2) Je, u pravu si. Toga san se sitia nakon sta san vec napisa funkciju a nije mi se dalo vracat vise na to 😅
Tompa007
Ducky Provjeri si output shape iz forwards treba ti biti , BATCH * EMB , a ne BATCH * EMB * 1 * 1
ppooww
Koliki vam je test accuracy nakon izbacivanja razreda 0 iz skupa za ucenje?
Tompa007
pp 97%
Tompa007
kak ste iz tensora izbacivali elemente ? za 3 zad pod e)