web-dev-qa-db-fra.com

ne peut pas former le réseau de convolution Keras sur GPU

Je peux former un réseau Keras avec la couche Dense à l'aide du jeu de données keras.datasets.fashion_mnist. Cependant, lorsque j'ai essayé de former un réseau de convolution, une erreur s'est produite.

Voici une partie du code:

from tensorflow.keras.layers import *

model = keras.Sequential([
        Convolution2D(16, (3,3), activation='relu', input_shape=(28,28,1)),
        MaxPooling2D(pool_size=(2,2)),
        Flatten(),
        Dense(16, activation='relu'),
        Dense(10, activation='softmax')    
])
model.compile(optimizer=tf.train.AdamOptimizer(), 
          loss='sparse_categorical_crossentropy',
          metrics=['accuracy'])

model.fit(train_images, train_labels, epochs=5)

et son erreur quand j'ai essayé de s'adapter.

UnknownError: Impossible d'obtenir l'algorithme de convolution. C'est probablement Parce que cuDNN n'a pas pu s'initialiser, essayez donc de voir si un avertissement apparaît Le message du journal a été imprimé ci-dessus. [[{{noeud conv2d/Conv2D}} = Conv2D [T = DT_FLOAT, data_format = "NCHW", dilatations = [1, 1, 1, 1], padding = "VALID", strides = [1, 1, 1, 1], use_cudnn_on_gpu = true, _device = "/ job: localhost/replica: 0/task: 0/device: GPU: 0"] (training/TFOptimizer/gradients/conv2d/Conv2D_grad/Conv2DBackpropFilter-0-TransposeNHWCToNCHW-LayoutOptimizer, conv2d/Readd )]] [[{{noeud loss/dense_1_loss/broadcast_weights/assert_broadcastable/AssertGuard/Assert/Switch_2/_69}} = _Recvclient_terminated = false, recv_device = "/ travail: localhost/replica: 0/tâche: 0/périphérique: CPU: 0", send_device = "/ job: localhost/replica: 0/task: 0/device: GPU: 0", send_device_incarnation = 1, tensor_name = "Edge_112_l ... t/Switch_2", tensor_type = DT_INT32, _device = "/ job: localhost/replica: 0/tâche: 0/périphérique: CPU: 0"]]

J'ai cudnn64_7.dll dans C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\bin et la PATH contient déjà ce dossier.

7
wannik

Je pense que ce link résoudrait votre problème, car sa version cnDNN que vous avez installée n’est pas compatible avec la version du fichier CUDNN compilé dans tensorflow.

4
Vincent Tang

J'ai le même problème @Wannik, j'ai tensorflow 1.12, CUDA 10, cudnn 7.4.1 et je reçois la même erreur que vous, qu'avez-vous fait et installé avec des versions exactes pour le faire fonctionner? 

1
David Wagih