2016-05-26 3 views
1

Ich habe ein siamesisches neuronales Netzwerk in Torch implementiert, aber ich habe ein Problem mit der Dimensionalität der Ausgabe.Fackel, warum produziert mein neuronales Netzwerk nur einen Ausgang anstelle von vielen?

In einem einfachen Skript, das ich nur zum Testen entwickelt, liest es N Elemente in Eingabe und generiert korrekt N Elemente in der Ausgabe.

Aber in meiner Hauptsoftware liest das fast identische Modell N Elemente im Eingang und generiert falsch 1 Element in der Ausgabe. Der einzige Unterschied zwischen den beiden Modellen ist die Anzahl der Neuronen, die die Ausgabedimensionalität nicht beeinflussen sollten

Warum passiert das?

In diesem Bild können Sie einen Vergleich zwischen den Strukturen der beiden Torch siamesischen neuronalen Netze sehen.

Comparison of the structure of the two Torch models

Was könnte der Fehler? Wie erkennt man es? Irgendwelche Ideen?

+0

Versuchen Sie zunächst, das Vorhandensein des Dropout-Arguments zu ändern. Der Standardwert ist 0,5, also sollte es nichts beeinflussen, aber wir entfernen diesen Faktor zuerst. Das würde nur das Argument verlassen; Was ist das? Wenn es Batchgröße ist, sehe ich kein Problem; Wenn es etwas anderes ist, stimmt vielleicht die tatsächliche Eingabeform nicht überein? – Prune

+0

@Prune Danke für Ihre Hilfe. Ich habe die Dropout-Komponente entfernt und nichts geändert. 82 und 6 sind nicht die Minibatch-Größen, sondern die Größen der neuronalen Netze. –

+0

Okay, das ist in beiden Fällen ein gutes Zeichen, außer dass es uns keine triviale Lösung gibt. Als nächstes versuchen wir den * echten * paranoiden Schuss: Ändere die 82 auf 6 und lauf noch einmal. Das * sollte * die beiden Modelle identisch machen. Wenn du immer noch nur 1 Element bekommst, dann stimmt etwas nicht mit dem, was du in diesem Beitrag angezeigt hast - was ein * großer * Hinweis für dich sein sollte. – Prune

Antwort

2

Ich denke, wir haben es im Chat-Thread.

Ich nehme an, dass Sie Torch7 auf CentOS laufen. Torch7 benötigt CentOS 7.0 oder höher. Es installiert auf CentOS 6, funktioniert aber nicht richtig; Ich denke, es ist die Rückübertragung, die einen subtilen Fehler hat.

Verwandte Themen