Gibt es sowieso nur G
und B
Kanäle für das Training von Caffe mit "ImageData"
Eingangsschicht?Wie trainiere ich Caffe mit nur G- und B-Kanälen
Antwort
Sie können eine Faltungsschicht auf Ihrer Eingabe hinzufügen, G und B wählen wird:
layer {
name: "select_B_G"
type: "Convolution"
bottom: "data"
top: "select_B_G"
convolution_param { kernel_size: 1 num_output: 2 bias_term: false }
param { lr_mult: 0 } # do not learn parameters for this layer
}
Sie werden tun müssen, um einige net surgery vor dem Training die Gewichte zu setzen für diese Schicht
zu seinnet.params['select_B_G'][0].data[...] = np.array([[1,0,0],[0,1,0]], dtype='f4')
Hinweis: manchmal Bilder zu caffe geladen werden durch den Kanal-Swap-Transformation, dh RGB -> BGR, deshalb müssen Sie vorsichtig sein, welche Kanäle Sie wählen.
Ich schrieb eine einfache Python-Ebene, um dies zu tun, übrigens habe ich diesen Code nicht getestet.
import caffe
class ExtractGBChannelLayer(caffe.Layer):
def setup(self,bottom,top):
pass
def reshape(self,bottom,top):
bottom_shape=bottom[0].data.shape
top_shape=[bottom_shape[0],2,bottom_shape[2],bottom_shape[3]] #because we only want G and B channels.
top[0].reshape(*top_shape)
def forward(self,bottom,top):
#copy G and B channel to top, note caffe BGR order!
top[0].data[:,0,...]=bottom[0].data[:,1,...]
top[0].data[:, 1, ...] = bottom[0].data[:, 0, ...]
def backward(self,top,propagate_down,bottom):
pass
Sie können als MyPythonLayer.py
diese Datei speichern In Sie Sie prototxt dieser diese funktioniert gut
layer {
name: "GB"
type: "Python"
bottom: "data"
top: "GB"
python_param {
module: "MyPythonLayer"
layer: "ExtractGBChannelLayer"
}
}
Hoffnung eine Schicht nach ImageDataLayer
wie einfügen.
nette Antwort! Der Vorteil dieser Antwort gegenüber [Shais] (http://stackoverflow.com/a/36551710/1714410) ist ihre Einfachheit. Die Verwendung der "Convolution" -Schicht-Infrastruktur könnte sich jedoch als schneller erweisen. – Shai
Dies ist der Matlab-Code, den ich verwendet habe und es funktioniert.
caffe.reset_all(); % reset caffe
caffe.set_mode_gpu();
gpu_id = 0; % we will use the first gpu in this demo
caffe.set_device(gpu_id);
net_model = ['net_images.prototxt'];
net = caffe.Net(net_model, 'train')
a = zeros(1,1,3,2);
a(1,1,:,:) = [[1,0,0];[0,1,0]]'; % caffe uses BGR color channel order
net.layers('select_B_G').params(1).set_data(a);
solver = caffe.Solver(solverFN);
solver.solve();
net.save(fullfile(model_dir, 'my_net.caffemodel'));
Wenn ich richtig verstehe, ist diese Antwort nicht "stand alone": Es ersetzt nur den Python-Netz-Chirurgie Teil von [diese Antwort] (http://stackoverflow.com/a/36551710/1714410). Hab ich recht? – Shai
Ja. Das ist richtig und danke für deine Antwort. – user570593
- 1. Caffe stürzt ab, wenn ich ein Netz trainiere
- 2. Wie kann Multithreading mit Caffe aktiviert werden?
- 3. Wie trainiere ich einen Klassifikator mit nur positiven und neutralen Daten?
- 4. Wie trainiere ich HOG und benutze meinen HOGDescriptor?
- 5. Wie trainiere ich Chunker in Opennlp?
- 6. Wie kann ich nur Standard-C++ mit GNU g ++ kompilieren?
- 7. Wie trainiere ich den Verkehrszeichendetektor mit dem trainCascadeObjectDetector von MATLAB?
- 8. Wie trainiere ich ein Modell in C++ mit Tensorflow?
- 9. Wie trainiere ich mein eigenes SVM in opencv mit C++?
- 10. Verknüpfungsfehler mit g ++ 3.4.4 und g ++ 3.4.5
- 11. Ich kann nicht mit dem Training in Caffe fortfahren
- 12. Trainiere mehrere Modelle mit verschiedenen Maßen und akkumuliere Vorhersagen
- 13. Wie vektorisieren meine Schleife mit g ++? Ich
- 14. Wie bekomme ich Caffe Notebook Beispiel
- 15. Caffe mit mehreren Verlustschichten
- 16. Amazon AMI mit Caffe
- 17. caffe Wie setze ich einen Filter mit Matlab?
- 18. Monitor Training/Validierungsprozess in Caffe
- 19. Bestätigung, dass ich nicht auf dem Testgerät trainiere
- 20. Wie kann ich g ++ und MinGW in C++ Präprozessor erkennen?
- 21. Wie Schicht in Caffe mit Python umgestalten?
- 22. caffe mit Multi-Label-Bildern
- 23. g ++ mit python.h, wie kompiliert
- 24. Legendes Ein- und Spektive und caffe
- 25. Multi-Label-Klassifizierung mit Caffe
- 26. cv2 Importfehler mit Caffe Python
- 27. CNN-Funktionen mit Caffe extrahieren und mit SVM trainieren
- 28. Caffe: Installieren Sie modifizierte Caffe-Projekte unter Windows
- 29. caffe: Fehler mit Protobuf-Version
- 30. Caffe Autoencoder
Danke. Irgendwelche Hinweise für Matlap? – user570593
@ user570593 was in Matlab? die Netzoperation? Als alter Matlab-Benutzer empfehle ich dringend, bei der Arbeit mit Caffe zu Python zu wechseln. – Shai
Haben Sie eine Idee, wie ich es mit Matlab machen kann? – user570593