2016-06-20 6 views
0

Ich verwende das Alexnet Beispiel in TFLearn gegeben, um auf meinem eigenen Datensatz von Bildern zu trainieren, die GroZi-120 database ist, also muss ich es leicht ändern, um für 120 Klassen auszugeben.TFLearn Alexnet angepasst an eine bestimmte Anzahl von Klassen

Ich bin nicht sehr vertraut mit Convnets und Deep Learning im Allgemeinen, also bin ich mir nicht sicher, wie man den Code für eine Ausgabe entsprechend den 120 Klassen richtig ausgeben.

Ich versuchte, die softmax Linie Wechsel zu:

network = fully_connected(network, 120, activation='softmax')

aber das gibt mir den Fehler

ValueError: Cannot feed value of shape (64, 17) for Tensor u'TargetsData/Y:0', which has shape '(?, 120)'

Könnte das jemand klären/mir helfen herauszufinden, wie es weitergehen? Vielen Dank im Voraus!

Antwort

0

In der Zeile:

model.fit(X, Y, n_epoch=1000, validation_set=0.1, shuffle=True, 
     show_metric=True, batch_size=64, snapshot_step=200, 
     snapshot_epoch=False, run_id='alexnet_oxflowers17') 

Sie scheinen noch die vorherige Y der Form [batch_size, 17] in das Netz eingespeist haben.

Sie müssen X und Y durch Ihre eigenen ersetzen.

+0

Wie würde das funktionieren? Ich habe die Eingabedatei geändert, die die Daten laden mit meinem eigenen Verzeichnis von Bildern arbeiten wie folgt: '' ' X, Y = build_image_dataset_from_dir ('../ train_photos /', Resize = resize_pics, Dateitypen = [ '.png'], convert_gray = false, shuffle_data = Shuffle, categorical_Y = one_hot) return X, Y '' ' wo mein Verzeichnis von Bildern in Verzeichnisse für jede Klasse getrennt ist. –

+0

Und was kehren 'X.shape' und' Y.shape' zurück? –

+0

Ich bekomme (11194, 224, 224, 3) und (11194, 120) für X bzw. Y. –

Verwandte Themen