TensorFlow中LSTM-RNN参数的占位符

时间:2016-06-02 02:15:46

标签: tensorflow lstm recurrent-neural-network

我想使用占位符来获取基于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.

我将不胜感激。

1 个答案:

答案 0 :(得分:0)

错误来自以下代码:[net] * n_layers

您正试图制作一个类似[net, net, ..., net]的列表(长度为n_layers),但n_layers现在是未知值的占位符。

我无法想到用占位符做到这一点的方法,所以我猜你必须回到标准n_layers=3。 (无论如何,将n_layers作为占位符并不是一个好习惯。)