A preprocessor to allow CNN and RNN layers to be used together.
For example, ConvolutionLayer -> GravesLSTM
Functionally equivalent to combining CnnToFeedForwardPreProcessor + FeedForwardToRnnPreProcessor
Specifically, this does two things:
(a) Reshape 4d activations out of CNN layer, with shape [timeSeriesLength*miniBatchSize, numChannels, inputHeight, inputWidth])
into 3d (time series) activations (with shape [miniBatchSize, inputHeight*inputWidth*numChannels, timeSeriesLength])
for use in RNN layers
(b) Reshapes 3d epsilons (weights.*deltas) out of RNN layer (with shape
[miniBatchSize,inputHeight*inputWidth*numChannels,timeSeriesLength]) into 4d epsilons with shape
[miniBatchSize*timeSeriesLength, numChannels, inputHeight, inputWidth] suitable to feed into CNN layers.
Note: numChannels is equivalent to channels or featureMaps referenced in different literature