无法在GPU上训练Keras卷积网络



我可以使用keras.datasets.fashion_mnist数据集训练具有Dense层的Keras网络。然而,当我试图训练卷积网络时,我遇到了一个错误。

以下是代码的一部分:

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)

当我试着适应时,它的错误。

未知错误:无法获取卷积算法。这可能是因为cuDNN无法初始化,所以请尝试查看是否有警告上面打印了日志消息。[[{节点conv2d/conv2d}}=Conv2D[T=DT_FLOAT,data_format="NCHW",扩张=[1,1,1],padding="VALID",步幅=[1,1,1],use_cudnn_on_gpu=true,_device="/job:localhost/replice:0/task:0/device:GPU:0"](training/TFPOptimizer/gradients/conv2d/conv2d_grad/Conv2DBackropFilter-0-TransposeNWCToNCHW-LayoutOptimizer,conv2d/conv2d/ReadVariableOp(]][[{{nodelosse/dense_1_losse/broadcast_weights/assert_broadcast/AssertGuard/assert/Switch_2/\u69}}=_Recvclient_terminate=false,recv_device="/job:localhost/replice:0/task:0/device:CPU:0",send_device="/job:localhost/replice:0/task:0/device:GPU:0",send_device_instance=1,tensor_name="edge_112_l…t/Switch_2",tensor_ type=DT_,_device="/job:localhost/副本:0/任务:0/设备:CPU:0"]]

我在C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0bin中有cudnn64_7.dll,而PATH已经包含该文件夹。

我认为这个链接可以解决你的问题,因为你安装的cnDNN版本与在tensorflow中编译的cuDNN版本不兼容。

最新更新