2016-11-05 69 views
0

我試圖設計一個tensorflow模型來預測使用lstm的下一個單詞。
Tensorflow RNN教程給出了僞代碼如何使用LSTM的PTB數據集。
我到達了生成批次和標籤的步驟。瞭解輸入到預定義LSTM的尺寸

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一起使用?
哪種大小的批次和標籤在任何情況下都有用?

回答

0

PTB的完整示例源於code。建議使用默認設置(SmallConfigMediumConfigLargeConfig)。