More

    Python fejlesztő: mi a teendő, ha megtanultad az alapokat

    Választás a Keras és a PyTorch között, és a megoldás magyarázata 2023. január 18., 12 perc

    A legtöbb kezdő fejlesztő ismeri a Python és a gépi tanulást hasonló forgatókönyv szerint. Az alapfogalmak elsajátítása után általában új könyvtárakkal indulnak:

    • Numpy – matematikai számításokhoz és mátrixokkal való munkához;
    • Pandák – táblázatos adatokkal való munkavégzéshez (előfeldolgozás, hiányosságokkal és emissziókkal végzett műveletek, szűrés, egyesítés és válogatás);
    • Matplotlib – vizualizációhoz;
    • Scikit-learn – az első lineáris és logisztikai regressziók, döntési fák felépítéséhez, az adatok felosztása edzésre és tesztkészletekre.

    A fejlesztőnek ezután felmerül egy kérdése: Mit kell még megtanulnia ahhoz, hogy fejlessze képességeit, javítsa projektjeik minőségét és értékesebb szakemberré váljon? Nem rossz lehetőségek az egyre népszerűbb Keras és PyTorch könyvtárak. Kitaláljuk, mennyire keresettek és mire való.

    Röviden a főről

    A Keras egy nyílt forráskódú könyvtár, amelyet Python nyelven írtak. A Google Corporation támogatja. A Keras fő célja a neurális hálózatokkal való együttműködés. A magas szintű könyvtárakhoz tartozik, így egyszerű parancsok segítségével neurális hálózatokat hozhat létre. Ebben az esetben a felhasználó kiválasztja, hogy melyik háttérprogramon végezzen számításokat: Deeplearning4j, MXNet, Microsoft Cognitive Toolkit (CNTK), Theano vagy TensorFlow.

    A könyvtár készen áll a jól ismert neurális hálózati architektúrák megvalósítására: VGG16, VGG19, Xception, NASNet, MobileNet, MobileNetV2, InceptionV3, InceptionResNetV2. Ezenkívül a neurális hálózati modulok nagy része Kerasban van megvalósítva:

    • optimalizálók;
    • rétegek;
    • réteg aktiválási funkciók;
    • költségfunkciók;
    • inicializálási sémák és szabályozási modellek.

    A PyTorch egy BSD licencelt keretrendszer. A Torch megoldás tetejére épült, kifejezetten a Python nyelv számára. A Facebook vállalat támogatja. A PyTorch a gépi tanulási feladatok (beleértve a mélytanulást is), az ideghálózatok és a természetes nyelv feldolgozásának sokféle megoldására használható. Ezenkívül a keretrendszer lehetővé teszi saját rétegek létrehozását, a rétegaktiválási függvények és az összes többi neurális hálózati modul használatát Python osztályok és függvények használatával.

    Keras: előnyök

    Keras viszonylag könnyen megtanulható a kezdők számára. Tehát csak néhány kódsor elegendő egy neurális hálózat létrehozásához.

    OLVASS TOVÁBB:  Hogyan keresünk tanárokat a programozó egységhez

    Lehetséges az integráció olyan mobil platformokkal, mint a TensorFlow for Mobile és a TensorFlow Lite.

    A Kerasba épített megoldások JSON és H5 fájlok segítségével más platformokra is exportálhatók.

    A Keras lehetővé teszi, hogy különféle háttérprogramokkal dolgozzon – a projekt igényeitől függően választhat. Ezenkívül a fejlesztő különböző háttérképeken végezhet képzést és tesztelést a modell minőségének további érvényesítése érdekében.

    Keras: hátrányok

    • A háttéroldalon előforduló hibakeresési hibák. Keras sok absztrakciót hoz létre azokon az objektumokon felül, amelyek a háttérrendszerben vannak. Ezért a hibához vezető konkrét vonal megkeresése időbe telhet.
    • Nehézség a megoldások testreszabásában a modularitás és a magas szint miatt.

    PyTorch: előnyök

    • Rugalmasság a megoldások kidolgozásában a saját funkciók megírásának és a matematikai készülékekhez való hozzáférésnek köszönhetően.
    • A PyTorch támogatja az interaktív hibakeresést. Nem nehéz megtalálni a hiba okát – közvetlenül hivatkozni kell a könyvtár forráskódjára.
    • A PyTorch kiváló dokumentációval rendelkezik, részletesen leírva az egyes funkciókat és példákat.
    • A fejlesztők széles köre a fórumokon (például a StackOverflow-n) népszerű kérdések elemzéseit és a munka eredményeit a GitHubon teszi közzé.
    • A NumPy-t használó projektek egyszerű adaptálása. Csak hozzá kell adnia néhány sor kódot.
    • Az adatok párhuzamosságának támogatása.
    OLVASS TOVÁBB:  A gépi tanulás a GeekBrains frissített szakmája

    PyTorch: hátrányok

    • Az eredmények ellenőrzésére és megjelenítésére szolgáló „natív” eszközök hiánya. Használnia kell harmadik féltől származó könyvtárakat.
    • Nehezebb platformokon átívelő megoldásokat kidolgozni, további könyvtárak integrálása szükséges.

    Példák a Kerassal és a PyTorch-szal való együttműködésre

    1. példa Hogyan lehet egyszerű ideghálózatot létrehozni Kerasban. Ehhez elegendő néhány sornyi kód, amely után inicializálnia kell a modellt, rétegeket kell hozzáadnia és meg kell határoznia az aktiválási függvényeket. Ez minden.

     model = szekvenciális () model.add (sűrű (12, input_dim = 8, aktiválás = 'relu')) model.add (sűrű (8, activation = 'relu')) model.add (sűrű (1, activation = ') szigmoid '))

    2. példa Hozzunk létre egy hasonló hálózatot a PyTorch használatával. Ez valamivel több időt és ügyességet igényel, mint az előző eset. Meg kell értenie, hogyan működnek az osztályok a Pythonban, ismernie kell az OOP alapjait, stb. De a PyTorch több lehetőséget kínál a rugalmas hálózati konfigurációhoz.

     osztály Net (nn.Module): def __init __ (self): super (Net, self) .__ init __ () self.conv1 = nn.Conv2d (3, 6, 5) self.pool = nn.MaxPool2d (2, 2) self.conv2 = nn. Conv2d (6, 16, 5) self.fc1 = nn. Lineáris (16 * 5 * 5, 120) self.fc2 = nn. Lineáris (120, 84) self.fc3 = nn. Lineáris ( 84, 10) def előre (én, x): x = self.pool (F.relu (self.conv1 (x))) x = self.pool (F.relu (self.conv2 (x))) x = x.view (-1, 16 * 5 * 5) x = F.relu (self.fc1 (x)) x = F.relu (self.fc2 (x)) x = self.fc3 (x) visszatérés x nettó = Nettó ()

    3. példa Összehasonlítva a Keras és a PyTorch optimalizálóival való munkát

    OLVASS TOVÁBB:  Új intenzitás az Autotestek létrehozásában a React-ben

    Először csatlakoztassuk az Adam optimalizálót a bináris kereszt-entrópiaveszteség függvényhez és a pontossági mutatóhoz a Keras segítségével:

     model.compile (veszteség = 'binary_crossentropy', optimalizáló = 'adam', metrika = ['pontosság'])

    Most csatlakoztassuk az SGD optimalizálót a PyTorch-hoz:

     kritérium = nn.CrossEntropyLoss () optimalizáló = optim.SGD (net.parameters (), lr = 0.001, momentum = 0.9)

    Ebben az esetben nincs különösebb különbség az optimalizálóval végzett munka bonyolultságában Keras és PyTorch között.

    Tehát a PyTorchot vagy a Keras-t kell választania?

    Meg kell értenie, hogy a PyTorch és a Keras is remek eszköz, amely jól végzi munkáját. De a fejlesztőnek, kezdve a projektjét, emlékeznie kell az erőfeszítések és azok hatása közötti egyensúlyra.

    Ha prototípusról vagy egyszerű megoldásról beszélünk, jobb megállni Kerasnál . Ha olyan testreszabott megoldásra van szüksége, amely eltérést igényel a probléma megoldásához használt algoritmusoktól, válassza a PyTorch lehetőséget .

    Szeretne szubjektív tanácsokat a cikk írójától? Ha most választja, hogy melyik könyvtárat tanulmányozza, nézze meg a PyTorch-ot. A valós adatokkal rendelkező üzleti feladatokat általában nehéz módszerekkel végrehajtani. Rugalmasságának köszönhetően a PyTorch elvégzi a legtöbb feladatot, amelyeket most és a jövőben meg kell oldania.

    Friss cikkek

    A Windows védelme: szisztematikus megközelítés

    A védelmi intézkedések strukturálása és konfigurálása különböző szakaszokban, 20215. február 26., https://d2xzmw6cctk25h.cloudfront.net/post/2558/og_image/99b52ce494fff4e99d818403950ffa3a.png A legutóbbi cikkben elemeztünk egy gyanús fájlt, sőt azonosítottunk néhány mintát,...

    A hét legfontosabb eseményei: Remélem, hogy a Clubhouse for Android

    Az éterben rendszeres Likeny-emésztés folyik a legújabb és okosabb anyagokkal. Ebben az epizódban megismerhetjük a Clubhouse régóta várt Android-fejlesztőjét, és boldog 12. születésnapot kívánunk...

    A weboldalon található szövegek olvasása [Kutatási áttekintés]

    Igaz, hogy most senki nem olvas szövegeket a weboldalakon? Frissítettük a kutatás áttekintését és kihoztunk néhány tippet: mit tegyünk annak érdekében, hogy az...

    Hogyan lehet megduplázni egy híroldal forgalmát. Ügy

    A híroldalak promóciójának megvan a maga sajátossága. A keresési látogatások nem jelentik a legnagyobb részét a híroldalakra irányuló forgalomnak. A legtöbb áttétel más forrásból...

    “A Scratch után rájöttem, hogy nem akarok abbahagyni a programozást”

    Polina Sedakova - oktatási projektjeiről és az utolsó játékról, a Pacman feldolgozásáról, 20213. február 25-től133https: //d2xzmw6cctk25h.cloudfront.net/post/2557/og_image/481635c3b9df7bf894c129f7828350a3.png Polina Sedakova 10 éves. Két hónap alatt...

    Kapcsolódó történetek

    HOZZÁSZÓLOK A CIKKHEZ

    Kérjük, írja be véleményét!
    írja be ide nevét

    Maradjon op - Ge a napi híreket a postaládájában