【问题标题】:Placeholders for LSTM-RNN parameters in TensorFlowTensorFlow 中 LSTM-RNN 参数的占位符
【发布时间】:2016-10-01 14:02:27
【问题描述】:

我想在基于 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.

我将不胜感激。

【问题讨论】:

    标签: tensorflow lstm recurrent-neural-network


    【解决方案1】:

    错误由以下代码引发:[net] * n_layers

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

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

    【讨论】:

    • 我想通过改变 dropout 率、单元数和层数来对 RNN 进行超参数优化。所以,我认为对这些数量使用占位符是有意义的。你能建议一种方法来对 RNN 进行超参数搜索,或者让我参考一个这样做的例子吗?
    猜你喜欢
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 2016-10-14
    • 2021-09-21
    • 2017-12-30
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多