我在 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 安装。我现在很困惑。