Keras, Tensorflow , Opencv pojmy a dojmy vysvetlenie rubrika: Programování: Python

2 ToTR
položil/-a 13.1.2020

Dobry den.

Zabavam sa s Kerasom a Tensorflowom a mam par otazok ktore nie su pre mna uplne jasne.

  1. 99% navodov ako si vygenerovat vlastnu siet na rozpoznavanie objektov konci s tym ze vysledok je .hdf5 alebo max .h5 subor ktory sa neda nativne pouzit v tensorflow a je potrebna konverzia do PB. Preco sa to tak deje?
  2. Co sa najviac pouziva v realnych aplikaciach pre "rychlu" detekciu? Je mi jasne ze to beha na GPU ale zaujimalo by ma ktory model je na to najefektivnejsi.
  3. Zaujimalo ma aj YOLO ale znova to cele zomrelo na tom ze vysledok je H5 a dovi dopo. https://github.com/AntonMu/TrainYourOwnYOLO Ma niekto overene a funkcne riesenie ako vygenerovat YOLO ale bez formatu .h5 teda keras?

  4. Nie je mi celkom jasne ako funguje samotny trening. Ak som spravne pochopil tak cim viac obrazkov ako zdroj a viac "epoch" tym lepsie, ale ak som napriklad pouzil na trening 100 obrazkov tak mam ovela lepsiu detekciu 95~98% ako ked som trenoval na 1000 obrazkoch 89~94%. Preco? Moja teoria je zalozena na tom ze mam vecsiu variabilitu ako pri 100 obrazkoch ale ocakaval by som ze by mal mat prave naopak vecsiu presnost. Ako to teda funguje?

Ja viem ze su otazky mozno bezo zmyslu pre niekoho kto tomu rozumie ale dost by mi pomohlo osvetlit niektore zakladne veci.

Dakujem

Komentáře

  • dominios : Na body 1-3 odpovedat neviem, ale pri 4 je to (zvacsa) pomerne jasne: pravdepodobne mas obrazky s prilis velkou variabilitou, teda siet ako taka sama seba pletie pocas ucenia. Inymi slovami, mozno len potrebuje viac casu na ucenie a teda viac epoch (co samozrejme bude poriadne trvat), alebo uprava datasetu, mozno je ten kontraproduktivny. Mozno v nom mas veci ktore naozaj siet ucit nechces, resp. to treba este lepsie zotriedit a pod.. Aby si co najlepsie vedel, ci mas dobry dataset, spravne z neho cca 10-20% obrazkov uplne zober prec - to bude tvoja testovacia vzorka. Testovacia vzorka by NIKDY nemala byt sucasne aj trenovacou. Spravne by si mal dostavat zhruba rovnake cisla aj keby si potom skusal prehadzovat tie obrazky (tzn. urobit to cele odznovu: z povodneho trenovacieho datasetu odloz 10-20% bokom na test a naopak, nahrad povodnymi testovacimi a trenuj uplne od zaciatku). Vysledky by si mal mat zhruba rovnake (uplne totozne asi ale nebudu nikdy). Priklad kedy moze byt zly dataset: chces klasifikovat medzi mackou a psom, ale v datasete mas aj obrazky, na ktorych su levice. V principe ano, patria tam a asi by mali dopomoct klasifikacii macky, ale nie je to uplne to, co mas v zadani. 13.1.2020
odkaz Vyřešeno
1 kr
odpověděl/-a 23.1.2020

1/ proste to jsou jine formaty na ulozeni dat z vytrenovane NN. keras/tf2 oproti tf1

2/ kvalita modelu neni konecna, da se predpokladat ze se bude donekonecna vyvijet takze nejlepsi muzes chtit tezko. nicmene se muzes kouknout na sbirku verejne dostupnejch modelu (typicky to muzes hledat na google pod pojmem 'nn model zoo' jiank treba tady https://github.com/onnx/models nebo tady https://modelzoo.co/ . co se tyce behu NN, vubec neni potreba GPU, to se pouziva hlavne na trening protoze tam potrebujes udelat radove daleko vic vypoctu a nechces dlouho cekat. normalni vytrenovana sit ti pobezi (samozrejme zalezi na siti) vpohode na procesoru, pro specificky veci bych si umel predstavit zabudovanej cip optimalizovanej na nakou ulohu. ale pro tvoje potreby...staci cpu

3/ h5 nactes i v novym tensorflow 2

4/ trenovani NN neni tak primitivni aby si tu dostal (navic bez dodatecnych informaci od tebe) nejakou rozumnou odpoved takze se o ni ani nepokusim. nicmene, kdyz trenujes, da se rict ze plati, ze cim vic dat mas, tim lip. spravne predpokladas ze vetsi mnozstvi trenovacich prikladu poskytne vetsi variabilitu...ovsem pouze pokud jsou to kvalitni data. kdyz 1000x nakopiruju stejnej obrazek, budu mit pouze 1 funkci obrazek. kdyz u systemu na detekci aut budu mit z 1000 fotek pouze 1 fotku auta a 999 fotek bez auta, budes mit opet (zjednodusene receno), pouze 1 funkcni obrazek. kdyz budes mit v datasetu na detekci psu fotky treba jen jezevciku , da se predpokladat ze to vlcaky nebude spravne detekovat a pod :). kvalita VSECH DAT (tzn ty na kterejch trenujes i overujes) musi bejt stejna a vynikajici. musi korespondovat s datama ktery pak budes davat do neuronovy site na overovani. resi se i takovy veci jako barevnost a podobne. tzn pokud bys treba overoval fotkama z webkamery, tak presne takovy fotky musis mit v training setu(pripadne je preprocesovat). v projektu stravis nejvic casu pripravou dat pred samotnym treningem. samotna priprava nebo shaneni dat je vlastne to nejtezsi na beznejch DNN a existujou metody jak si to ujednodusit ale to si vsecko musis nacist.

ja bych ti doporucil udelat si treba tuhle specializaci https://www.deeplearning.ai/ ktera to sice bere od zakladu, ale budes vedet co delas a proc a je to dobrej zacatek pro dalsi rozvoj :)

Komentáře

  • Taco : Četl jsem historku, že trénovali na rozpoznávání tanků. Dali spousta dat. A pak když to ověřovali tak jim to náhodně vůbec nefungovalo. Ona se totiž ta síť naučila, že tank je to když je jasno, a když je zataženo, tak to není tank :-) 26.1.2020
  • ToTR : kr - klobuk dolu. Velmi pekne dakujem. Fakt super odpoved. 1) ta info my chybala. Dohladal som a uz som pochopil 2) To sedi 3) To je validne a pravdepodobne moja neznalost ma limitovala. Neviem preco mal som ulozne v hlave ze pre aplikaciu je opencv+python 4) Potvrdil si moje domienky a to co som vyskusal za dobu pokial som nasiel kvalifikovanu odpoved. K datam to je naozaj alfa a omega. Nasiel som niekolko sposobov ako to trosku automatizovat ale v podstate znova 100% suhlas. Na svojom datasheet-e som si to krasne overil. Ked som ho "precistil" (odstranil nie zrovna dobre vzorove obrazky) kvalita sla na hore. A znova dakujem. Taco: No je to dost o tom ci je to object detection co asi nie alebo nieco v style "recognition" kde boly uplne zle vzorove data. 27.1.2020

Pro zobrazení všech 2 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.