tensorflow gpu仅在CPU上运行

2024-02-18

我在 Windows 10 上安装了 Anaconda-Navigator 和所有必需的 Nvidia/Cuda 软件包,创建了一个名为 tensorflow-gpu-env 的新环境,更新了 PATH 信息等。当我运行模型时(使用tensorflow.keras),我看到 CPU 利用率显着增加,GPU 利用率为 0%,并且模型只是不训练。

我运行了一些测试来确保事情看起来如何:

print(tf.test.is_built_with_cuda())
True

上面的输出(“True”)看起来是正确的。

另一种尝试:

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

Output:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 1634313269296444741
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 1478485606
locality {
  bus_id: 1
  links {
  }
}
incarnation: 16493618810057409699
physical_device_desc: "device: 0, name: GeForce 940MX, pci bus id: 0000:01:00.0, compute capability: 5.0"
]

到目前为止一切顺利...稍后在我的代码中,我使用以下代码开始训练:

history = merged_model.fit_generator(generator=train_generator,
                                     epochs=60,
                                     verbose=2,
                                     callbacks=[reduce_lr_on_plateau],
                                     validation_data=val_generator,
                                     use_multiprocessing=True,
                                     max_queue_size=50,
                                     workers=3)

我还尝试按如下方式进行培训:

with tf.device('/gpu:0'):
    history = merged_model.fit_generator(generator=train_generator,
                                         epochs=60,
                                         verbose=2,
                                         callbacks=[reduce_lr_on_plateau],
                                         validation_data=val_generator,
                                         use_multiprocessing=True,
                                         max_queue_size=50,
                                         workers=3)

无论我如何开始训练,它都永远不会开始训练,我不断看到 CPU 利用率增加而 GPU 利用率为 0%。

为什么我的tensorflow-gpu安装只使用CPU?花了几个小时,实际上没有任何进展。

ADDENDUM

当我跑步时conda list在控制台上,我看到有关张量流的以下内容:

tensorflow-base           1.11.0          gpu_py36h6e53903_0
tensorflow-gpu            1.11.0                    <pip>

这个张量流基础是什么?它会引起问题吗?在安装tensorflow-gpu之前,我确保使用conda和pip卸载了tensorflow和tensorflow-gpu;然后使用安装tensorflow-gpupip。我不确定这个张量流基础是否与我的tensorflow-gpu安装。

附录2看起来tensorflow-base是conda的一部分,因为我可以用以下命令卸载它conda uninstall tensorflow-base。我仍然安装了tensorflow-gpu,但现在无法再导入tensorflow。它说“没有名为tensorflow的模块”。看来我的 conda 环境没有看到我的 tensorflor-gpu 安装。我现在很困惑。


根据网络的大小,您的 CPU 大部分时间都在加载数据。

由于您使用的是 Python 生成器,因此您的大部分时间都花在打开文件的 Python 代码上。生成器可能是您的管道的瓶颈。

数据加载后,可能会立即在 GPU 上进行评估,导致 GPU 利用率几乎为 0%,因为您的 Gpu 一直在等待新数据。您可以尝试使用 TensorFlowdataset https://www.tensorflow.org/api_docs/python/tf/data/DatasetAPI。 tfrecords 的加载时间非常快。看看这个article https://medium.com/@moritzkrger/speeding-up-keras-with-tfrecord-datasets-5464f9836c36?source=linkShare-b7d1e0266b3-1540036306

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tensorflow gpu仅在CPU上运行 的相关文章

随机推荐