tensorflow 使用CPU而不使用GPU的问题解决

时间:2024-09-10 12:05:56

今天发现一个怪现象,在训练keras时,发现不使用GPU进行计算,而是采用CPU进行计算,导致计算速度很慢。

用如下代码可检测tensorflow的能使用设备情况:

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

可用设备为:

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}]  

原来只有一个CPU设备可用了。于是检查下tensorflow的版本情况:

pip3 list

各应用版本为:

tensorflow          1.10.1
tensorflow-gpu 1.9.0

原来我升级了tensorflow版本,忘记了升级tensorflow-gpu版本,现在两个版本有代差,而tensorflow默认选择版本高的CPU版本来计算了。

那就升级tensorflow-gpu吧:

pip3 install --index-url http://pypi.douban.com/simple --trusted-host pypi.douban.com --upgrade tensorflow-gpu

再次检测可用设备情况,结果如下:

-- ::22.996654: I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Found device  with properties:
name: GeForce GTX 5GB major: minor: memoryClockRate(GHz): 1.7085
pciBusID: ::00.0
totalMemory: .94GiB freeMemory: .23GiB
-- ::22.996666: I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Adding visible gpu devices:
-- ::23.189923: I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Device interconnect StreamExecutor with strength edge matrix:
-- ::23.189953: I tensorflow/core/common_runtime/gpu/gpu_device.cc:]
-- ::23.189959: I tensorflow/core/common_runtime/gpu/gpu_device.cc:] : N
-- ::23.190105: I tensorflow/core/common_runtime/gpu/gpu_device.cc:] Created TensorFlow device (/device:GPU: with MB memory) -> physical GPU (device: , name: GeForce GTX 5GB, pci bus id: ::00.0, compute capability: 6.1)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit:
locality {
}
incarnation:
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit:
locality {
bus_id:
links {
}
}
incarnation:
physical_device_desc: "device: 0, name: GeForce GTX 1060 5GB, pci bus id: 0000:01:00.0, compute capability: 6.1"
]