notice:适用于在conda中操作
版本选择
选择依据:显卡为NVIDIA系列 & 显卡计算能力 > 3.5
1 查询显卡型号
nvidia-smi
在 NVIDIA官网 查询到显卡(划横线)计算能力。
2 版本选择
CPU版本都适用,根据习惯的python选择即可。注意:tf版本不同可能会带来部分函数存在差异。
GPU要关注:CUDA 和 cuDNN,从NVIDA官网上下载。具体参见:博客
而查询已安装CUDA和cuDNN版本:
## CUDA
cat /usr/local/cuda/version.txt
## cuDNN
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
据此选择tensorflow版本 tf各版本依赖
3 测试
(1)测试代码:
import tensorflow as tf
tf.test.is_gpu_availvable()
(2)报错:
如果cuda版本不对,会报错
(3)解决:
需要重新安装cuda,为了不影响其他用户,可以直接在conda环境中装。
- check是否存在所需包,如:
conda search cudatoolkit
- 安装指定包
conda instal cudatoolkit==10.0.130
- 检查安装
conda list
之后在进行测试(1),为True即可
4 注意事项
- 如果是从零开始搭,根据需要,先下cuda,再下tf,最后弄cudnn,就能尽量避免测试出现False
- 如果已经有cuda和cudnn了在自己的conda中装cudatoolkit避免影响到别人也ok
修改程序
import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
只需要在程序开头添加两行行即可,其中“1”表示用第几块,运行前先用 nvidia-smi
查询空闲卡。
1 运行示例
import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "5"
# 显示可用几块GPU
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
# 显示具体哪块GPU用来运行
tf.debugging.set_log_device_placement(True)
# Create some tensors
a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
c = tf.matmul(a, b)
print(c)
with tf.Session() as sess:
print(sess.run(c))