[英]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.