Sto provando a implementare un ciclo di scansione in theano, che dato un tensore userà una "porzione mobile" dell'input. Non deve essere effettivamente una fetta mobile, può essere un tensore preelaborato a un altro tensore che rappresenta la porzione mobile.Sovrapposizione iterazione sul tensore teano
Essenzialmente:
[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
|-------| (first iteration)
|-------| (second iteration)
|-------| (third iteration)
...
...
...
|-------| (last iteration)
dove |-------|
è l'ingresso per ogni iterazione.
Sto cercando di capire il modo più efficiente per farlo, magari usando una qualche forma di referenziazione o manipolazione delle falcate, ma non sono riuscito a far funzionare qualcosa anche per puro numpy.
Una possibile soluzione trovata è here, ma non riesco a capire come utilizzare le falcate e non vedo un modo per usarlo con theano.
[ 'theano.sandbox.neighbours.images2neibs'] (http://deeplearning.net/software/theano/library/tensor/nnet/neighbours.html#module-sandbox .neighbours) è vicino a quello che stai cercando. Per quanto ne so, funziona solo con un tensore 4D, ma potresti provare a rimodellare il tuo vettore 1D in (1, 1, 1, N). –
Hm, questo in realtà richiede alcune informazioni più specifiche, ad esempio se la funzione da applicare al segmento deve visualizzare i risultati passati o meno. La soluzione più generale sta usando 'theano.scan', come nella risposta sotto, ma con alcune informazioni extra, questo può ridursi ad es. una convoluzione con un kernel appropriato seguito da un'altra funzione. – eickenberg
Il motivo per cui desidero questa porzione mobile è perché sto cercando di applicare una convoluzione 1d a ogni sezione. Penso che quello che voglio sia già implementato [qui] (https://github.com/Lasagne/Lasagne/blob/master/lasagne/theano_extensions/conv.py#L97) ma voglio che io desideri i risultati in tandem con altre operazioni durante una scansione, e presumo che sarebbe più efficiente ottenere ogni risultato di convoluzione per ogni fetta, e dopo averlo fatto passare alla successiva. Penso che @carriepl abbia risposto esattamente con ciò che volevo testare la mia teoria. Se avete altri esempi di questo usando theano per favore condividi! Grazie –