Windows10+RTX显卡:TensorFlow-GPU安装与使用完整指南(踩坑无数血泪教训)

配置环境
根据需要在https://repo.anaconda.com/archive/
下载对应版本的conda,主要是py版本和tf-gpu的对应
#------------------主流tfgpu所对应的anaconda,py,toolkit版本
2.2:Anaconda - 2020,Python - 3.7.7,cudatoolkit - 10.1,cudnn - 7.6.5
1.14.0或1.15:Anaconda3 - 5.2.0,Python - 3.6,cudatoolkit - 10.0.130,cudnn - 7.6

conda源(在C盘用户文件夹.condarc 用记事本打开):

channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - defaults
show_channel_urls: true

defaults的话安装各种包更齐全,更新,但是需要有很快的机场,没有的同学还是删掉把(滑稽

管理员运行Anaconda Prompt

#conda install tensorflow-gpu==2.2
#conda install tensorflow-gpu==1.14.0

(1.15也可以,不过个人感觉1.15是和2.0同时发布的,可能加入了一些促使你转到2的东西,1.14稳定)

#pip install tensorflow-gpu==1.15 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

(这个也可以用,不过一般绝对建议conda,除非用不了或者速度慢)

另附实用conda search+你要装的包比如上面的tensorflow
conda search tensorflow
会显示所有你可以安装的tf版本

在NV官网下载cudatoolkit
(在前面安装tfgpu时会附带安装toolkit,但是仅限于基本的功能,要使用比如说 watch,需要去官网下然后再安装)

https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
这是10.0的地址,需要其他版本的同学就自行顺藤摸瓜咯

安装完后将C:\Program Files\NVIDIA Corporation\NVSMI加入path
就可以在cmd中使用smi功能:
nvidia-smi:显示所有GPU的当前信息状态
watch -n 1 -d nvidia-smi:实时刷新并高亮显示状态

不过作者的RTX2060安装之后nvidia-smi.exe在sys32文件夹里面,而且找不到NVSMI文件夹…可能是因为安装的时候没有选择它提供的那个驱动版本的原因吧
不过这个都不是大事,用GPUZ和1909的任务管理器一样可以监控显卡状态,玩游戏显示显卡状态的东西还不够多吗2333

测试代码

import tensorflow
import os
from tensorflow.python.client import device_lib
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.5)  
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options,log_device_placement=True))
print(device_lib.list_local_devices())
gpu_ok = tf.test.is_gpu_available()
print("\nAre we using GPU? -",gpu_ok)
print(tf.__version__)


#指定CPU执行
#with tf.device('/cpu:0'):
#显示实际是哪个设备在执行训练
#tf.Session(config=tf.ConfigProto(log_device_placement=True))
#多个程序同时使用GPU,fraction是百分比值,根据显卡情况自行设定。比如作者就玩个枫之谷,可以让它占用80%
#gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.8)  
#sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options,log_device_placement=True))
#启用TensorCore(有RTX的同学有福了)
os.environ['TF_ENABLE_AUTO_MIXED_PRECISION'] = '1'

要发挥gpu的最大性能,请将每轮训练的batch尽可能地调到最大,最大,最大…
否则按照教程使用CPU的batch量,你会发现GPU训练比CPU还慢…

Jupyter指定路径
把快捷方式里的%USERPROFILE% 分号中间换成你的目录

环境安全
安装好了的环境就不要去更改任何一个组件的版本了,组件互相依赖,
比如作者升级了一个spyder它就会顺带升级很多东西,然后整个环境就坏掉了,Jupyter什么的全部启动闪退,只能推倒重来 /掩面哭

9.END
开始你的训练之旅把!

你可能感兴趣的:(MachineLearning)