2017-12-11 3 views
1

dynamic_rnnのAPIドキュメントを読むとき、私は以下の質問をします:バッチサイズ、シーケンス長とhidden_​​sizeの関係は何ですか?

バッチサイズ、シーケンス長さ、および(セル)hidden_​​sizeの関係には制約がありますか?

私は思っています:

配列の長さ< =(セル)hidden_​​size、または、

バッチサイズ*配列の長さ< =(セル)hidden_​​size

は私が修正アム?私は多くのWebページを読んできましたが、答えを見つけることができませんでした。

ありがとうございます。

https://www.tensorflow.org/api_docs/python/tf/nn/dynamic_rnn

例:限りAPIに関しては何の関係もありません

# create a BasicRNNCell 
rnn_cell = tf.nn.rnn_cell.BasicRNNCell(hidden_size) 

# 'outputs' is a tensor of shape [batch_size, max_time, cell_state_size] 

# defining initial state 
initial_state = rnn_cell.zero_state(batch_size, dtype=tf.float32) 

# 'state' is a tensor of shape [batch_size, cell_state_size] 
outputs, state = tf.nn.dynamic_rnn(rnn_cell, input_data, 
            initial_state=initial_state, 
            dtype=tf.float32) 
# create 2 LSTMCells 
rnn_layers = [tf.nn.rnn_cell.LSTMCell(size) for size in [128, 256]] 

# create a RNN cell composed sequentially of a number of RNNCells 
multi_rnn_cell = tf.nn.rnn_cell.MultiRNNCell(rnn_layers) 

# 'outputs' is a tensor of shape [batch_size, max_time, 256] 
# 'state' is a N-tuple where N is the number of LSTMCells containing a 
# tf.contrib.rnn.LSTMStateTuple for each cell 
outputs, state = tf.nn.dynamic_rnn(cell=multi_rnn_cell, 
            inputs=data, 
            dtype=tf.float32) 

答えて

0

。これらのパラメータのいずれか2つを修正しても、残りの値は負の整数でなくてもかまいません(sequence_lengthの場合は、batch_size - 長さが負の整数のベクトル)。

hidden_sizeが巨大でトレーニングデータがほとんどない場合、結果として得られるモデルは非常に簡単にオーバーフィットしますが、それでも機能します。トレーニングデータは、通常、ミニバッチで表示されるため、トレーニングデータの量は、dynamic_rnnに渡されたシーケンス長の合計ではありません。

ハードウェア制約もあります.batch_sizeというように、最大​​シーケンス長がメモリ使用量に影響します。

関連する問題