2016-06-02 20 views
0

LSTMベースのRNNのドロップアウト率、隠れユニットの数、およびレイヤ数のプレースホルダを使用したいと考えています。以下は私が現在試みているコードです。TensorFlowのLSTM-RNNパラメータのプレースホルダ

dropout_rate = tf.placeholder(tf.float32) 

n_units = tf.placeholder(tf.uint8) 

n_layers = tf.placeholder(tf.uint8) 

net = rnn_cell.BasicLSTMCell(n_units) 

net = rnn_cell.DropoutWrapper(net, output_keep_prob = dropout_rate) 

net = rnn_cell.MultiRNNCell([net] * n_layers) 

最後の行には、次のエラーを与える:

TypeError: Expected uint8, got <tensorflow.python.ops.rnn_cell.DropoutWrapper 
    object ... of type 'DropoutWrapper' instead. 

私は任意の助けをいただければ幸いです。

答えて

0

エラーは、次のコードから発生します。[net] * n_layers

あなたは(n_layersの長さ)[net, net, ..., net]ように見えるリストを作成しようとしているが、n_layersは今未知の値のプレースホルダです。

私はプレースホルダでこれを行う方法は考えられないので、標準n_layers=3に戻ってください。 (とにかく、プレースホルダーとしてn_layersを置くのは良いことではありませんでした。

+0

ドロップアウト率、単位数、レイヤー数を変えてRNNのハイパーパラメーター最適化を行いたいと思います。したがって、これらの数量にプレースホルダを使用することが理にかなっていると思いました。 RNNのハイパーパラメータ検索を行う方法を提案するか、これを行う例を参照してください。 – user6137678

関連する問題