Python 如何防止keras中创建会话失败错误?

Python 如何防止keras中创建会话失败错误?,python,tensorflow,keras,anaconda,Python,Tensorflow,Keras,Anaconda,我是tensorflow和Keras的新手,下面是我的代码 import numpy as np np.random.seed(123) # for reproducibility from keras.models import Sequential from keras.layers import Dense, Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D from ke

我是tensorflow和Keras的新手,下面是我的代码

import numpy as np
np.random.seed(123)  # for reproducibility

from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten
from keras.layers import Convolution2D, MaxPooling2D
from keras.utils import np_utils
from keras.datasets import mnist

(X_train, y_train), (X_test, y_test) = mnist.load_data()

# 5. Preprocess input data
X_train = X_train.reshape(X_train.shape[0], 28, 28, 1)
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')
X_train /= 255
X_test /= 255

# 6. Preprocess class labels
Y_train = np_utils.to_categorical(y_train, 10)
Y_test = np_utils.to_categorical(y_test, 10)

# 7. Define model architecture
model = Sequential()

model.add(Convolution2D(32, 3, 3, activation='relu', input_shape= 
(28,28,1)))
model.add(Convolution2D(32, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.25))

model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

# 8. Compile model
model.compile(loss='categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

# 9. Fit model on training data
model.fit(X_train, Y_train, 
          batch_size=32, nb_epoch=10, verbose=1)

# 10. Evaluate model on test data
score = model.evaluate(X_test, Y_test, verbose=0)
在运行此代码后,我一直遇到以下错误

2018-07-31 19:25:45.099850:IC:\users\nwani_bazel_nwani\mmtm6wb6\execroot\org\u tensorflow\tensorflow\core\platform\cpu\u feature\u guard.cc:140]您的cpu支持该tensorflow二进制文件未编译为使用的指令:AVX AVX2 2018-07-31 19:25:45.711357:IC:\users\nwani_bazel_nwani\mmtm6wb6\execroot\org\u tensorflow\tensorflow\core\common\u runtime\gpu\gpu\gpu device.cc:1356]找到 具有以下属性的设备0: 名称:GeForce 840M大调:5小调:0内存锁定速率(GHz):1.124 pciBusID:0000:04:00.0 总内存:2.00GiB自由内存:1.66GiB 2018-07-31 19:25:45.718218:IC:\users\nwani\u bazel\u nwani\mmtm6wb6\execroot\org\u tensorflow\tensorflow\core\common\u runtime\gpu\gpu\device.cc:1435]添加可见gpu设备:0 2018-07-31 19:25:45.722718:EC:\users\nwani_bazel_nwani\mmtm6wb6\execroot\org_tensorflow\tensorflow\core\common_runtime\direct_session.cc:154]Internal:cudaGetDevice()失败。状态:CUDA驱动程序版本不足以支持CUDA运行时版本 回溯(最近一次呼叫最后一次): 文件“c:\Users\Seth Siva\Documents\mnist digit recognizer.py”,第44行,在 批次大小=32,nb=10,详细程度=1) 文件“C:\Users\Seth Siva\anaconda\lib\site packages\keras\engine\training.py”,第1042行 验证步骤=验证步骤) 文件“C:\Users\Seth Siva\anaconda\lib\site packages\keras\engine\training\u arrays.py”,第199行,在fit\u循环中 outs=f(ins\U批量) 文件“C:\Users\Seth Siva\anaconda\lib\site packages\keras\backend\tensorflow\u backend.py”,第2653行,在调用中 如果hasattr(get_session(),“_make_callable_from_options”): 文件“C:\Users\Seth Siva\anaconda\lib\site packages\keras\backend\tensorflow\u backend.py”,第183行,在get\u会话中 _SESSION=tf.SESSION(config=config) 文件“C:\Users\Seth Siva\anaconda\lib\site packages\tensorflow\python\client\session.py”,第1560行,位于init 超级(会话,自我)。init(目标,图形,配置=config) 文件“C:\Users\Seth Siva\anaconda\lib\site packages\tensorflow\python\client\session.py”,第633行,位于init self.\u session=tf_session.tf_NewSession(self.\u图.\u c_图,opts)
tensorflow.python.framework.errors\u impl.InternalError:未能创建会话。

通常创建会话会与GPU内存不足有关,但我认为这里的情况并非如此。你试过重新安装CUDA吗?谢谢回复。我刚刚尝试重新安装CUDA,幸运的是它成功了,非常感谢。