![](/img/trans.png)
[英]My model.fit and model.evaluate are not working properly and I am getting an error
[英]I am trying to fit an CuDNNLSTM model and I am getting an error
我正在學習循環神經網絡,我發現了 CuDNNLSTM 層,它比通常的 LSTM 快得多。 所以,我試圖擬合一個 CuDNNLSTM 模型,但唯一的事情是,哪個程序顯示是“Epoch 1”,然后什么都沒有發生,我的內核正在死去(我在 jupyter-notebook 中工作)。 在 jupyer 終端中,我發現了這個:
2022-05-25 22:22:59.693801:我 tensorflow/stream_executor/cuda/cuda_dnn.cc:384] 加載 cuDNN 版本 8100
2022-05-25 22:23:00.149065:E tensorflow/stream_executor/cuda/cuda_driver.cc:1018] 無法同步停止事件:CUDA_ERROR_LAUNCH_FAILED:未指定的啟動失敗
2022-05-25 22:23:00.149218:E tensorflow/stream_executor/gpu/gpu_timer.cc:55] 內部:銷毀 CUDA 事件時出錯:CUDA_ERROR_LAUNCH_FAILED:未指定的啟動失敗
2022-05-25 22:23:00.150008:E tensorflow/stream_executor/gpu/gpu_timer.cc:60] 內部:銷毀 CUDA 事件時出錯:CUDA_ERROR_LAUNCH_FAILED:未指定的啟動失敗
2022-05-25 22:23:00.150355:F tensorflow/stream_executor/cuda/cuda_dnn.cc:217] 檢查失敗:狀態== CUDNN_STATUS_SUCCESS(7 vs. 0)未能設置 cuDNN 流。
我已將 tensorflow-gpu 和兼容的 CuDNN 和 CUDA 安裝到我的 tensorflow 版本中
張量流版本:2.9.0
CUDA 版本:11.2
CuDNN 版本:8.1
我也嘗試過相同的模型,但使用 LSTM 層並且效果很好,但速度仍然很慢,所以我想弄清楚如何使用 CuDNNLSTM 模型。
我的代碼:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, LSTM
from tensorflow.compat.v1.keras.layers import CuDNNLSTM
mnist = tf.keras.datasets.mnist
(X_train, y_train), (X_test, y_test) = mnist.load_data()
X_train = X_train/255.0
X_test = X_test/255.0
model = Sequential()
model.add(CuDNNLSTM(128, input_shape=(X_train.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(CuDNNLSTM(128))
model.add(Dropout(0.2))
model.add(Dense(32, activation="relu"))
model.add(Dropout(0.2))
model.add(Dense(10, activation="softmax"))
opt = tf.keras.optimizers.Adam(learning_rate=1e-3, decay=1e-5)
model.compile(loss="sparse_categorical_crossentropy",
optimizer=opt,
metrics=["accuracy"])
model.fit(X_train, y_train, epochs=3, validation_data=(X_test, y_test))
如果有人遇到同樣的問題或知道如何解決,我將不勝感激。 預先感謝。
您是否嘗試過使用tanh
激活函數? 據我了解,它必須使用它。 詳情如下:
長短期記憶層 - Hochreiter 1997。
請參閱Keras RNN API 指南
有關 RNN API 使用的詳細信息。
基於可用的運行時硬件和約束,這一層
將選擇不同的實現(基於 cuDNN 或純 TensorFlow)
以最大限度地發揮性能。 如果 GPU 可用並且所有
該層的參數滿足 cuDNN 內核的要求
(詳見下文),該層將使用快速 cuDNN 實現。
使用 cuDNN 實現的要求是:
activation
==tanh
recurrent_activation
激活 ==sigmoid
recurrent_dropout
輟學 == 0unroll
是False
use_bias
是True
- 輸入,如果使用掩碼,則嚴格右填充。
- 在最外層的上下文中啟用了急切執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.