我可以在1.13中使用新的Tensoflow统一RNN API吗?

时间:2019-03-19 17:57:37

标签: tensorflow keras

传统上,TensorFlow通过tf.keras.layers.CuDNNGRUtf.keras.layers.CuDNNLSTM支持基于CuDNN的RNN。但是,在需要在GPU上进行训练并在CPU上进行推理的情况下,使用这些API会很痛苦,因为它们需要GPU。 TensorFlow 2.0将使用统一的RNN api修复此问题,该api在可能的情况下使用CuDNN,否则将恢复为较慢的实现。在TensorFlow 1.13的发行说明中有一个诱人的说明:

  

将LSTM的默认循环激活功能从   在2.0中从“ hard_sigmoid”到“ sigmoid”。历史上反复激活   是“ hard_sigmoid”,因为它比“ sigmoid”快。与新统一   由于CuDNN内核正在使用CPU和GPU模式之间的后端   sigmoid,我们也将CPU模式的默认值也更改为Sigmoid。用   也就是说,默认的LSTM将与CPU和GPU兼容   核心。这将使具有GPU的用户默认使用CuDNN内核   并在训练中获得10倍的性能提升。请注意,这是   检查点重大更改。如果用户想使用他们的1.x预培训   检查点,请使用   LSTM(recurrent_activation ='hard_sigmoid')退回到1.x   行为。

它在1.13发行说明中,所以我认为也许我可以在1.13中使用此API,即使该说明本身出于某些原因也谈到了2.0。有没有办法做到这一点?我真的可以使用CuDNN的速度提升功能,但是我不想在代码稳定之前将其移植到2.0。

0 个答案:

没有答案