我有一个递归神经网络,可用于处理可变长度的输入(序列)。但是,输入的元素彼此之间没有依赖关系。没有内部状态的自定义RNN单元可以很好地处理这种情况:
grouped_words
但是,将我的模型转移到GPU并没有带来性能提升:我认为此RNN是瓶颈。
tf.contrib.cudnn_rnn.CudnnRNNTanh
似乎是加快速度的一种合理方法,因为它是针对GPU优化的,与class MyRNNCell(tf.nn.rnn_cell.BasicRNNCell):
def __init__(self, num_units):
super(MyRNNCell, self).__init__(num_units)
def __call__(self, inputs, state, scope=None):
#inputs - Input from time sequence
#state - Previous unit's state
#scope - Used by superclass
hidden_layer, hidden_state = super(MyRNNCell, self).__call__(
inputs, tf.zeros_like(state)
)
return hidden_layer, hidden_state
predictions, states = tf.nn.dynamic_rnn(MyRNNCell(20),input_sequences)
不同。
是否有一种方法可以使tf.nn.rnn_cell.BasicRNNCell
或类似的函数忽略上面的代码中的状态?