Innehållsförteckning[Dölj][Visa]
Ett ramverk för djupinlärning består av en kombination av gränssnitt, bibliotek och verktyg för att snabbt och exakt definiera och träna Machine Learning-modeller.
Eftersom djupinlärning använder en stor mängd ostrukturerad, icke-textuell data behöver du ett ramverk som styr interaktionen mellan "skikten" och gör modellutvecklingen snabb genom att lära av indata och fatta autonoma beslut.
Om du är intresserad av att lära dig om djupinlärning under 2021, överväg att använda ett av ramarna som anges nedan. Kom ihåg att välja en som hjälper dig att uppnå dina mål och vision.
1. TensorFlow
När man talar om djupinlärning, TensorFlow är ofta det första ramverket som nämns. Det här ramverket är mycket populärt och används inte bara av Google – företaget som ansvarar för dess skapande – utan också av andra företag som Dropbox, eBay, Airbnb, Nvidia och så många andra.
TensorFlow kan användas för att utveckla API:er på hög och låg nivå, vilket gör att du kan köra applikationer på nästan alla typer av enheter. Även om Python är dess primära språk, kan Tensoflows gränssnitt nås och kontrolleras med andra programmeringsspråk som C++, Java, Julia och JavaScript.
Eftersom TensorFlow är öppen källkod låter dig göra flera integrationer med andra API:er och få snabb support och uppdateringar från communityn. Dess beroende av "statiska grafer" för beräkning gör att du kan göra omedelbara beräkningar eller spara operationer för åtkomst vid ett annat tillfälle. Dessa skäl, läggs till möjligheten att du kan "se" utvecklingen av ditt neurala nätverk genom TensorBoard, gör TensorFlow till det mest populära ramverket för djupinlärning.
Funktioner
- Öppen källkod
- Flexibilitet
- Snabb felsökning
2. PyTorch
PyTorch är ett ramverk utvecklat av Facebook för att stödja driften av dess tjänster. Sedan det blev öppen källkod har detta ramverk använts av andra företag än Facebook, som Salesforce och Udacity.
Detta ramverk använder dynamiskt uppdaterade grafer, så att du kan göra ändringar i arkitekturen för din datauppsättning när du bearbetar den. Med PyTorch är det enklare att utveckla och träna ett neuralt nätverk, även utan erfarenhet av djupinlärning.
Genom att vara öppen källkod och baserad på Python kan du göra enkla och snabba integrationer till PyTorch. Det är också ett enkelt ramverk att lära sig, använda och felsöka. Om du har frågor kan du räkna med det fantastiska stödet och uppdateringarna från båda gemenskaperna – Python-gemenskapen och PyTorch-gemenskapen.
Funktioner
- Lätt att lära
- Stöder GPU och CPU
- Rik uppsättning API:er för att utöka biblioteken
3. Apache MX Net
På grund av dess höga skalbarhet, höga prestanda, snabba felsökning och avancerade GPU-stöd skapades detta ramverk av Apache för användning i stora industriella projekt.
MXNet inkluderar Gluon-gränssnittet som gör det möjligt för utvecklare på alla nivåer komma igång med djupinlärning på molnet, på edge-enheter och på mobilappar. På bara några rader Gluon-kod kan du bygga linjär regression, faltningsnätverk och återkommande LSTM för objektdetektering, taligenkänning, rekommendation och anpassning.
MXNet kan användas på olika enheter och stöds av flera programmeringsspråk som Java, R, JavaScript, Scala och Go. Även om antalet användare och medlemmar i dess community är lågt, har MXNet välskriven dokumentation och stor potential för tillväxt, särskilt nu när Amazon har valt detta ramverk som det primära verktyget för maskininlärning på AWS.
Funktioner
- 8 språkbindningar
- Distribuerad utbildning, stödjer multi-CPU och multi-GPU system
- Hybrid front-end, gör det möjligt att växla mellan imperativt och symboliskt läge
4. Microsoft Cognitive Toolkit
Om du funderar på att utveckla applikationer eller tjänster som körs på Azure (Microsofts molntjänster) är Microsoft Cognitive Toolkit det ramverk du ska välja för dina djupinlärningsprojekt. Detta är öppen källkod och stöds av programmeringsspråk som Python, C++, C#, Java, bland andra. Detta ramverk är utformat för att "tänka som den mänskliga hjärnan", så det kan bearbeta stora mängder ostrukturerad data, samtidigt som det erbjuder snabb träning och en intuitiv arkitektur.
Genom att välja detta ramverk – samma som bakom Skype, Xbox och Cortana – får du bra prestanda från dina applikationer, skalbarhet och enkel integration med Azure. Men jämfört med TensorFlow eller PyTorch minskar antalet medlemmar i dess community och support.
Följande video ger en komplett introduktion och applikationsexempel:
Funktioner
- Tydlig dokumentation
- Support från Microsoft-teamet
- Direkt grafvisualisering
5. Keras
Liksom PyTorch är Keras ett Python-baserat bibliotek för dataintensiva projekt. Keras API fungerar på en hög nivå och tillåter integrationer med lågnivå-API:er som TensorFlow, Theano och Microsoft Cognitive Toolkit.
Några fördelar med att använda keras är dess enkelhet att lära sig – det är det rekommenderade ramverket för nybörjare inom djupinlärning; dess utbyggnadshastighet; med stort stöd från python-gemenskapen och från gemenskaper i de andra ramverk som den är integrerad med.
Keras innehåller olika implementeringar av byggstenar i neurala nätverk såsom lager, objektivfunktioner, aktiveringsfunktioner och matematiska optimerare. Dess kod är värd på GitHub och det finns forum och en Slack-supportkanal. Förutom stöd för standard neurala nätverk, Keras erbjuder stöd för Convolutional Neural Networks och Recurrent Neural Networks.
Keras tillåter modeller för djupinlärning att genereras på smartphones på både iOS och Android, på en Java Virtual Machine eller på webben. Det tillåter också användning av distribuerad utbildning av modeller för djupinlärning på kluster av grafiska processenheter (GPU) och Tensor Processing Units (TPU).
Funktioner
- Förutbildade modeller
- Stöd för flera backend
- Användarvänligt och stort samhällsstöd
6. Apple Core ML
Core ML utvecklades av Apple för att stödja dess ekosystem – IOS, Mac OS och iPad OS. Dess API fungerar på en låg nivå och utnyttjar CPU:s och GPU:s resurser på ett bra sätt, vilket gör att modeller och applikationer som skapats kan fortsätta köras även utan internetanslutning, vilket minskar enhetens "minnesavtryck" och strömförbrukning.
Sättet Core ML åstadkommer detta är inte precis genom att göra ännu ett maskininlärningsbibliotek som är optimerat för att köras på iphones/ipads. Istället är Core ML mer som en kompilator som tar modellspecifikationer och tränade parametrar uttryckta med annan maskininlärningsprogramvara och konverterar den till en fil som blir en resurs för en iOS-app. Denna konvertering till en Core ML-modell sker under apputveckling, inte i realtid när appen används, och underlättas av coremltools pythonbibliotek.
Core ML ger snabb prestanda med enkel integrering av maskininlärning modeller till applikationer. Den stöder djupinlärning med över 30 typer av lager samt beslutsträd, stödvektormaskiner och linjära regressionsmetoder, allt byggt på lågnivåteknologier som Metal och Accelerate.
Funktioner
- Lätt att integrera i appar
- Optimal användning av lokala resurser, kräver inte tillgång till internet
- Sekretess: data behöver inte lämna enheten
7. ONNX
Det sista ramverket på vår lista är ONNX. Detta ramverk uppstod ur ett samarbete mellan Microsoft och Facebook, med målet att förenkla processen att överföra och bygga modeller mellan olika ramverk, verktyg, körtider och kompilatorer.
ONNX definierar en vanlig filtyp som kan köras på flera plattformar, samtidigt som man utnyttjar fördelarna med lågnivå-API:er som de från Microsoft Cognitive Toolkit, MXNet, Caffe och (med hjälp av omvandlare) Tensorflow och Core ML. Principen bakom ONNX är att träna en modell på en stack och implementera den med hjälp av andra slutsatser och förutsägelser.
LF AI Foundation, en underorganisation till Linux Foundation, är en organisation dedikerad till att bygga ett ekosystem för att stödja öppen källkod innovation inom artificiell intelligens (AI), maskininlärning (ML) och djupinlärning (DL). Det lade till ONNX som ett projekt på forskarnivå den 14 november 2019. Denna flytt av ONNX under paraplyet av LF AI Foundation sågs som en viktig milstolpe för att etablera ONNX som en leverantörsneutral standard med öppet format.
ONNX Model Zoo är en samling förtränade modeller i Deep Learning tillgängliga i ONNX-format. För varje modell finns det Jupyter anteckningsböcker för modellträning och utförande av slutledning med den tränade modellen. Anteckningsböckerna är skrivna i Python och innehåller länkar till utbildningsdataset och referenser till det ursprungliga vetenskapliga dokumentet som beskriver modellarkitekturen.
Funktioner
- Raminteroperabilitet
- Hårdvaruoptimering
Slutsats
Detta är en sammanfattning av de bästa ramarna för djupt lärande. Det finns flera ramverk för detta ändamål, gratis eller betalda. För att välja det bästa för ditt projekt, vet först för vilken plattform du kommer att utveckla din applikation.
Allmänna ramverk som TensorFlow och Keras är de bästa alternativen att starta. Men om du behöver använda OS eller enhetsspecifika fördelar kan Core ML och Microsoft Cognitive Toolkit vara de bästa alternativen.
Det finns andra ramverk riktade mot Android-enheter, andra maskiner och specifika ändamål som inte har nämnts i den här listan. Om den senare gruppen intresserar dig, föreslår vi att du gör en sökning efter deras information på Google eller andra webbplatser för maskininlärning.
Kommentera uppropet