了解预定义LSTM的输入维度

时间:2016-11-05 21:24:07

标签: python tensorflow recurrent-neural-network lstm

我正在设计一个张量流模型,用lstm预测下一个单词 RNN的Tensorflow教程给出了伪代码如何将LSTM用于PTB数据集 我达到了生成批次和标签的步骤。

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   

此代码提供批次和标签大小(batch_size X 1)。

使用tf.nn.embedding_lookup(),这些批次和标签的大小也可以是(batch_size x vocabulary_size)。

那么,这里的问题是如何继续使用函数rnn_cell.BasicLSTMCell或使用用户定义的lstm模型?
input dimension to LSTM cell将是什么以及如何与{num_steps一起使用1}}?
批处理和标签的大小在任何情况下都有用吗?

1 个答案:

答案 0 :(得分:0)

PTB的完整示例位于源code中。您可以使用推荐的默认值(SmallConfigMediumConfigLargeConfig)。

相关问题