之前都是使用tensorflow的cpu版本,没注意自己这台老人机居然有GPU。便决定试一试看看自己电脑能不能跑起GPU。(各种百度谷歌)记录如下:
首先:检查自己的GPU是否可以使用:
CUDA:https://developer.nvidia.com/cuda-gpus
接下来:需要安装CUDA + cuDNN。
刚开始无脑:使用CUDA10.0 +cuDNN 7 .4.2+tensorflow1.12发现报错如下(没截图):
File "C:\Anaconda3\envs\tensorflow\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper
_mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description)
File "C:\Anaconda3\envs\tensorflow\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "C:\Anaconda3\envs\tensorflow\lib\imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。
如果遇到如下错误可以参考:https://stackoverflow.com/questions/42011070/on-windows-running-import-tensorflow-generates-no-module-named-pywrap-tenso
反正我是没解决 (我猜是版本问题)....
1.首先确定你需要安装的版本(重点):版本貌似会出现很多我问题,建议多看看准备安装的版本问题。
参考:https://blog.csdn.net/lifuxian1994/article/details/81103530
确定好版本:CUDA9.0+cuDNN7.4.2
2.安装过程(看了很多,都不知道自己安装是否成功,这篇有检查环境确定你这一步没有错!!):https://blog.csdn.net/u010618587/article/details/82940528
打开命令提示符,输入:nvcc -V
出现如下类似信息:
3.安装tensorflow-gpu(巨烦...)因为我之前使用的是tensorflow-cpu版,已经安装过了环境,造成很多问题...
我之前有两个环境,直接pip install tensorflow-gpu之后用的是pycharm 去跑测试环境发现numpy报错???什么鬼,刚开始以为是版本问题各种重装装tensorflow-gpu1.5-1.9版本,然并卵(刚装好直接用cmd去测试吧....)。而且还出现pip缓存的问题(参考:https://blog.csdn.net/kangkanglou/article/details/78955298) 。
过程中用的是Anaconda Prompt,建议安装成功之后直接在里面敲:
没有报错肯定没问题。(生气的我,删除了之前的环境.....用基础的环境pip –no-cache-dir install tensorflow-gpu给我装了1.12的版本。)
报错图如下:
3.最后
import os
from tensorflow.python.client import device_lib
import tensorflow as tf
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "99"
if __name__ == "__main__":
print(device_lib.list_local_devices())
# 使用CPU进行计算
with tf.device("/gpu:0"): #使用GPU 如果是cpu改为cpu
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2])
c = tf.matmul(a, b)
# 查看计算时硬件的使用情况
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))
运行结果如下:
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 3087808467687446459
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 1470421401
locality {
bus_id: 1
links {
}
}
incarnation: 9473933570797557043
physical_device_desc: "device: 0, name: GeForce 840M, pci bus id: 0000:04:00.0, compute capability: 5.0"
]
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce 840M, pci bus id: 0000:04:00.0, compute capability: 5.0
MatMul: (MatMul): /job:localhost/replica:0/task:0/device:GPU:0
Const: (Const): /job:localhost/replica:0/task:0/device:GPU:0
Const_1: (Const): /job:localhost/replica:0/task:0/device:GPU:0
[[22. 28.]
[49. 64.]]
Process finished with exit code 0
出现这些说明没问题的 。终于ok....
如有建议和意见联系我,不胜感激。