1

Ich möchte das vgg-imaganet-f-Netzwerk neu einlernen, um eine Klassifizierung vorzunehmen (anstatt direkten Bildvergleich, was ich mit meinem eigenen Netzwerk gemacht habe). Das heruntergeladene Netzwerk ist jedoch ein Bereitstellungsnetz und enthält keine Verlustschicht. Da ich bisher noch kein Klassifizierungstraining gemacht habe, bin ich ein bisschen ratlos, wie ich diese letzte Ebene gestalten soll. Ich erwarte, wird es so etwas wie dieses:matconvnet Klassifizierung Training letzte Schicht (Softmax)?

layer.name = 'loss' ; 
layer.type = 'custom' ; 
layer.forward = @forward ; 
layer.backward = @backward ; 
layer.class = [] ; 

aber ich weiß nicht, was meine @forward und @backward Funktionen sein sollte. Sollten sie softmax sein? Beachten Sie, ich habe eine Imdb mit etwa 10k Bilder, entsprechende Etiketten und ein ID-Element mit eindeutigen Nummern von 1 bis 10k. Vielen Dank für jede Hilfe oder Links zu einem Beispiel, wie man diese Schicht in matconvnet/matlab erstellen sollte!

Antwort

0

Sie könnten Ihr eigenes Netzwerk implementieren, indem Sie die Filter entsprechend anpassen. Da Sie vgg "neutrainieren" möchten, anstatt die Gewichte mit Zufallszahlen zu initialisieren, können Sie Ihr Klassifizierungsnetzwerk mit geschulten Filern aus dem heruntergeladenen Netzwerk anpassen. Die letzte Schicht könnte softmaxloss http://www.vlfeat.org/matconvnet/mfiles/vl_nnsoftmaxloss/

sein