Hjælp udviklingen af ​​webstedet med at dele artiklen med venner!

Introduktion til Caffe Deep Learning

Caffe, en populær og open source-deep learning-ramme blev udviklet af Berkley AI Research. Det er meget udtrykkeligt, modulopbygget og hurtigt. Det har rig open source-dokumentation tilgængelig på Github. Det bruges i vid udstrækning i akademiske forskningsprojekter, i startups proof of concepts, Computer Vision, Natural Language Processing osv.

Caffe Deep Learning Framework

Det står for Convolutional Architecture for Fast Feature Embedding og er skrevet i BSD-licenseret C++-bibliotek med Python- og MATLAB-bindinger.Det bruges til at træne og udrulle generel brug af foldningsneurale netværk effektivt på råvarearkitekturer. Arkitekturen af ovenstående rammeværk er groft opdelt i følgende:

1. Datalager

Den bruger N-dimensionelle array-data på en C-sammenhængende måde kaldet blobs til at gemme og kommunikere data. Blobben kan opfattes som et abstraktionslag mellem CPU'en og GPU'en. Dataene fra CPU'en indlæses i klatten, som derefter sendes til GPU'en til beregning. Under hætten bruger klatten en SyncedMem-klasse til at synkronisere værdierne mellem CPU'en og GPU'en. Blobben flyttes derefter til det efterfølgende lag uden at tage højde for de lavere implementeringsdetaljer, mens et højt ydeevneniveau opretholdes. For effektiv hukommelsesbrug bruges en doven efterspørgselsallokeringsteknik til at allokere hukommelse efter behov for værten og enheden. Til data i stor skala bruges LevelDB-databaser.Deep Learning-modeller gemmes i det sekundære lager som Google Protocol Buffere, der giver effektiv serialisering, menneskelæsbart tekstformat osv.

2. Lag

Klapperne sendes som input til den, og der genereres tilsvarende output. Det følger et mange-til-mange forhold. Det har følgende nøgleansvar som en del af modeldriften:

  • Opsætning: Det initialiserer laget og de underliggende forbindelser for første gang under modelinitieringen.
  • Forward Pass: Input sendes, og tilsvarende genereres output.
  • Backward Pass: Beregning af gradienter med hensyn til output, modelhyperparametre og input, som derefter sendes til de efterfølgende lag ved at bruge en teknik kaldet back-propagation.

Det giver forskellige lagopsætninger som Convolution, Pooling, ikke-lineære aktiveringer som rettede, lineære enheder (ReLU) med udbredte optimeringstab som Log Loss, R-squared, SoftMax osv.Lagene kan udvides til en ny brugerdefineret implementering af brugerlag ved hjælp af den kompositoriske konstruktion af netværk.

3. Netværk og underliggende kørselsmodel

Den bruger en datastruktur kaldet en rettet acyklisk graf til lagring af operationer udført af de underliggende lag, hvilket sikrer korrektheden af de fremadrettede og bagudgående gennemløb. Et typisk Caffe-modelnetværk starter med et datalag, der indlæser data fra en disk og slutter med et tabslag baseret på applikationskravene. Det kan køres på en CPU/GPU, og skiftet mellem dem er problemfrit og modeluafhængigt.

4. Træning af et netværk

En typisk Caffe-model trænes af en hurtig og standard stokastisk gradient-nedstigningsalgoritme. Data kan behandles til mini-batches, som passerer i netværket sekventielt. De vigtige parametre relateret til træningen, såsom tidsplaner for læringshastighedsfald, momentum og kontrolpunkter for stop og genoptagelse er godt implementeret med grundig dokumentation.Den understøtter også finjustering, en teknik, hvor en eksisterende model kan bruges til at understøtte ny arkitektur eller data. De tidligere modelvægte opdateres til den nye applikation, og nye vægte tildeles, hvor det er nødvendigt. Denne teknik er meget udbredt i mange applikationer til dyb læring i den virkelige verden.

Fordele ved Caffe Deep Learning Framework

Det giver et komplet sæt pakker til tog, test, finjustering og implementering af model. Det giver mange eksempler på ovenstående opgaver. Tidligere blev den brugt til synsopgaver, men nu er den blevet brugt til andre deep learning-applikationer som talegenkendelse, neurale netværk, robotteknologi af dens brugere. Den kan køres på skybaserede platforme med problemfri platformsskift.

  1. Modularitet: Udvidelse til nye data, lag og tabsoptimeringsfunktioner er mulige. Den har referenceeksempler, der har implementeret lag og tabsfunktioner.
  2. Speed: Den kan bruges til at behandle 60M billeder om dagen ved hjælp af NVIDIA CUDA K40 GPU. Det er en af de hurtigste convnet-implementeringer på markedet.
  3. Layering Architecture and Implementation: Definitionerne af modellen er skrevet ved hjælp af Protocol Buffer Language i form af konfigurationsfiler. Netværksarkitektur bruger den rettede acykliske graftilgang. Når modellen instansieres, reserverer den nøjagtig hukommelse i henhold til modelkravet. Skift fra et CPU-baseret miljø til et GPU-miljø kræver et enkelt funktionskald.
  4. Testdækning: Hvert modul i det er testet, og dets open source-projekt tillader ikke nogen modul-commit uden de tilsvarende test, hvilket tillader hurtige forbedringer og kodebase-refaktorering. Dette øger således vedligeholdelsesvenligheden af den, relativt fri for fejl/defekter.
  5. Python og MATLAB Support i lagdeling: Giver en grænseflade og brugervenlighed med den eksisterende forskningsramme, der bruges af de videnskabelige institutioner.Begge sprog kan bruges til netværksopbygning og inputklassificering. Python i Layering tillader også brugen af solvermodulet til udvikling af nye træningsteknikker og nem brug.
  6. Tidligere trænede modeller brugt som reference: Det giver referencemodeller til forskning og videnskabelige projekter som de skelsættende ImageNet-trænede modeller osv. Det giver således en fælles softwarekomponent, der kan udvidet for hurtige fremskridt i udviklingen af modelarkitekturer til applikationer i den virkelige verden.

Det er forskelligt fra de andre moderne CNN-rammer i følgende:

  • Implementeringen er for det meste C++-baseret, så den kan let integreres i de eksisterende C++-systemer og fælles grænseflader i branchen. CPU-tilstanden fjerner også barrieren for behovet for en specialiseret hardwareplatform til modelimplementering og -eksperimenter, når først modellen er trænet.
  • Referencemodellerne er tilgængelige fra hylden til hurtig eksperimentering med topmoderne resultater. Det reducerer således omkostningerne til genindlæring.

Konklusion

Caffe Deep Learning Framework udvikler sig løbende, da det er open source og veldokumenteret. Dets Github-depot er blevet forgrenet af mange udviklere. Der er således mange væsentlige ændringer blevet bidraget tilbage til det. For nylig er Caffe 2 blevet udviklet, som er integreret med PyTorch deep learning GitHub repository.

Hjælp udviklingen af ​​webstedet med at dele artiklen med venner!