【问题标题】:Keras Machine Learning Code are not using GPUKeras 机器学习代码未使用 GPU
【发布时间】:2019-01-12 19:27:52
【问题描述】:

我使用 keras 和 tensorflow 作为我的后端。 我连接到带有两个 GPU (1080ti) 的服务器。 但是,当我运行我的代码时。我的代码只是简单地忽略了我强大的资源。 这里有一些信息

$nvidia-smi 在运行代码时:

我的 GPU 信息之一:

我确实在 1.9.0 版中安装了 tensorflow-gpu

$pip 显示张量流 GPU:

它似乎可以成功检测到我的gpu。

那么问题出在哪里?

【问题讨论】:

  • 请不要将日志作为图像发布,而是将它们包含在问题中并使用适当的标签。
  • 你说的tensorflow版本不是图中的那个。这可能意味着您安装了不同的版本(或者它只是一个错字)。我可以想到这种行为的两个原因: 1. 在您的代码中某处 GPU 上的执行被阻止。也许是因为设备放置。 2. 您启动程序的方式与图片中的不同,这是由于您的机器上严重安装了 tensorflow。您是否真的尝试在图片中向我们展示的交互式会话中运行?

标签: python tensorflow keras


【解决方案1】:

keras 有安装 tensorflow-cpu 的倾向。

检查 tensorflow-cpu 的 pip 列表并将其删除。 您也可以运行以下代码来尝试强制 TF 使用 GPU。

def get_available_devices():
   local_device_protos = device_lib.list_local_devices()
   return [x.name for x in local_device_protos]


get_available_devices()

with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)

with tf.Session() as sess:
    print (sess.run(c))

【讨论】:

    【解决方案2】:

    您可以通过 Tensorflow 指定运行设备:

    model = keras.models.Sequential()
    model.add(...)
    model.compile(...)
    
    with tensorflow.device('/device:GPU:0'):
        model_wc.fit(X_train, y_train, validation_data=(X_test, y_test), ...)
    model_wc.evaluate(X_test, y_test)
    

    另见Can I run Keras model on gpu?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-07
      • 2017-09-30
      • 2011-01-15
      • 2012-09-02
      • 2017-12-21
      • 1970-01-01
      • 2018-06-12
      相关资源
      最近更新 更多