caffe
Grundlegende Caffe-Objekte - Solver, Net, Layer und Blob
Suche…
Bemerkungen
Ein Caffe-Benutzer sendet Anweisungen, um bestimmte Operationen an Caffe-Objekten auszuführen. Diese Objekte interagieren basierend auf ihren Designspezifikationen miteinander und führen die Operation (en) aus. Dies ist ein Grundprinzip des OOP-Paradigmas.
Während es viele Caffe-Objekttypen (oder C ++ - Klassen) gibt, konzentrieren wir uns für ein anfängliches Grundverständnis auf 4 wichtige Caffe-Objekte. In dieser Phase ist es unser Ziel, die Interaktion zwischen diesen Objekten auf einer stark abstrahierten Ebene zu beobachten, auf der spezifische Implementierungs- und Entwurfsdetails verschmutzt werden, und stattdessen die Vogelperspektive der Operation im Mittelpunkt steht.
Die 4 grundlegenden Caffe-Objekte sind:
- Löser
- Netz
- Schicht
- Klecks
Eine sehr grundlegende Einführung und ein Blick aus der Vogelperspektive auf ihre Rolle bei der Arbeit mit Kaffee wird in den Beispielen kurz und prägnant dargestellt.
Nach dem Lesen und einer grundlegenden Vorstellung davon, wie diese Caffe-Objekte interagieren, kann jeder Objekttyp in seinen speziellen Themen ausführlich gelesen werden.
Wie diese Objekte zusammenwirken
Ein Benutzer möchte caffe für CNN-Schulungen und -Tests verwenden. Der Benutzer entscheidet über das CNN-Architekturdesign (z. B. - Anzahl der Schichten, Anzahl der Filter und deren Details usw.). Der Benutzer entscheidet auch über die Optimierungsmethode für Trainings- und Lernparameter, falls das Training durchgeführt werden soll. Wenn es sich um einen einfachen Vanilletest handelt, wird vom Benutzer ein vorgebildetes Modell angegeben. Unter Verwendung all dieser Informationen instanziiert der Benutzer ein Solver-Objekt und stellt dem Solver-Objekt eine Anweisung zur Verfügung (die die Operation (en) wie Training und Testen festlegt).
Löser : Dieses Objekt kann als eine Einheit betrachtet werden, die das Training und das Testen eines CNN überwacht. Es ist der eigentliche Auftragnehmer, der ein CNN für den Prozessor einrichtet und ausgeführt wird. Es ist darauf spezialisiert, die spezifischen Optimierungen durchzuführen, die dazu führen, dass ein CNN trainiert wird.
Net : Net kann als ein Fachobjekt betrachtet werden, das die tatsächliche CNN darstellt, über die Operationen ausgeführt werden. Net wird von Solver angewiesen, tatsächlich Speicher für das CNN zuzuweisen und diesen zu instanziieren. Net ist auch dafür verantwortlich, Anweisungen zu erteilen, die tatsächlich dazu führen, dass die Weiter- oder Rückwerbung über das CNN vorgenommen wird.
Schicht : Dies ist ein Objekt, das eine bestimmte Schicht eines CNN darstellt. Ein CNN besteht also aus Schichten. In Bezug auf caffe instanziiert das Net- Objekt jeden in der Architekturdefinition angegebenen " Layer " -Typ und verbindet außerdem verschiedene Layer miteinander. Eine bestimmte Ebene führt bestimmte Operationen aus (z. B. - Max-Pooling, Min-Pooling, 2D-Faltung usw.).
Blob : Daten fließen während des Trainings und des Tests durch ein CNN. Diese Daten enthalten nicht nur Benutzerdaten, sondern auch mehrere Zwischenberechnungen, die über CNN ausgeführt werden. Diese Daten werden in einem Objekt namens Blob gekapselt.