3d Schiebefenster Bedienung in Theano?

TL.DR. Gibt es eine 3-dimensionale freundliche Implementierung vontheano.tensor.nnet.neighbours.images2neibs?

Ich möchte eine voxelweise Klassifizierung eines Volumens (NxNxN) unter Verwendung eines neuronalen Netzwerks durchführen, das ein nxnxn-Bild mit N> n aufnimmt. Um jedes Voxel im Volume zu klassifizieren, muss ich jedes Voxel durchlaufen. Für jede Iteration erhalte ich die Nachbarschafts-Voxel und leite sie als Eingabe an das neuronale Netzwerk weiter. Dies ist einfach eine Schiebefensteroperation, bei der es sich um das neuronale Netzwerk handelt.

Während mein neuronales Netzwerk in Theano implementiert ist, erfolgt die Implementierung des Schiebefensters in Python / Numpy. Da dies keine reine Theano-Operation ist, dauert die Klassifizierung für immer (> 3 Stunden), um alle Voxel in einem Band zu klassifizieren. Für den 2D-Schiebefensterbetrieb verfügt Theano über die Hilfsmethodetheano.tensor.nnet.neighbours.images2neibs, gibt es eine ähnliche Implementierung für 3-dimensionale Bilder?

edit: Es gibt bereits numpy-Lösungen 1 und2) für n-d Schiebefenster verwenden beide np.lib.stride_tricks.as_strided, um 'Ansichten des Schiebefensters' bereitzustellen, wodurch Speicherprobleme vermieden werden. In meiner Implementierung werden die Schiebefenster-Arrays von Numpy (Cython) an Python und dann an Theano übergeben. Um die Leistung zu steigern, muss ich wahrscheinlich Python umgehen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage