Hogyan működnek a konvolúciós rétegek az ideghálózatok mély tanulásában?

Tweet Share Share

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:

  1. konvolúció a konvolúciós neurális hálózatokban
  2. konvolúció a számítógépes látásban
  3. a megtanult szűrők ereje
  4. 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:

Tweet Share Share

Leave a Reply

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük