2017-01-15 5 views
0

Ich möchte ein rekurrentes neuronales Netzwerk reproduzieren, bei dem jeder Schicht eine Dropout-Schicht folgt, und diese Dropout-Schichten teilen ihre Masken. Diese Struktur wurde unter anderem in A Theoretically Grounded Application of Dropout in Recurrent Neural Networks beschrieben.mxnet: mehrere Dropout-Layer mit gemeinsamer Maske

Soweit ich den Code verstehe, haben die rekurrenten Netzwerkmodelle, die in MXNet implementiert sind, keine Ausfallzeitenschichten, die zwischen Zeitschichten angewendet werden. Der dropout Parameter von Funktionen wie lstm (R API, Python API) definiert eigentlich das Dropout am Eingang. Daher müsste ich diese Funktionen von Grund auf neu implementieren.

Die Dropout-Ebene scheint jedoch keine Variable zu verwenden, die die Maske als Parameter definiert.

Ist es möglich, mehrere Dropout-Layer an verschiedenen Stellen des Berechnungsgraphen zu erstellen und gleichzeitig ihre Masken zu teilen?

Antwort

1

Laut der Diskussion here ist es nicht möglich, die Maske anzugeben, und die Verwendung von Zufallszahlen hat keinen Einfluss auf den Zufallszahlengenerator des Ausfalls.

+0

Es gibt Arbeit, um das Problem mit RNG zu beheben, aber Sie können immer noch keine Maske angeben. –

+0

Link zu [PR] (https://github.com/apache/incubator-mxnet/pull/9366). –