Inhoudsopgave[Zich verstoppen][Laten zien]
Een raamwerk voor deep learning bestaat uit een combinatie van interfaces, bibliotheken en tools om Machine Learning-modellen snel en nauwkeurig te definiëren en te trainen.
Omdat deep learning een grote hoeveelheid ongestructureerde, niet-tekstuele data gebruikt, heb je een raamwerk nodig dat de interactie tussen de “lagen” regelt en modelontwikkeling snel maakt door te leren van de inputdata en autonome beslissingen te nemen.
Als je in 2021 meer wilt weten over deep learning, overweeg dan om een van de onderstaande kaders te gebruiken. Vergeet niet om er een te kiezen die u zal helpen uw doelen en visie te bereiken.
1. TensorFlow
Als we het hebben over diep leren, TensorFlow is vaak het eerst genoemde kader. Dit framework is zeer populair en wordt niet alleen gebruikt door Google – het bedrijf dat verantwoordelijk is voor de oprichting ervan – maar ook door andere bedrijven zoals Dropbox, eBay, Airbnb, Nvidia en zoveel anderen.
TensorFlow kan worden gebruikt om API's op hoog en laag niveau te ontwikkelen, zodat u applicaties op bijna elk soort apparaat kunt uitvoeren. Hoewel Python de primaire taal is, kan de interface van Tensoflow worden geopend en beheerd met behulp van andere programmeertalen zoals C++, Java, Julia en JavaScript.
Omdat het open source is, stelt TensorFlow je in staat om verschillende integraties met andere API's te maken en snelle ondersteuning en updates van de community te krijgen. De afhankelijkheid van "statische grafieken" voor berekeningen stelt u in staat om onmiddellijke berekeningen te maken of bewerkingen op te slaan voor toegang op een ander moment. Deze redenen, samen met de mogelijkheid dat je de ontwikkeling van je neurale netwerk kunt 'bekijken' via TensorBoard, maken TensorFlow het populairste raamwerk voor deep learning.
Belangrijkste kenmerken
- Open-source
- Flexibiliteit
- Snel debuggen
2. PyTorch
PyTorch is een raamwerk ontwikkeld door Facebook om de werking van zijn diensten te ondersteunen. Sinds het open source is geworden, wordt dit framework gebruikt door andere bedrijven dan Facebook, zoals Salesforce en Udacity.
Dit framework werkt met dynamisch bijgewerkte grafieken, zodat u wijzigingen kunt aanbrengen in de architectuur van uw dataset terwijl u deze verwerkt. Met PyTorch is het eenvoudiger om een neuraal netwerk te ontwikkelen en te trainen, zelfs zonder enige ervaring met deep learning.
Omdat het open-source is en gebaseerd is op Python, kun je eenvoudige en snelle integraties met PyTorch maken. Het is ook een eenvoudig raamwerk om te leren, te gebruiken en te debuggen. Als je vragen hebt, kun je rekenen op de geweldige ondersteuning en updates van beide communities - Python-community en de PyTorch-community.
Belangrijkste kenmerken
- Makkelijk te leren
- Ondersteunt GPU en CPU
- Uitgebreide set API's om bibliotheken uit te breiden
3. Apache MX Net
Vanwege de hoge schaalbaarheid, hoge prestaties, snelle probleemoplossing en geavanceerde GPU-ondersteuning, is dit raamwerk door Apache gemaakt voor gebruik in grote industriële projecten.
MXNet bevat de Gluon-interface waarmee ontwikkelaars van alle vaardigheidsniveaus: aan de slag met deep learning in de cloud, op edge-apparaten en op mobiele apps. In slechts een paar regels Gluon-code kunt u lineaire regressie, convolutionele netwerken en terugkerende LSTM's bouwen voor object detectie, spraakherkenning, aanbeveling en personalisatie.
MXNet kan op verschillende apparaten worden gebruikt en wordt ondersteund door meerdere programmeertalen zoals Java, R, JavaScript, Scala en Go. Hoewel het aantal gebruikers en leden in de community laag is, heeft MXNet goed geschreven documentatie en een groot groeipotentieel, vooral nu Amazon dit framework heeft geselecteerd als de primaire tool voor Machine Learning op AWS.
Belangrijkste kenmerken
- 8 taalbindingen
- Gedistribueerde training, ondersteuning van multi-CPU- en multi-GPU-systemen
- Hybride front-end, waardoor kan worden geschakeld tussen imperatieve en symbolische modi
4. Microsoft Cognitieve Toolkit
Als je overweegt om applicaties of services te ontwikkelen die draaien op Azure (Microsoft-cloudservices), dan is de Microsoft Cognitive Toolkit het framework om te selecteren voor je deep learning-projecten. Dit is open-source en wordt ondersteund door programmeertalen zoals onder andere Python, C++, C#, Java. Dit raamwerk is ontworpen om "te denken als het menselijk brein", zodat het grote hoeveelheden ongestructureerde gegevens kan verwerken, terwijl het snelle training en een intuïtieve architectuur biedt.
Door voor dit framework te kiezen - hetzelfde achter Skype, Xbox en Cortana - haal je goede prestaties uit je applicaties, schaalbaarheid en eenvoudige integratie met Azure. In vergelijking met TensorFlow of PyTorch is het aantal leden in de community en ondersteuning echter verminderd.
De volgende video biedt een volledige introductie en toepassingsvoorbeelden:
Belangrijkste kenmerken
- Duidelijke documentatie
- Ondersteuning van het Microsoft-team
- Directe grafiekvisualisatie
5. Keras
Net als PyTorch is Keras een op Python gebaseerde bibliotheek voor gegevensintensieve projecten. De keras-API werkt op een hoog niveau en maakt integraties met API's op laag niveau mogelijk, zoals TensorFlow, Theano en Microsoft Cognitive Toolkit.
Enkele voordelen van het gebruik van keras zijn de eenvoud om te leren - het is het aanbevolen raamwerk voor beginners in diep leren; de snelheid van inzet; met grote steun van de python-gemeenschap en van gemeenschappen van de andere kaders waarmee het is geïntegreerd.
Keras bevat verschillende implementaties van de bouwstenen van neurale netwerken zoals lagen, objectieve functies, activeringsfuncties en wiskundige optimizers. De code wordt gehost op GitHub en er zijn forums en een Slack-ondersteuningskanaal. Naast ondersteuning voor standaard neurale netwerken, biedt Keras ondersteuning voor convolutionele neurale netwerken en terugkerende neurale netwerken.
Keras staat toe diepgaande leermodellen worden gegenereerd op smartphones op zowel iOS als Android, op een Java Virtual Machine of op internet. Het maakt ook het gebruik van gedistribueerde training van deep learning-modellen op clusters van Graphics Processing Units (GPU) en Tensor Processing Units (TPU) mogelijk.
Belangrijkste kenmerken
- Voorgetrainde modellen
- Ondersteuning voor meerdere backends
- Gebruiksvriendelijke en grote community-ondersteuning
6. Apple Kern ML
Core ML is door Apple ontwikkeld ter ondersteuning van zijn ecosysteem: IOS, Mac OS en iPad OS. De API werkt op een laag niveau, waarbij goed gebruik wordt gemaakt van de bronnen van CPU en GPU, waardoor modellen en applicaties die zijn gemaakt, kunnen blijven werken, zelfs zonder internetverbinding, wat de "geheugenvoetafdruk" en het stroomverbruik van het apparaat vermindert.
De manier waarop Core ML dit bereikt, is niet bepaald door nog een machine learning-bibliotheek te maken die is geoptimaliseerd voor gebruik op iPhones/ipads. In plaats daarvan lijkt Core ML meer op een compiler die modelspecificaties en getrainde parameters gebruikt die zijn uitgedrukt met andere machine learning-software en deze omzet in een bestand dat een bron wordt voor een iOS-app. Deze conversie naar een Core ML-model vindt plaats tijdens app-ontwikkeling, niet in realtime terwijl de app wordt gebruikt, en wordt mogelijk gemaakt door de coremltools python-bibliotheek.
Core ML levert snelle prestaties met eenvoudige integratie van machine learning modellen in toepassingen. Het ondersteunt deep learning met meer dan 30 soorten lagen, evenals beslissingsbomen, ondersteunende vectormachines en lineaire regressiemethoden, allemaal gebouwd op low-level technologieën zoals Metal en Accelerate.
Belangrijkste kenmerken
- Eenvoudig te integreren in apps
- Optimaal gebruik van lokale bronnen, geen internettoegang nodig
- Privacy: de gegevens hoeven het apparaat niet te verlaten
7. ONNX
Het laatste framework op onze lijst is ONNX. Dit framework is voortgekomen uit een samenwerking tussen Microsoft en Facebook, met als doel het proces van het overbrengen en bouwen van modellen tussen verschillende frameworks, tools, runtimes en compilers te vereenvoudigen.
ONNX definieert een algemeen bestandstype dat op meerdere platforms kan draaien, terwijl het gebruik maakt van de voordelen van low-level API's zoals die van Microsoft Cognitive Toolkit, MXNet, Caffe en (met behulp van converters) Tensorflow en Core ML. Het principe achter ONNX is om een model op een stapel te trainen en het te implementeren met behulp van andere gevolgtrekkingen en voorspellingen.
De LF AI Foundation, een suborganisatie van de Linux Foundation, is een organisatie die zich inzet voor het bouwen van een ecosysteem ter ondersteuning van open source innovatie in kunstmatige intelligentie (AI), machine learning (ML) en deep learning (DL). Het voegde ONNX toe als een project op graduate niveau op 14 november 2019. Deze stap van ONNX onder de paraplu van de LF AI Foundation werd gezien als een belangrijke mijlpaal in het vestigen van ONNX als een leveranciersneutrale open-formaat standaard.
De ONNX Model Zoo is een verzameling vooraf getrainde modellen in Deep Learning die beschikbaar zijn in ONNX-formaat. Voor elk model zijn er Jupyter notitieboekjes voor modeltraining en het uitvoeren van gevolgtrekkingen met het getrainde model. De notebooks zijn geschreven in Python en bevatten links naar de trainingsgegevensset en verwijzingen naar het originele wetenschappelijke document waarin de modelarchitectuur wordt beschreven.
Belangrijkste kenmerken
- Kaderinteroperabiliteit
- Hardware-optimalisatie
Conclusie
Dit is een samenvatting van de beste kaders voor: diepgaand leren. Hiervoor bestaan verschillende frameworks, gratis of betaald. Om de beste voor uw project te selecteren, moet u eerst weten voor welk platform u uw applicatie gaat ontwikkelen.
Algemene frameworks zoals TensorFlow en Keras zijn de beste opties om te starten. Maar als u OS- of apparaatspecifieke voordelen wilt gebruiken, dan zijn Core ML en Microsoft Cognitive Toolkit wellicht de beste opties.
Er zijn andere frameworks gericht op Android-apparaten, andere machines en specifieke doeleinden die niet in deze lijst zijn genoemd. Als de laatste groep je interesseert, raden we je aan hun informatie te zoeken op Google of andere machine learning-sites.
Laat een reactie achter