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

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

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

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

可用设备为:

1
2
3
4
5
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}]  

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

pip3 list

各应用版本为:

1
2
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

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

复制代码
2018-09-04 10:51:22.996654: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1405] Found device 0 with properties: 
name: GeForce GTX 1060 5GB major: 6 minor: 1 memoryClockRate(GHz): 1.7085
pciBusID: 0000:01:00.0
totalMemory: 4.94GiB freeMemory: 4.23GiB
2018-09-04 10:51:22.996666: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1484] Adding visible gpu devices: 0
2018-09-04 10:51:23.189923: I tensorflow/core/common_runtime/gpu/gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix:
2018-09-04 10:51:23.189953: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971]      0 
2018-09-04 10:51:23.189959: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] 0:   N 
2018-09-04 10:51:23.190105: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1097] Created TensorFlow device (/device:GPU:0 with 3969 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 5GB, pci bus id: 0000:01:00.0, compute capability: 6.1)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 15761951721866580392
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 4161994752
locality {
  bus_id: 1
  links {
  }
}
incarnation: 16066826866269340415
physical_device_desc: "device: 0, name: GeForce GTX 1060 5GB, pci bus id: 0000:01:00.0, compute capability: 6.1"
]
复制代码

 

posted @   可可心心  阅读(66587)  评论(2编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示