[英]Training RNN on GPU - which tf.keras layer should I use?
我正在训练使用tf.keras.layers.GRU图层构建的RNN。 他们需要很长时间来训练(> 2个小时),所以我将把它们部署到GPU上进行训练。 我想知道有关GPU训练的一些事情:
tf.keras.layers.CuDNNGRU
和tf.keras.layers.GRU
(以及tf.keras.layers.LSTM
和tf.keras.layers.CuDNNLSTM
)之间有什么区别? 我从这篇文章中CuDNNGRU
, CuDNNGRU
层的训练速度比GRU
层快,但是
coremlconverter
将我的keras模型转换为CoreML进行部署。 tf.keras.layers.SimpleRNN
(即tf.keras.layers.CuDNNSimpleRNN
)? 我还没有致力于特定的体系结构,因此,我认为如果我决定使用SimpleRNN,并且CuDNN层具有一些所需的功能,那么我将需要tf.keras.layers.CuDNNSimpleRNN
层。 CuDNN
层时,我需要安装tensorflow-gpu
吗? 还是只要我安装了相关的驱动程序,它们是否仍会部署到GPU? 如果您使用的是与cuda兼容的GPU,则使用CuDNN图层绝对有意义。 它们具有不同的实现,试图克服RNN体系结构中固有的计算并行化问题。 尽管它们通常表现较差,但是速度要快3到6倍https://twitter.com/fchollet/status/918170264608817152?lang=en
使用相同的种子,这两个层会收敛到不同的结果吗?
是
这两个层在推理过程中是否执行相同的操作?
您应该具有可比的性能,但不完全相同
CuDNN层在推理期间是否需要GPU?
是的,但是您可以转换为与CuDNN兼容的GRU / LSTM
GRU层可以在GPU上运行推理吗?
是
使用CuDNN层时,我需要安装tensorflow-gpu吗? 还是只要我安装了相关的驱动程序,它们是否仍会部署到GPU?
是的,您需要兼容cuda的GPU
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.