如何在 GPU 上使用 Keras?

Posted

技术标签:

【中文标题】如何在 GPU 上使用 Keras?【英文标题】:How to use Keras with GPU? 【发布时间】:2018-09-04 10:18:59 【问题描述】:

我已经成功安装了带有 GPU 的 TensorFlow。当我运行以下脚本时,我得到了这个结果:

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:140] 您的 CPU 支持此 TensorFlow 二进制文件不支持的指令 编译使用:AVX2 2018-03-26 找到具有属性的设备 0:名称:GeForce GTX 970 主要:5 次要: 2 memoryClockRate(GHz): 1.253 pciBusID: 0000:01:00.0 totalMemory: 4.00GiB freeMemory: 3.31GiB 2018-03-26 11:47:03.186046: IC:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:第1312章】 添加可见 gpu 设备:0 2018-03-26 11:47:04.062049: I C:\tf_jenkins\workspace\rel-win\M\windows-gpu\PY\36\tensorflow\core\common_runtime\gpu\gpu_device.cc:993] 创建 TensorFlow 设备 (/device:GPU:0 with 3043 MB memory) -> 物理 GPU(设备:0,名称:GeForce GTX 970,pci 总线 ID: 0000:01:00.0,计算能力:5.2)[名称:“/device:CPU:0” device_type: "CPU" memory_limit: 268435456 locality 化身: 8082333747214375667 ,名称:“/device:GPU:0” 设备类型:“GPU” memory_limit: 3190865920 locality bus_id: 1 化身: 1190887510488091263 physical_device_desc:“设备:0,名称:GeForce GTX 970, pci bus id: 0000:01:00.0, 计算能力: 5.2" ]

例如,如果我在 Keras 中运行 CNN,它会自动使用 GPU 吗?还是我必须编写一些代码来强制 Keras 使用 GPU?

例如,对于 MNIST 数据集,我将如何使用 GPU?

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3),
                 activation='relu',
                 input_shape=input_shape))
model.add(Conv2D(64, (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(num_classes, activation='softmax'))

model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

model.fit(x_train, y_train,
          batch_size=batch_size,
          epochs=epochs,
          verbose=1,
          validation_data=(x_test, y_test))

【问题讨论】:

【参考方案1】:

您不必明确告诉 Keras 使用 GPU。如果有可用的 GPU(从您的输出中我可以看出是这种情况),它将使用它。

您还可以通过在模型训练期间查看 GPU 的使用情况来凭经验检查这一点:如果您使用的是 Windows 10,则只需打开任务管理器并查看“性能”选项卡(参见 here )。

【讨论】:

好的,谢谢,但是如果我希望它专门使用 CPU,是否可以? 看这里***.com/questions/40690598/…

以上是关于如何在 GPU 上使用 Keras?的主要内容,如果未能解决你的问题,请参考以下文章

如何确保 Keras 使用 GPU 和 tensorflow 后端?

如何使用 tensorflow 在 keras 中禁用 GPU?

如何使用 Tensorflow-GPU 和 Keras 修复低挥发性 GPU-Util?

如何检查keras tensorflow后端是GPU还是CPU版本? [复制]

无论如何在带有 AMD GPU 的 Mac 中使用 Keras?

如何使用 GPU 构建 Keras (TF) 模型?