caffe
Basic Caffe Objects - Solver, Net, Layer en Blob
Zoeken…
Opmerkingen
Een caffe-gebruiker stuurt instructies om specifieke bewerkingen uit te voeren naar caffe-objecten. Deze objecten werken op elkaar in op basis van hun ontwerpspecificaties en voeren de bewerking (en) uit. Dit is een basisprincipe van OOP.
Hoewel er veel caffe-objecttypen (of C ++ -klassen) zijn, richten we ons voor een eerste basiskennis op 4 belangrijke caffe-objecten. Ons doel in dit stadium is eenvoudigweg de interactie tussen deze objecten op een zeer geabstraheerd niveau waar specifieke implementatie- en ontwerpdetails worden weggelaten te observeren, en in plaats daarvan wordt een vogelperspectief op de werking gericht.
De 4 basis caffe-objecten zijn:
- solver
- Netto
- Laag
- bobbel
Een zeer eenvoudige introductie en een overzicht in vogelvlucht van hun rol in de werking van cafeïne wordt op beknopte punten in de voorbeeldensectie gepresenteerd.
Na het lezen en het verkrijgen van een basisidee van hoe deze caffe-objecten op elkaar inwerken, kan elk objecttype in detail worden besproken in hun specifieke onderwerpen.
Hoe deze objecten op elkaar inwerken.
Een gebruiker wil caffe gebruiken voor CNN-training en -testen. De gebruiker beslist over het CNN-architectuurontwerp (bijv. - Aantal lagen, Aantal filters en hun details enz.). De gebruiker bepaalt ook de optimalisatietechniek voor training en leerparameters voor het geval training moet worden uitgevoerd. Als de bewerking bestaat uit het testen van gewone vanille, wordt door de gebruiker een voorgetraind model opgegeven. Met al deze informatie instantieert de gebruiker een Solver-object en geeft het Solver-object een instructie (die de bewerking (en) zoals training en testen bepaalt).
Oplosser : dit object kan worden gezien als een entiteit die toezicht houdt op de training en het testen van een CNN. Het is de daadwerkelijke aannemer die een CNN krijgt op processor en actief. Het is gespecialiseerd in het uitvoeren van de specifieke optimalisaties die ertoe leiden dat een CNN wordt opgeleid.
Netto : Netto kan worden gezien als een specialistisch object dat het werkelijke CNN vertegenwoordigt waarover bewerking (en) wordt uitgevoerd. Net krijgt van Solver de opdracht om daadwerkelijk geheugen voor het CNN toe te wijzen en te instantiëren. Net is ook verantwoordelijk voor het geven van instructies die daadwerkelijk leiden tot voorwaartse of achterwaartse verspreiding via het CNN.
Laag : het is een object dat een bepaalde laag van een CNN vertegenwoordigt. Een CNN bestaat dus uit lagen. Wat caffe betreft, instanteert Net object elk " Layer " -type gespecificeerd in de architectuurdefinitie en verbindt het ook verschillende lagen met elkaar. Een specifieke laag voert een specifieke set bewerking (en) uit (bijv. - Max-pooling, Min-pooling, 2D-convolutie enz.)
Blob : gegevensstromen via een CNN tijdens training en testen. Deze gegevens bevatten behalve gebruikersgegevens ook verschillende tussentijdse berekeningen die via CNN worden uitgevoerd. Deze gegevens zijn ingekapseld in een object met de naam Blob.