簡體   English   中英

在GPU上訓練RNN-我應該使用哪個tf.keras層?

[英]Training RNN on GPU - which tf.keras layer should I use?

我正在訓練使用tf.keras.layers.GRU圖層構建的RNN。 他們需要很長時間來訓練(> 2個小時),所以我將把它們部署到GPU上進行訓練。 我想知道有關GPU訓練的一些事情:

  1. tf.keras.layers.CuDNNGRUtf.keras.layers.GRU (以及tf.keras.layers.LSTMtf.keras.layers.CuDNNLSTM )之間有什么區別? 我從這篇文章CuDNNGRUCuDNNGRU層的訓練速度比GRU層快,但是
    • 使用相同的種子,這兩個層會收斂到不同的結果嗎?
    • 這兩個層在推理過程中是否執行相同的操作?
    • CuDNN層在推理期間是否需要GPU?
    • GRU層可以在GPU上運行推理嗎?
    • CuDNN層易於部署嗎? 我目前正在使用coremlconverter將我的keras模型轉換為CoreML進行部署。
  2. 是否有一個相當於CuDNN層為tf.keras.layers.SimpleRNN (即tf.keras.layers.CuDNNSimpleRNN )? 我還沒有致力於特定的體系結構,因此,我認為如果我決定使用SimpleRNN,並且CuDNN層具有一些所需的功能,那么我將需要tf.keras.layers.CuDNNSimpleRNN層。
  3. 使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM