简体   繁体   中英

Understanding dimension of input to pre-defined LSTM

I am trying to design a model in tensorflow to predict next words using lstm.
Tensorflow tutorial for RNN gives pseudocode how to use LSTM for PTB dataset.
I reached to step of generating batches and labels.

def generate_batches(raw_data, batch_size):
  global data_index
  data_len = len(raw_data)
  num_batches = data_len // batch_size
  #batch = dict.fromkeys([i for i in range(num_batches)])
  #labels = dict.fromkeys([i for i in range(num_batches)])
batch = np.ndarray(shape=(batch_size), dtype=np.float)
labels = np.ndarray(shape=(batch_size, 1), dtype=np.float)
for i in xrange(batch_size) :   
    batch[i] = raw_data[i + data_index]
    labels[i, 0] = raw_data[i + data_index + 1]
data_index = (data_index + 1) % len(raw_data)
return batch, labels   

This code gives batch and labels size (batch_size X 1).

These batch and labels can also be size of (batch_size x vocabulary_size) using tf.nn.embedding_lookup() .

So, the problem here is how to proceed next using the function rnn_cell.BasicLSTMCell or using user defined lstm model?
What will be the input dimension to LSTM cell and how will it be used with num_steps ?
Which size of batch and labels is useful in any scenario?

The full example for PTB is in the source code . There are recommended defaults ( SmallConfig , MediumConfig , and LargeConfig ) that you can use.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM