我的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无法检测到。 我已经为这个问题工作了很多天,这让我发疯。 请帮帮我。
答案 0 :(得分:0)
您尝试做的事情没有任何意义,TensorFlow不支持Intel GPU,仅支持NVIDIA CUDA GPU,您的Intel GPU在TensorFlow中不可用,因此它始终只能看到一个GPU。
要使用多GPU,您至少需要2个NVIDIA CUDA GPU。