Я экспериментировал с CuDNNLSTM для глубокого изучения и нашел в официальных документах шаги по его установке. Итак, я создал новый проект Pycharm и добавил только библиотеку tf-gpu. Код работал в 5 раз быстрее.
Но когда я запускаю тот же код на ноутбуке Jupyter, он показывает ошибку
Код, который я попробовал для тестирования, очень прост (и в основном пропущены шаги) MNIST.
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
tf.config.experimental.list_physical_devices('GPU')
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, LSTM
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(LSTM(128, input_shape=(x_train.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(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(lr=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))
Ошибка:
UnknownError: [_Derived_] Fail to find the dnn implementation.
[[{{node CudnnRNN}}]]
[[sequential_1/lstm_2/StatefulPartitionedCall]] [Op:__inference_distributed_function_10295]
Function call stack:
distributed_function -> distributed_function -> distributed_function