首页 > 解决方案 > Keras 模型以代码 -1073740791 (0xC0000409) 退出

问题描述

起初它似乎是一个 Pycharm 错误,但即使从 shell 运行,它也会突然死掉。

如何解决这个问题?

import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Dropout, Flatten, MaxPooling2D

(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()


image_index = 3535
print(y_train[image_index])
plt.imshow(x_train[image_index], cmap='Greys')

x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)
input_shape = (28, 28, 1)
x_train = x_train.astype('float32')
x_test = x_test.astype('float32')
x_train /= 255
x_test /= 255
print('x_train shape:', x_train.shape)
print('Number of images in x_train', x_train.shape[0])
print('Number of images in x_test', x_test.shape[0])

# Creating a Sequential Model and adding the layers
model = Sequential()
model.add(Conv2D(28, kernel_size=(3,3), input_shape=input_shape))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten()) # Flattening the 2D arrays for fully connected layers
model.add(Dense(128, activation=tf.nn.relu))
model.add(Dropout(0.2))
model.add(Dense(10,activation=tf.nn.softmax))

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])
model.fit(x=x_train, y=y_train, epochs=10)
model.evaluate(x_test, y_test)
image_index = 4444
plt.imshow(x_test[image_index].reshape(28, 28),cmap='Greys')
pred = model.predict(x_test[image_index].reshape(1, 28, 28, 1))
print(pred.argmax())

我正在使用 NVIDIA RTX 2080ti,最后一行日志是

2021-06-07 18:29:36.621016: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library cudnn64_8.dll

更新

这适用于 tensorflow-cpu。问题可能是我的 cuDNN 库

标签: pythontensorflowmachine-learningkeras

解决方案


对我来说,它在 Jupyter Lab 中工作得很好: tensorflow-gpu 2.4.1

在运行代码之前尝试清除会话:

from tensorflow.keras import backend
backend.clear_session()

推荐阅读