caffe
Grundläggande Caffe-objekt - Solver, Net, Layer and Blob
Sök…
Anmärkningar
En caffe-användare skickar instruktioner för att utföra specifika operationer för caffe-objekt. Dessa objekt interagerar med varandra baserat på deras konstruktionsspecifikationer och utför operationerna. Detta är en grundläggande OOP-paradigm.
Det finns många caffe-objekttyper (eller C ++ -klasser), men för en början grundläggande förståelse fokuserar vi på fyra viktiga caffe-objekt. Vårt mål i detta skede är att helt enkelt observera växelverkan mellan dessa objekt på en mycket abstrakt nivå där specifika implementerings- och designdetaljer dras ut, och istället fokuseras en fågelperspektiv över operationen.
De fyra grundläggande caffe-objekten är:
- Solver
- Netto
- Lager
- Klick
En mycket grundläggande introduktion och en fågelperspektiv av deras roll i arbetet med caffe presenteras i kortfattade punkter i avsnittet med exempel.
Efter att ha läst och fått en grundläggande uppfattning om hur dessa koffeinobjekt interagerar, kan varje objekttyp läsas i detalj i sina dedikerade ämnen.
Hur dessa objekt interagerar tillsammans.
En användare vill använda caffe för CNN-utbildning och testning. Användaren bestämmer sig för CNN-arkitekturdesignen (t.ex. - Antal lager, antal filter och deras detaljer osv.). Användaren bestämmer också optimeringstekniken för träning och inlärningsparametrar i fall utbildning ska genomföras. Om operationen är av vaniljstestning, anges en förutbildad modell av användaren. Med hjälp av all denna information inställas användaren ett Solver-objekt och ger Solver-objektet en instruktion (som bestämmer operationer, t.ex. utbildning och testning).
Lösare : Det här objektet kan ses som en enhet som övervakar utbildning och testning av ett CNN. Det är själva entreprenören som får upp CNN på processorn och körs. Det är specialiserat på att utföra de specifika optimeringarna som leder till att en CNN får utbildning.
Nät : Nät kan betraktas som ett specialistobjekt som representerar det verkliga CNN som operation (er) utförs över. Net instrueras av Solver att faktiskt tilldela minne till CNN och instansera det. Net ansvarar också för att ge instruktioner som faktiskt leder till framåt- eller bakpropagering som genomförs över CNN.
Layer : Det är ett objekt som representerar ett visst lager i ett CNN. Således består ett CNN av lager. När det gäller caffe, Net Objekt instanserar varje " Layer " -typ som anges i arkitekturdefinitionen och det kopplar också olika lager ihop. Ett specifikt lager utför en specifik uppsättning funktioner (t.ex. - Max-pooling, Min-Pooling, 2D Convolution etc.)
Blob : Data flyter genom ett CNN under träning och testning. Dessa data förutom att innehålla användardata inkluderar också flera mellanliggande beräkningar som utförs via CNN. Dessa data är inkapslade i ett objekt som heter Blob.