Utolsó frissítés: 2020. április 17.
A konvolúciós idegrendszeri hálózatok fő alkotóelemeit a konvolúciós rétegek jelentik.
A konvolúció egy szűrő egyszerű alkalmazása egy bemenetre, amely aktiválást eredményez. Ugyanazon szűrő ismételt alkalmazása egy bemenetre az aktiválások térképét eredményezi, amelyet jellemző térképnek neveznek, jelezve a bemenetben észlelt jellemző helyének és erősségének, például egy képnek a helyét és erősségét.
A konvolúciós neurális innovációja A hálózatok az a képesség, hogy egy képzési adathalmazra párhuzamosan nagyszámú szűrőt tudnak automatikusan megtanulni egy adott prediktív modellezési probléma, például képosztályozás korlátai mellett. Az eredmény nagyon specifikus funkciók, amelyek bárhol felismerhetők a bemeneti képeken.
Ebben az oktatóanyagban megtudhatja, hogyan működnek a konvolúciók a konvolúciós ideghálózatban.
Az oktatóanyag befejezése után tudni fogja:
- A konvolúciós ideghálózatok szűrőt alkalmaznak egy bemenetre egy olyan jellemzők térképének létrehozásához, amely összefoglalja a bemenetben észlelt jellemzők jelenlétét.
- A szűrők kézi készítésűek , mint például a vonali detektorok, de a konvolúciós ideghálózatok innovációja az, hogy a szűréseket megtanulják az edzés során egy adott predikciós probléma összefüggésében. rétegek egy konvolúciós ideghálózatban.
Indítsa el a projektet a Deep Learning for Computer Vision című új könyvemmel, amely lépésről lépésre bemutatja az oktatóanyagokat és a Python forráskód fájlokat az összes példához.
Kezdjük.
Gyengéd Bevezetés a konvolúciós rétegekbe az ideghálózatok mély tanulásához
mendhak fényképe, néhány jog fenntartva.
Az oktatóanyag áttekintése
Ez az oktatóanyag négy részre oszlik; ezek:
- konvolúció a konvolúciós neurális hálózatokban
- konvolúció a számítógépes látásban
- a megtanult szűrők ereje
- bevált példa Konvolúciós rétegek
Szeretne eredményeket a mély tanulással a számítógépes látáshoz?
ingyenes 7 napos e-mailes összeomlási tanfolyam (mintakóddal).
Kattintson a regisztrációhoz, és a tanfolyam ingyenes PDF Ebook változatát is megszerezheti. Tanfolyam
Konvolúció a konvolúciós ideghálózatokban
A konvolúciós ideghálózat vagy röviden a CNN egy speciális típusú neurális hálózati modell, amely kétdimenziós képadatokkal való munkavégzésre készült, bár egydimenziós és háromdimenziós adatokkal is használhatók.
A konvolúciós neuronhálózat középpontjában az a konvolúciós réteg áll, amely megadja a hálózat nevét. Ez a réteg egy “konvolúció” nevű műveletet hajt végre.
A konvolúciós idegháló kontextusában a konvolúció egy lineáris művelet, amely magában foglalja a súlykészlet szorzását a bemenettel, hasonlóan a hagyományoshoz neurális hálózat. Tekintettel arra, hogy a technikát kétdimenziós bemenetre tervezték, a szorzást a bemeneti adatok tömbje és a kétdimenziós tömegtömb között hajtják végre, amelyet szűrőnek vagy kernelnek hívnak.
A szűrő kisebb, mint a bemeneti adatok és a bemenet szűrőméretű foltja és a szűrő között alkalmazott szorzás típusa ponttermék. A ponttermék a bemenet és a szűrő szűrőméretű foltja közötti elemenkénti szorzás, amelyet ezután összegeznek, mindig egyetlen értéket eredményezve. Mivel egyetlen értéket eredményez, a műveletet gyakran “skaláris szorzatnak” nevezik.
A bemenetnél kisebb szűrő használata szándékos, mivel lehetővé teszi ugyanazon szűrő (súlykészlet) használatát. szorozva a bemeneti tömbrel többször a bemenet különböző pontjain. Pontosabban, a szűrőt szisztematikusan alkalmazzák a bemeneti adatok minden átfedő részén vagy szűrőméretű foltján, balról jobbra, fentről lefelé.
Ugyanannak a szűrőnek a képen történő szisztematikus alkalmazása erőteljes ötlet . Ha a szűrőt úgy tervezték, hogy egy adott típusú jellemzőt érzékeljen a bemenetben, akkor ennek a szűrőnek a szisztematikus alkalmazása a teljes bemeneti képen lehetővé teszi a szűrő számára, hogy felfedezze ezt a funkciót a kép bármely pontján. Ezt a képességet fordítási invarianciának nevezik, pl. általános érdeklődés, hogy a szolgáltatás jelen van-e, nem pedig abban, hogy hol volt.
A helyi fordítás eltérése nagyon hasznos tulajdonság lehet, ha jobban érdekel hogy van-e valamilyen jellemző, mint pontosan ott, ahol van.Például annak meghatározásakor, hogy egy kép tartalmaz-e egy arcot, nem kell pixel tökéletes pontossággal ismerni a szemek helyét, csak azt kell tudnunk, hogy van egy szem az arc bal oldalán és egy szem a jobb oldalon arcoldal.
– 342. oldal, Deep Learning, 2016.
A szűrő és a bemeneti tömb megszorzásának eredménye az egyszeri egyetlen érték. Mivel a szűrőt többször alkalmazzák a bemeneti tömbre, az eredmény egy kétdimenziós kimeneti értékrend, amely a bemenet szűrését jelenti. Mint ilyen, ennek a műveletnek a kétdimenziós kimeneti tömbjét “funkciótérképnek” nevezzük.
Miután létrehozott egy jellemzőtérképet, a tulajdonságtérkép minden egyes értékét átadhatjuk egy nemlineárisnak, például egy ReLU, hasonlóan a teljesen összekapcsolt réteg kimeneteihez.
Példa egy szűrőre Kétdimenziós bemenetre alkalmazva egy jellemzők térképének létrehozásához
Ha digitális jelfeldolgozó mezőből vagy a matematika kapcsolódó területéről származik, akkor a mátrix konvolúciós műveletét valami másként értheti meg . Pontosabban, a szűrőt (kernelt) megfordítják, mielőtt a bemenetre felviszik. Technikailag a konvolúciós ideghálózatok használatában leírt konvolúció valójában “keresztkorreláció”. Ennek ellenére a mély tanulás során “konvolúciós” műveletnek nevezik.
Számos gépi tanulási könyvtár keresztkorrelációt valósít meg, de konvolúciónak nevezi.
– 333. oldal, Deep Learning, 2016.
Összefoglalva: van egy bemenetünk, például egy képpontértékek képe, és van egy szűrőnk, amely egy súlykészlet, és a szűrőt szisztematikusan alkalmazzák a bemeneti adatokra egy jellemző térkép létrehozásához .
Konvolúció a számítógépes látásban
A konvolúciós művelet képadatokra való alkalmazásának gondolata nem új vagy egyedülálló a konvolúciós neurális hálózatokban; ez egy általános technika, amelyet a számítógépes látásban használnak.
Történelmileg a számítógépes látás szakértői kézzel tervezték a szűrőket, amelyeket aztán egy képre alkalmaztak, hogy jellemző térképet vagy kimenetet eredményezzenek a szűrő alkalmazásával. a kép elemzése valamilyen módon könnyebb.
Az alábbiakban egy kézzel készített 3 × 3 elemű szűrő található függőleges vonalak észlelésére:
1
2
3
|
0,0, 1,0, 0,0
0,0, 1,0, 0,0
0.0, 1.0, 0.0
|
A szűrő alkalmazása egy A kép egy olyan térképet eredményez, amely csak függőleges vonalakat tartalmaz. Ez egy függőleges vonal detektor.
Ezt a szűrő súlyértékéből láthatja; a függőleges középvonalban lévő bármely pixelérték pozitívan aktiválódik, és bármelyik oldal negatívan aktiválódik. Ha ezt a szűrőt szisztematikusan áthúzza a kép pixelértékein, csak a függőleges vonalak képpontjait emelheti ki.
Vízszintes vonalak érzékelője is létrehozható, és a képre is alkalmazható, például:
1
2
3
|
0,0, 0,0, 0,0
1.0, 1.0, 1.0
0.0, 0.0, 0.0
|
Mindkét szűrő eredményeinek egyesítése, pl mindkét jellemzőtérkép kombinálásával a kép összes sora kiemelésre kerül.
Tíz vagy akár több száz egyéb apró szűrőből álló csomag is kialakítható a kép egyéb jellemzőinek észlelésére.
A konvolúciós művelet neurális hálózatban való használatának újdonsága, hogy a szűrő értékei olyan súlyok, amelyeket meg kell tanulni a hálózat edzése során.
A hálózat megtanulja, hogy milyen típusú szolgáltatásokat használjon kivonat a bemenetből. Konkrétan a sztochasztikus gradiens süllyedés alatt végzett edzés során a hálózat arra kényszerül, hogy megtanuljon olyan képeket kinyerni a képből, amelyek minimalizálják a veszteséget annak a feladatnak, amelynek megoldására a hálózatot oktatják, pl. vonja ki azokat a funkciókat, amelyek a leghasznosabbak a képek kutyának vagy macskának minősítéséhez.
Ebben az összefüggésben láthatja, hogy ez egy hatalmas ötlet.
A megtanult szűrők ereje
A gépi tanulási feladathoz tartozó egyetlen szűrő megtanulása nagy teljesítményű technika.
A konvolúciós neurális hálózatok mégis sokkal többet érnek el a gyakorlatban .
Több szűrő
A konvolúciós neurális hálózatok nem tanulnak meg egyetlen szűrőt; valójában több tulajdonságot tanulnak párhuzamosan egy adott bemenethez.
Például gyakran előfordul, hogy egy konvolúciós réteg 32-512 szűrőt tanul párhuzamosan egy adott bemenetnél.
Ez a 32-es, vagy akár az 512-es modellnek különböző módon vonja ki a funkciókat egy bemenetből, vagy a “látás megtanulásának” és az edzés után számos különböző módját biztosítja a bemeneti adatok “megtekintésének”.
Ez a változatosság lehetővé teszi a specializálódást, pl nem csak vonalak, hanem a konkrét edzésadatokban látható vonalak is.
Többcsatornás
A színes képek több csatornával rendelkeznek, általában egy-egy színes csatornához, például piros, zöld, és kék.
Adatszempontból ez azt jelenti, hogy a modell bemeneteként egyetlen kép valójában három kép.
A szűrőnek mindig azonos számmal kell rendelkeznie. a csatornák bemenete, amelyet gyakran “mélységnek” neveznek. Ha egy bemeneti kép 3 csatornás (pl. 3 mélységű), akkor a képre alkalmazott szűrőnek 3 csatornásnak is kell lennie (pl. 3 mélységű). Ebben az esetben a 3 × 3 szűrő valójában 3x3x3, vagy a sorok, oszlopok és mélység esetén. Függetlenül a bemenet mélységétől és a szűrő mélységétől, a szűrőt pontérték-művelettel alkalmazzák a bemenetre, amely egyetlen értéket eredményez.
Ez azt jelenti, hogy ha egy konvolúciós réteg 32 szűrővel rendelkezik, ez a 32 szűrő nemcsak kétdimenziós a kétdimenziós képbemenet számára, hanem háromdimenziós is, a három csatorna mindegyikére külön szűrősúlyokkal rendelkezik. Mégis, minden szűrő egyetlen jellemző térképet eredményez. Ami azt jelenti, hogy a konvolúciós réteg 32 szűrővel történő alkalmazásának kimenete mélység 32 a létrehozott 32 jellemzőtérképnél.
Több réteg
A konvolúciós rétegeket nem csak a bemeneti adatokra alkalmazzák. , például nyers pixelértékek, de más rétegek kimenetére is alkalmazhatók.
A konvolúciós rétegek egymásra helyezése lehetővé teszi a bemenet hierarchikus lebontását.
Vegye figyelembe, hogy a működő szűrők közvetlenül a nyers pixelértékeken megtanulják kibontani az alacsony szintű jellemzőket, például a vonalakat.
Az első sorrétegek kimenetén működő szűrők olyan funkciókat vonhatnak ki, amelyek az alacsonyabb szintű jellemzők kombinációi, mint például a vonalak, amelyek több vonalt tartalmaznak az alakzatok kifejezéséhez.
Ez a folyamat addig folytatódik, amíg nagyon mély rétegek nem vonják ki az arcokat, állatokat, házakat stb.
Pontosan ezt látjuk gyakorlatban. A funkciók absztrakciója magas és magasabb rendekre, a hálózat mélységének növekedésével.
Konvolúciós rétegek bevált példája
A Keras mélytanuló könyvtár konvolúciós rétegeket kínál.
A konvolúciós műveletet jobban megérthetjük, ha megnézünk néhány kidolgozott adattal és kézi készítésű szűrővel ellátott példát.
Ebben a szakaszban egy egydimenziós konvolúciós réteget és kétdimenziós konvolúciós réteg példa a konvolúciós művelet konkretizálására és a Keras rétegek használatának kidolgozott példájára.
Példa az 1D konvolúciós rétegre
Meghatározhatunk egy dimenziós bemenet, amelynek nyolc eleme van, mindegyik értéke 0.0, középen két elem ütközik az 1.0 értékekkel.
1
|
|
A Keras bemenetének háromdimenziósnak kell lennie egy 1D konvolúciós réteghez.
Az első dimenzió minden bemeneti mintára vonatkozik; ebben az esetben csak egy mintánk van. A második dimenzió az egyes minták hosszára vonatkozik; ebben az esetben a hossz nyolc. A harmadik dimenzió az egyes minták csatornáinak számát jelenti; ebben az esetben csak egyetlen csatornánk van.
Ezért a bemeneti tömb alakja az lesz.
1
2
3
|
# bemenet definiálása adatok
data = asarray ()
data = data.reshape (1, 8, 1)
|
Meghatározunk egy modellt, amely a bemeneti mintáktól elvárja az alakját.
A modell egyetlen szűrővel rendelkezik 3 vagy három elem széles alakú. Keras a szűrő alakjára kernel_size néven hivatkozik.
1
2
3
|
# modell létrehozása
model = Szekvenciális ()
model.add (Conv1D (1, 3, input_shape = (8, 1)))
|
Alapértelmezés szerint a konvolúciós réteg szűrői inicializálódnak véletlenszerű súlyokkal. Ebben a kitalált példában manuálisan megadjuk az egyetlen szűrő súlyát. Meghatározunk egy szűrőt, amely képes érzékelni a dudorokat, vagyis a magas bemeneti értéket alacsony bemeneti értékekkel körülvéve, ahogyan azt a bemeneti példánkban definiáltuk.
A három elemű szűrő, amelyet meghatározunk, a következőképpen néz ki:
1
|
|
A konvolúciós rétegnek van egy elfogult bemeneti értéke is, amelyhez szintén meg kell egy súly, amelyet nullára állítunk.
Ezért rákényszeríthetjük egydimenziós konvolúciós rétegünk súlyát a kézműves szűrőnk használatára:
A súlyokat itt kell megadni: háromdimenziós szerkezet, sorok, oszlopok és csatornák szempontjából. A szűrőnek egyetlen sora, három oszlopa és egy csatornája van.
Megkaphatjuk a súlyokat, és ellenőrizhetjük, hogy helyesen vannak-e beállítva.
1
2
|
# megerősítés, hogy tárolták-e
print (model.get_weights ())
|
Végül alkalmazhatjuk az egyetlen szűrőt a bemeneti adatainkra.
Ezt úgy érhetjük el, hogy meghívjuk a predikt () függvényt a modellen. Ez közvetlenül visszaadja a funkciótérképet: ez a szűrő szisztematikus alkalmazásának eredménye a bemeneti sorrendben.
1
2
3
|
# szűrő alkalmazása a bemeneti adatokra
yhat = model.predict (adatok)
print (yhat )
|
Mindezeket összekapcsolva a teljes példa Az alább felsoroltak.
A példa futtatásával először kinyomtatja a hálózat súlyát; ez megerősíti, hogy a kézműves szűrőnket a várakozásoknak megfelelően állítottuk be a modellbe.
Ezután a szűrőt alkalmazzák a bemeneti mintára, és kiszámítják és megjelenítik a jellemző térképet. A jellemzők térképének értékeiből láthatjuk, hogy a dudort helyesen észlelték.
1
2
3
4
5
6
7
8
9
10
|
],
],
]], dtype = float32), tömb (, dtype = float32)]
]]
|
Vizsgáljuk meg közelebbről, mi történt itt.
Emlékezzünk vissza, hogy a bemenet egy nyolc elemvektor a következő értékekkel:.
Először a háromelemes szűrőt alkalmaztuk a bemenet első három bemenetére a ponttermék (“.” operátor) kiszámításával, amely egyetlen kimeneti értéket eredményezett a nulla jellemzőtérképen.
1
2
|
a numpy import asarray
nyomtatásból (asarray (). dot (asarray ()))
|
Manuális példánkban ez a következő:
1
|
. = 0
|
Ezután a szűrőt áthelyezték a a beviteli sorrendet és a folyamatot megismételtük; konkrétan ugyanazt a szűrőt alkalmazták az 1., 2. és 3. index bemeneti szekvenciájára, ami szintén nulla kimenetet eredményezett a jellemzőtérképen.
1
|
. = 0
|
Szisztematikusak vagyunk, ezért ismét A szűrőt a bemenet további elemei mentén mozgatják, és a bemenetre a 2., 3. és 4. indexen alkalmazzák. Ezúttal a kimenet egy értéke a jellemző térképen. Észleltük a funkciót, és megfelelően aktiváltuk.
1
|
. = 1
|
A folyamat addig ismétlődik, amíg ki nem számoljuk az egészet jellemző térkép.
1
|
|
Ne feledje, hogy a funkciótérképnek hat eleme van, míg a bemenetünknek nyolc eleme van. Ez annak a műterméke, hogy a szűrőt hogyan alkalmazták a bemeneti szekvenciára. Vannak más módszerek is a szűrő alkalmazására a beviteli sorrendben, amely megváltoztatja a kapott jellemző térkép alakját, például kitöltéssel, de ebben a bejegyzésben nem tárgyaljuk ezeket a módszereket.
Elképzelheti, hogy más bemeneteknél több-kevesebb intenzitással és a szűrőben különböző súlyokkal észlelhetjük azt a tulajdonságot, hogy a bemeneti sorrendben különböző jellemzőket észlelnénk.
Példa a 2D konvolúciós rétegre
Kiterjeszthetjük az előző szakasz dudorészlelésének példáját egy kétdimenziós kép függőleges vonalérzékelőjére.
Ismét , korlátozhatjuk a bemenetet, ebben az esetben négyzet alakú 8 × 8 pixeles bemeneti képre, egyetlen csatornával (pl. szürkeárnyalatos), középen egyetlen függőleges vonallal.
1
2
3
4
5
6
7
8
|
|
A Conv2D réteg bemenetének négydimenziósnak kell lennie.
Az első dimenzió határozza meg a mintákat; ebben az esetben csak egyetlen minta van. A második dimenzió meghatározza a sorok számát; ebben az esetben nyolc. A harmadik dimenzió határozza meg az oszlopok számát, ebben az esetben ismét nyolcat, végül a csatornák számát, amely ebben az esetben egy.
Ezért a bemenetnek négydimenziós alakúnak kell lennie, vagy ebben az esetben eset.
A Conv2D-t egyetlen szűrővel definiáljuk, ahogy az előző szakaszban a Conv1D példával tettük.
A szűrő kétdimenziós és négyzet alakú lesz a 3 alakkal. × 3. A réteg elvárja, hogy a bemeneti minták formája vagy.
1
2
3
|
# modell létrehozása
model = Szekvenciális ()
model.add (Conv2D (1, (3,3), input_shape = (8, 8. (1))))
|
Meghatározunk egy függőlegest vonaldetektor szűrő az egyetlen függőleges vonal érzékeléséhez a bemeneti adatokban.
A szűrő a következőképpen néz ki:
1
2
3
|
0, 1, 0
0, 1, 0
0, 1, 0
|
Ezt a következőképpen tudjuk megvalósítani:
Végül alkalmazza a szűrőt a bemeneti képre, aminek eredményeként olyan jellemzők térképe lesz, amely várhatóan megmutatja a függőleges vonal észlelését a bemeneti képen.
1
2
|
# szűrő alkalmazása a bemeneti adatokra
yhat = model.predict (adatok)
|
A jellemző térkép kimenetének alakja négydimenziós lesz. Egyetlen köteget fogunk végrehajtani, és egyetlen szűrőnk van (egy szűrő és egy bemeneti csatorna), ezért a kimenet alakja az. Az egyes jellemzők térképének tartalmát a következőképpen tudjuk kinyomtatni:
1
2
3
|
r tartományban (yhat.shape):
# kinyomtatja a sor minden oszlopát
print (a tartományban lévő c-hez ( yhat.shape)]])
|
Mindezek összekapcsolása , a teljes példát az alábbiakban soroljuk fel.
A példa futtatása először megerősíti, hogy a kézi készítésű szűrőt helyesen definiálták a rétegek súlyaiban.
Ezután kinyomtatja a számított jellemző térképet. A számok skálájából láthatjuk, hogy a szűrő valóban észlelte az egyetlen függőleges vonalat, erőteljes aktiválódással a jellemző térkép közepén.
Vizsgáljuk meg közelebbről a kiszámoltakat.
Először a szűrőt a kép bal felső sarkába vagy egy 3 × 3 elemű képfoltba helyezték. Technikailag a képfolt háromdimenziós, egyetlen csatornával, és a szűrő méretei megegyeznek. Ezt nem tudjuk megvalósítani a NumPy-ben a dot () függvény használatával, ehelyett a tensordot () függvényt kell használnunk, hogy az összes dimenziót megfelelően össze tudjuk foglalni, például:
Ez a számítás egyetlen kimeneti értéket eredményez 0,0, pl. a funkciót nem észlelték. Ez adja meg a funkciótérkép bal felső sarkában az első elemet.
Ez manuálisan a következő lenne:
1
2
3
|
0, 1, 0 0, 0, 0
0, 1, 0. 0, 0, 0 = 0
0, 1, 0 0, 0, 0
|
A szűrőt egy oszlop mentén balra mozgatja, és a folyamat megismétlődik. Ismét a szolgáltatás nem található.
1
2
3
|
0, 1, 0 0, 0, 1
0, 1, 0. 0, 0, 1 = 0
0, 1, 0 0, 0, 1
|
Még egy lépés balra a következő oszlopba, és a funkciót először észleli, ami erős aktiválást eredményez.
1
2
3
|
0, 1, 0 0, 1, 1
0, 1, 0. 0, 1, 1 = 3
0, 1, 0 0, 1, 1
|
Ezt a folyamatot addig ismételjük, amíg a szűrő széle a bemeneti kép széléhez vagy utolsó oszlopához nem támaszkodik. Ez adja meg a funkciótérkép első teljes sorának utolsó elemét.
1
|
|
Ezután a szűrő lefelé mozog egy sorral, majd vissza az első oszlopba és a A folyamat balról jobbra kapcsolódik, hogy megkapja a jellemző térkép második sorát. És addig, amíg a szűrő alja a bemeneti kép alsó vagy utolsó sorában nyugszik.
Ismét, az előző szakaszhoz hasonlóan láthatjuk, hogy a jellemző térkép egy 6 × 6 mátrix, kisebb mint a 8 × 8 bemeneti kép, a korlátozások miatt, hogy a szűrő hogyan alkalmazható a bemeneti képre.
További olvasmányok
Ez a szakasz több forrást nyújt a témához, ha Ön mélyebbre vágyik.
Bejegyzések
- Összeomlási tanfolyam a konvolúciós neurális hálózatokban a gépi tanuláshoz
Könyvek
- 9. fejezet: Konvolúciós hálózatok, mély tanulás, 2016.
- 5. fejezet: Mély tanulás a számítógépes látáshoz, Mély tanulás a Pythonnal, 2017.
API
- Keras Convolutional Layers API
- numpy.asarray API
Összefoglaló
Ebben az oktatóanyagban felfedezte hogyan működnek a konvolúciók a konvolúciós ideghálózatban.
Konkrétan megtanulta:
- A konvolúciós ideghálózatok szűrőt alkalmaznak egy bemenetre olyan jellemzők térképének létrehozására, amely összefoglalja az észlelt jellemzők jelenlétét a bemenetben.
- A szűrők kézi készítésűek lehetnek, például vonaldetektorok, de a konvolúciós ideghálózatok innovációja az, hogy a szűrőket megtanulják az edzés során egy konkrét előrejelzési probléma összefüggésében.
- Hogyan kell kiszámítani a konvolúciós ideghálózat egy- és kétdimenziós konvolúciós rétegeinek térképe.
Van kérdése?
Tegye fel kérdéseit az alábbi megjegyzésekben, és megteszem legjobb válaszolni.
Mély tanulási modellek kidolgozása a Vision Today számára!
Saját Vision modellek fejlesztése percek alatt
… csak néhány sor Python kóddal
Fedezze fel, hogyan új e-könyvemben:
Mély tanulás a számítógépes látáshoz
Önálló tanulmányi útmutatásokat nyújt olyan témákban, mint:
osztályozás, tárgyfelismerés (yolo és rcnn), arcfelismerés (vggface és facenet) , az adatok előkészítése és még sok más …
Végül vigye mélyreható tanulást a látásprojektjeibe
Az akadémikusok kihagyása. Csak eredmények.
Nézze meg, mi van benne: