I'm starting to experiment with neural networks in Google's tensorflow framework, and in particular am working on a model that has an LSTM layer. I am using the RNN tutorial to get me started.
To train my model, I have sequences of data that are several thousand data points long. In the tutorial, the author is processing small sequences of data (short sentences of paragraphs) and concatenates those sequences together, separated by <end of stream>
, divides the entire data set equally into batch_size
number of chunks and processes those chunks in parallel. I would like to process each of my sequences of data separately from start to finish, but would like to be able to process several of them in parallel, as the rnn_cell
objects are set up to do (they process batch_size
sequences at onces).
This would be straight forward to do if the sequences were of the same length, but they are not. An rnn_cell.LSTMCell
expects the data to come in with a fixed dimensionaltiy, batch_size x input_size
, so there's a problem once some of the sequences reach their end and my batch_size
wants to decrease.
How can I work around this? I don't think I can 'left' or 'right' justify my data so that they line up without affecting the training.