(update 2021.7.1)
几次重装之后遇到新问题,因为要升级到2.3版本了,所以在环境配置上又走了不少坑,这里分享一下:
1、anaconda装在C盘,path选项勾选
2、在prompt中使用conda install来安装tensorflow-gpu而不要用pip
3、2.3版本对应cuda其实也不需要很新,我这里用的是cuda_10.1.105_418.96
5.安装完后大概率出现找不到cudnnx.x等dll找不到的问题,解决方案:安装cudnn7.6.5,我的情况是不记得什么时候安装包目录下就有一个cudnn-10.0-windows10-x64-v7.6.5.32的压缩包,直接解压,对应文件夹复制到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1下面就可以成功启用GPU了
(update 2021.12.31)
对面计院新到了一台电脑10900K+3090,我同学讲不会配置tf-gpu环境,于是新一轮的折腾又开始了
1.对于这种新机器 完全可以安装最新的anaconda,还是要装在C盘,path选项勾选
2.可以使用pip来安装tf-gpu
3.装好上面两个之后安装最新版NV驱动,再安装最新版CUDA,然后需要在系统环境变量中加入下面几条(好像安装cuda之后就自己添加了第一条了)。
重启 此时jupyter应该可以正常的调用GPU了,但如果出现没调用成功,jpt的控制台显示Could not load library cudnn_cnn_infer64_8.dll. Error code 126。那么需要去官网下载上一个版本的cuDNN 并替换C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5对应文件,至于为啥我也不懂 这里是引自另一位博主的方法
https://blog.csdn.net/qq_41112170/article/details/121878288
然后就可以正常的调用并训练模型了
配置环境
根据需要在https://repo.anaconda.com/archive/
anaconda对应py版本表https://blog.csdn.net/yuejisuo1948/article/details/81043823
下载对应版本的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.5
conda源(在C盘用户文件夹.condarc 用记事本打开):
注意:实践发现有时候装完conda之后不会创建这个文件,这时候在conda prompt运行
conda config --set show_channel_urls yes
conda config --set ssl_verify false
来创建文件再编辑
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- defaults
show_channel_urls: true
defaults的话安装各种包更齐全,更新,但是需要有很快的机场,没有的同学还是删掉把(滑稽
管理员运行Anaconda Prompt
conda install tensorflow-gpu==2.1
conda install tensorflow-gpu==1.14.0
另附实用conda search+你要装的包比如上面的tensorflow
conda search tensorflow
会显示所有你可以安装的tf版本
在NV官网下载CUDA
(在前面安装tfgpu时会附带安装toolkit,但是仅限于基本的功能,比如在新版本的TF(2.6)中调用keras就出现了提示找不到keras的情况)
测试是否能正常调用
import tensorflow as tf
import numpy as np
import pandas as pd
from tensorflow.python.client import device_lib
%matplotlib inline
#comment out line above if you are not using Jupyter
import matplotlib.pyplot as plt
import os
print(device_lib.list_local_devices())
gpu_ok = tf.config.list_physical_devices(device_type="GPU")
print("\nAre we using GPU? -",tf.test.is_gpu_available())
#指定CPU执行
#with tf.device('/cpu:0'):
#显示实际是哪个设备在执行训练
#tf.Session(config=tf.ConfigProto(log_device_placement=True))
#多个程序同时使用GPU,fraction是百分比值,根据显卡情况自行设定。比如作者就玩个枫之谷,可以让它占用80%,但是这个是TF1的代码,TF2不再认了,我还没去找TF2调整这个部分的代码,有需要的同学自行百度
#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什么的全部启动闪退,只能推倒重来 /掩面哭
虚拟环境和在虚拟环境使用jpy
conda create --name *yours*
conda actiave *yours*
conda jupyter notebook
END
开始你的训练之旅把!