2016-11-05 9 views
0

私はtensorflowでモデルを設計して、lstmを使って次の単語を予測しようとしています。
Tensorflow RNNのチュートリアルでは、PTBデータセットにLSTMを使用する方法を擬似コードで示しています。
バッチとラベルを生成する段階に達しました。あらかじめ定義された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です。使用できるデフォルトの推奨値(SmallConfigMediumConfig、およびLargeConfig)があります。

関連する問題