Segítsen a webhely fejlesztésében, megosztva a cikket a barátokkal!

Bevezetés a Caffe Deep Learning-be

A Caffe, egy népszerű és nyílt forráskódú mély tanulási keretrendszert a Berkley AI Research fejlesztette ki. Nagyon jól kifejezhető, moduláris és gyors. Gazdag nyílt forráskódú dokumentációval rendelkezik a Githubon. Széles körben használják akadémiai kutatási projektekben, startup koncepciók bizonyítására, számítógépes látásmódra, természetes nyelvi feldolgozásra stb.

Caffe Deep Learning Framework

A Convolutional Architecture for Fast Feature Embedding rövidítése, és BSD-licenccel rendelkező C++ könyvtárban van írva Python és MATLAB kötésekkel.Általános célú konvolúciós neurális hálózatok betanítására és hatékony telepítésére használják áruarchitektúrákon. A fenti keretrendszer architektúrája nagyjából a következőkre oszlik:

1. Adattárolás

N-dimenziós tömbadatokat használ C-vel összefüggő módon, bloboknak nevezett módon az adatok tárolására és kommunikálására. A blob a CPU és a GPU közötti absztrakciós rétegnek tekinthető. A CPU-ból származó adatok betöltődnek a blobba, amelyet ezután a GPU-nak továbbítanak számítás céljából. A motorháztető alatt a blob egy SyncedMem osztályt használ a CPU és a GPU közötti értékek szinkronizálására. A blob ezután átkerül a következő rétegre anélkül, hogy figyelembe venné az alacsonyabb szintű megvalósítási részleteket, miközben a teljesítmény magas szinten marad. A hatékony memóriahasználat érdekében egy lusta keresletkiosztási technikát használnak a memória igény szerinti lefoglalására a gazdagép és az eszköz számára. A nagyméretű adatokhoz LevelDB adatbázisokat használnak.A Deep Learning modelleket a másodlagos tárhelyen tárolják Google Protocol Bufferekként, amelyek hatékony szerializálást, ember által olvasható szövegformátumot stb. biztosítanak.

2. Rétegek

A blobok bemenetként kerülnek átadásra, és ennek megfelelően létrejön a kimenet. Sok-sok kapcsolatból következik. A modellműveletek részeként a következő fő feladatai vannak:

  • Beállítás: A modell inicializálása során először inicializálja a réteget és az alapul szolgáló kapcsolatokat.
  • Forward Pass: A bemenetek átadásra kerülnek és a megfelelő kimenetek generálódnak.
  • Backward Pass: Gradiensek számítása a kimenethez, a modell hiperparamétereihez és a bemenetekhez képest, amelyeket azután a visszaterjesztésnek nevezett technikával továbbít a következő rétegekhez.

Különböző rétegbeállításokat biztosít, például konvolúciót, összevonást, nemlineáris aktiválásokat, mint például egyenirányított, lineáris egységek (ReLU), széles körben használt optimalizálási veszteségekkel, mint például a Log Loss, az R-négyzet, a SoftMax stb.A rétegek kiterjeszthetők egy új egyéni felhasználói réteg megvalósítására a hálózatok kompozíciós felépítésével.

3. Hálózatok és mögöttes futtatási modell

Egy irányított aciklikus gráfnak nevezett adatszerkezetet használ az alatta lévő rétegek által végrehajtott műveletek tárolására, így biztosítva az előre és visszafelé haladások helyességét. Egy tipikus Caffe modellhálózat egy adatréteggel kezdődik, amely adatokat tölt be a lemezről, és egy veszteségi réteggel végződik az alkalmazás követelményei alapján. CPU/GPU-n futtatható, és a közöttük lévő váltás zökkenőmentes és modellfüggetlen.

4. Hálózat betanítása

Egy tipikus Caffe-modellt egy gyors és szabványos sztochasztikus gradiens süllyedési algoritmus képezi. Az adatok mini kötegekké dolgozhatók fel, amelyek egymás után haladnak át a hálózaton. A tréninggel kapcsolatos fontos paraméterek, mint a tanulási sebesség lassulási ütemezése, lendülete és a leállításhoz és folytatáshoz szükséges ellenőrzőpontok alapos dokumentációval jól megvalósíthatók.Támogatja a finomhangolást is, egy olyan technikát, amelyben egy meglévő modell használható új architektúra vagy adatok támogatására. A korábbi modellsúlyok frissítésre kerülnek az új alkalmazáshoz, és szükség esetén új súlyok kerülnek hozzárendelésre. Ezt a technikát széles körben használják számos valós mély tanulási alkalmazásban.

A Caffe Deep Learning Framework előnyei

Teljes csomagkészletet biztosít a vonatozáshoz, teszteléshez, finomhangoláshoz és a modell telepítéséhez. Számos példát mutat be a fenti feladatokra. Korábban látási feladatokra használták, de mára más mély tanulási alkalmazásokhoz is alkalmazták, mint a beszédfelismerés, neurális hálózatok, robotika. Futtatható felhő alapú platformokon zökkenőmentes platformváltással.

  1. Modularitás: Lehetőség van új adatokra, rétegekre és veszteségoptimalizálási funkciókra kiterjeszteni. Referencia példákat tartalmaz, amelyekben rétegek és veszteségfüggvények vannak megvalósítva.
  2. Sebesség: Napi 60 millió kép feldolgozására használható az NVIDIA CUDA K40 GPU segítségével. Ez az egyik leggyorsabb convnet megvalósítás a piacon.
  3. Rétegezési architektúra és megvalósítás: A modell definíciói a Protocol Buffer Language használatával lettek megírva konfigurációs fájlok formájában. A hálózati architektúra az irányított aciklikus gráf megközelítést használja. A modell példányosításakor a modell követelményeinek megfelelően pontos memóriát foglal le. CPU alapú környezetről GPU környezetre váltáshoz egyetlen függvényhívás szükséges.
  4. Tesztlefedettség: Minden benne lévő modult tesztelnek, és a nyílt forráskódú projektje nem teszi lehetővé egyetlen modul véglegesítését sem a megfelelő tesztek nélkül, így lehetővé válik a gyors fejlesztések és a kódbázis átalakítása. Így ez növeli a karbantarthatóságát, viszonylag mentes a hibáktól/hibáktól.
  5. Python és MATLAB támogatás a rétegezésben: Interfészt és könnyű használhatóságot biztosít a tudományos intézmények által használt meglévő kutatási keretrendszerrel.Mindkét nyelv használható hálózatépítéshez és bemeneti osztályozáshoz. A Python in Layering a megoldó modul használatát is lehetővé teszi új képzési technikák fejlesztéséhez és egyszerű használathoz.
  6. Referenciaként használt modellek: Referenciamodelleket biztosít kutatási és tudományos projektekhez, mint például a mérföldkőnek számító ImageNet által kiképzett modellek stb. Így egy közös szoftverösszetevőt biztosít kiterjesztették a valós alkalmazásokhoz való modellarchitektúrák fejlesztésének gyors előrehaladását.

A következőben különbözik a többi kortárs CNN-keretrendszertől:

  • Az implementáció többnyire C++ alapú, így könnyen integrálható a meglévő C++ rendszerekbe és iparági közös interfészekbe. Ezenkívül a CPU mód megszünteti az akadályt, hogy speciális hardverplatformra van szükség a modell bevezetéséhez és a modell betanítása utáni kísérletekhez.
  • A referenciamodellek már készen állnak, hogy gyorsan kísérletezzenek a legkorszerűbb eredményekkel. Így csökkenti az újratanulás költségeit.

Következtetés

A Caffe Deep Learning Framework folyamatosan fejlődik, mivel nyílt forráskódú és jól dokumentált. Ez a Github adattárat sok fejlesztő elágazta. Így sok jelentős változás járult hozzá vissza. A közelmúltban fejlesztették ki a Caffe 2-t, amely integrálva van a PyTorch mély tanulási GitHub adattárral.

Segítsen a webhely fejlesztésében, megosztva a cikket a barátokkal!

Kategória: