keras无法检测到gpu

时间:2019-01-19 02:39:12

标签: tensorflow keras gpu nvidia

我的keras-gpu有问题。

我在Anaconda中安装了keras-gpu。 我的笔记本电脑有两个GPU。一个是nVidia GTX950M,另一个是Intel集成显卡。当我运行这些测试代码时,

int R = &x;   // This would also be an error

控制台显示:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

看来我的nVidia gpu正在工作。 但是我使用我的keras-gpu,并运行以下代码。

2019-01-19 09:34:15.794202: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-01-19 09:34:16.303681: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1405] Found device 0 with properties:
name: GeForce GTX 950M major: 5 minor: 0 memoryClockRate(GHz): 1.124
pciBusID: 0000:01:00.0
totalMemory: 2.00GiB freeMemory: 1.65GiB
2019-01-19 09:34:16.310913: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1484] Adding visible gpu devices: 0
2019-01-19 09:34:17.879659: I tensorflow/core/common_runtime/gpu/gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-01-19 09:34:17.884168: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971]      0
2019-01-19 09:34:17.886646: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] 0:   N
2019-01-19 09:34:17.890046: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1097] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1400 MB memory) -> physical GPU (device: 0, name: GeForce GTX 950M, pci bus id: 0000:01:00.0, compute capability: 5.0)
b'Hello, TensorFlow!'

我检查了任务管理器,并且只有我的英特尔集成显卡可以工作。 我尝试过

x_train,y_train = dataGenerate()
model = Sequential()
model.add(Dense(units=1,input_dim=1))
model.add(Dense(units=5))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('relu'))
model.add(Dense(units=10))
model.add(Activation('relu'))
model.add(Dense(units=5))
model.add(Activation('relu'))
model.add(Dense(units=1))

model = multi_gpu_model(model, 2)
model.summary()
model.compile(loss='mean_squared_error',optimizer = 'sgd')

history = model.fit(x_train,y_train,epochs=200,batch_size=10)

,但仍然无法正常工作。我试图将这些行添加到我的代码中,

os.environ["CUDA_VISIBLE_DEVICES"]="1"

控制台显示:

model = multi_gpu_model(model, 2)
model.summary()

gpu0是我的Intel图形。因此,事实证明我的keras-gpu无法检测到我的nvidia gpu。 这没有道理。我的张量流怎么可能检测到gpu但keras无法检测到。 我已经为这个问题工作了很多天,这让我发疯。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

您尝试做的事情没有任何意义,TensorFlow不支持Intel GPU,仅支持NVIDIA CUDA GPU,您的Intel GPU在TensorFlow中不可用,因此它始终只能看到一个GPU。

要使用多GPU,您至少需要2个NVIDIA CUDA GPU。