Ich versuche, einige Bilder von GoogleNet
mit Pycaffe
alles in seinem Standardzustand zu klassifizieren ist , das deploy.prototxt
und auch das vortrainierte Modell. Allerdings, wenn ich den Code ausführen möchten, erhalte ich folgende Fehlermeldung:Valueerror: konnte nicht Eingabearray übertragen von Form (1,3,256,256) in Form (1,3,224,224) auftritt, während mittlere Datei in caffe Subtrahieren
ValueError: could not broadcast input array from shape (1,3,256,256) into shape (1,3,224,224)
das passiert, wenn ich mein Bild von der Mittelwert-Datei subtrahieren wollen! Dies ist der Code Ich verwende:
# Extract mean from the mean image file
mean_blobproto_new = caffe.proto.caffe_pb2.BlobProto()
f = open(args.mean, 'rb')
mean_blobproto_new.ParseFromString(f.read())
mean_image = caffe.io.blobproto_to_array(mean_blobproto_new)
for i, image, label in reader:
image_caffe = image.reshape(1, *image.shape)
out = net.forward(data=np.asarray([ image_caffe ])- mean_image)
plabel = int(out['pred'][0].argmax(axis=0))
und dies ist die deploy.prototxt
Datei (das Netzwerk als auch auf 256x256
Bilder abgeschnitten bei 224x224 wie GoogleNet
und GoogleNet bedeuten-Datei wird verwendet, ausgebildet wurde): https://pastebin.com/2QEtEeHW
was ist hier falsch?
Sollte nicht Caffe
zuerst das Bild subtrahieren und dann ernten, damit dieser Fehler nicht passieren würde? Was soll ich tun?
subtrahiert googelnet nicht einen Mittelwert pro Kanal (ein 3-Vektor, anstatt eines "Durchschnittsbildes")? – Shai
Ich habe die Dateien aus diesem Zweig: https://github.com/mrgloom/kaggle-dogs-vs-cats-solution und habe alle Dateien + Meanfile von ihrem Zweig! Der Caffe-Zweig, auf den der vorherige Link verweist und von dem sie wissen, dass sie ihre GoogleNet-Implementierung verwendet haben, verwendet den Durchschnitt pro Kanal. – Breeze
Es tut es nicht. Sie können https://stackoverflow.com/questions/44119176/caffe-model-gives-same-output-for-e-every-image nachsehen, wie ich es mache. – Harjatin