【tensorflow1.12+tensorflow2.0环境搭建】bert+tensorflow+cuda+cudnn(windows系统)

目录

1 关于CUDA

1.1 超级计算简史

1.2 并行计算

1.3 cuda版本支持

2 关于TensorFlow

2.1 TensorFlow与Python及系统支持

2.2 TensorFlow配置GPU要求

3 错误环境卸载

3 双环境搭建

3.1 各部分版本确定

3.1.1 GPU与cuda

3.3 配置1.1.0虚拟环境

3.4 配置2.0.0虚拟环境

参考

1 关于CUDA

1.1 超级计算简史

  1. 高性能计算(HPC)涉及多个处理器或者计算机的使用,以高吞吐量和高效率来完成复杂任务。其不仅仅是一个计算架构,还可以认为是包括硬件系统、软件系统、编程平台及并行编程范例的一组元素列表。
  2. 异构计算:CPU(Central Processor Unit,中央处理器/主机处理器)与GPU(Graphics Processor Unit,图形处理器/设备处理器)技术混合,CPU计算适合处理控制密集型任务,GPU计算合适处理包含数据并行的计算密集型任务。
  3. 处理器结构:均以冯·诺依曼提出的理念为基础,处理器从存储器中取出指令、解码,然后执行命令。目前多应用哈佛体系结构,由三部分组成:内存(指令内存和数据内存)、中央处理单元(控制单元和算数逻辑单元)、输入/输出接口
  4. 传统CPU的作用:执行串行代码,包含特殊硬件,如,分支预测单元、多级缓存等
  5. GPU的作用:是为并行模式计算发挥性能。
  6. CUDA(Compute Unified Device Architecture,统一计算架构):易用编程接口,为无须学习复杂的着色语言或者图形处理原语而能进行GPU编程提供了可能。它是C语言的扩展,允许使用标准C进行CPU代码编程。CPU派生出运行在GPU上的多线程任务(又称为内核程序),GPU通过调度内核程序进行计算。
  7. Tesla系列板卡:等我有了钱。
  8. GeForce板卡:可以作为Tesla卡的替代卡。
  9. 显示适配器(显卡):我的电脑下:Intel(R) UHD Graphics 630和NVIDIA GeForce RTX 2060(更多关于显卡与GPU详见另一篇文章:【NVIDIA GeForce RTX 2060】_稷思的博客-CSDN博客)。

1.2 并行计算

  1. 并行计算:主要目标为提高运算速度。
  2. 串行代码:待解决问题划分为运算块,每个运算块执行一个指定任务,若运算块之间有执行次序则需要串行执行,若没有执行次序,则可以并发执行。
  3. 并行程序:所有包含并发执行任务的程序均为并行程序。并行算法的实现过程中,分析数据的相关性是最基本的内容,相关性是限制并行性的主要因素。新的并行计算机架构不断出现,导致并行程序可移植性具有挑战性。
  4. 并行性:任务并行(任务或函数可以独立地、大规模地并行执行)与数据并行(利用多核系统对数据进行分配,CUDA的意义)

1.3 cuda版本支持

表1. CUDA Toolkit and Minimum Compatible Driver Versions
CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 11.2.1 Update 1 >=460.32.03 >=461.09
CUDA 11.2.0 GA >=460.27.03 >=460.82
CUDA 11.1.1 Update 1 >=455.32 >=456.81
CUDA 11.1 GA >=455.23 >=456.38
CUDA 11.0.3 Update 1 >= 450.51.06 >= 451.82
CUDA 11.0.2 GA >= 450.51.05 >= 451.48
CUDA 11.0.1 RC >= 450.36.06 >= 451.22
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

2 关于TensorFlow

2.1 TensorFlow与Python及系统支持

TensorFlow支持多种客户端语言下的安装和运行。截至版本1.12.0,绑定完成并支持版本兼容运行的语言为C和Python,其它(试验性)绑定完成的语言为JavaScript、C++、Java、Go和Swift,依然处于开发阶段的包括C#、Haskell、Julia、Ruby、Rust和Scala。

TensorFlow提供Python语言下的四个不同版本:CPU版本(tensorflow)、包含GPU加速的版本(tensorflow-gpu),以及它们的每日编译版本(tf-nightly、tf-nightly-gpu)。TensorFlow的Python版本支持Ubuntu 16.04、Windows 7、macOS 10.12.6 Sierra、Raspbian 9.0及对应的更高版本,其中macOS版不包含GPU加速。安装Python版TensorFlow可以使用模块管理工具pip/pip3或anaconda并在终端直接运行。

2.2 TensorFlow配置GPU要求

配置GPU时要求系统有NVIDIA GPU驱动384.x及以上版本、CUDA Toolkit和CUPTI(CUDA Profiling Tools Interface)9.0版本、cuDNN SDK7.2以上版本。可选配置包括NCCL 2.2用于多GPU支持、TensorRT 4.0用于TensorFlow模型优化。

对于 1.15 及更早版本,CPU 和 GPU 软件包是分开的:

pip install tensorflow==1.15      # CPU
pip install tensorflow-gpu==1.15  # GPU

支持以下带有 GPU 的设备:CUDA® 架构为 3.5、5.0、6.0、7.0、7.5、8.0 或更高的 NVIDIA® GPU 卡。请参阅支持 CUDA® 的 GPU 卡列表。算力不可以低于3.5。

GPU 计算能力
GeForce RTX 2080 7.5
GeForce RTX 2070 7.5
GeForce RTX 2060 7.5

对Windows下的GPU配置,需要将CUDA、CUPTI和cuDNN的安装路径加入%PATH%环境变量,在DOS终端有如下操作:

SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64;%PATH%
SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include;%PATH%
SET PATH=C:\tools\cuda\bin;%PATH%

3 错误环境卸载

Win10中CUDA、cuDNN的安装与卸载 Win10中CUDA、cuDNN的安装与卸载_Sophia_fez的博客-CSDN博客_windows卸载cudnn

win10 卸载cuda win10 卸载cuda_mjiansun的专栏-CSDN博客_如何卸载cuda

直接进入控制面板卸载带cuda的就可以,然后删除cuda所在文件夹,cuDNN也就随之删除。

4 双环境搭建

4.1 各部分版本确定

当前唯一确定的条件是GPU版本与性能以及想要安装2.X和1.X两个版本,大概19年后python3.7支持TensorFlow了,但是像bert等还是在19年前出的,所以尽量是3.6版本的,各模型兼容性更大。

3.1.1 GPU与cuda

版本不对应会造成二义性,解决方式有很多,以下为个人解决方法。本人电脑配置为Intel(R) UHD Graphics 630+NVIDIA GeForce RTX 2060,进入NVIDIA控制面板后找到的详细信息如下表。根据表1提供的信息,456.87驱动版本除了最新的cuda11.2.0和cuda11.2.1,其他都没有问题,这里我选择CUDA 10.0进行安装,主要是根据后面的TensorFlow确定。

驱动程序版本: 456.87
CUDA 核心: 1920

故选择外部base环境版本为:TensorFlow2.0.0+cuda10.0+cuDNN7.4+python3.7.0;虚拟环境(命名为learn)版本(因为我的要尝试更低版本,所以直接安装的cpu版本)

3.1.2 TensorFlow-GPU与cuda、cuDNN

官网链接:在 Windows 环境中从源代码构建  |  TensorFlow(里面也有cpu版本的对应)

版本 Python 版本 编译器 构建工具 cuDNN CUDA
tensorflow_gpu-2.4.0 3.6-3.8 MSVC 2019 Bazel 3.1.0 8.0 11.0
tensorflow_gpu-2.3.0 3.5-3.8 MSVC 2019 Bazel 3.1.0 7.6 10.1
tensorflow_gpu-2.2.0 3.5-3.8 MSVC 2019 Bazel 2.0.0 7.6 10.1
tensorflow_gpu-2.1.0 3.5-3.7 MSVC 2019 Bazel 0.27.1-0.29.1 7.6 10.1
tensorflow_gpu-2.0.0 3.5-3.7 MSVC 2017 Bazel 0.26.1 7.4 10
tensorflow_gpu-1.15.0 3.5-3.7 MSVC 2017 Bazel 0.26.1 7.4 10
tensorflow_gpu-1.14.0 3.5-3.7 MSVC 2017 Bazel 0.24.1-0.25.2 7.4 10
tensorflow_gpu-1.13.0 3.5-3.7 MSVC 2015 update 3 Bazel 0.19.0-0.21.0 7.4 10
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 update 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 update 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 update 3 Cmake v3.6.3 5.1 8

3.3 配置2.0.0base环境

1 激活环境安装CUDA,镜像安装(可以安装,但是建议下载安装包后本地安装)CUDA Toolkit Archive | NVIDIA Developer

conda install cudatoolkit=10.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/

#再或者激活镜像环境后安装
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda install cudatoolkit=10.0

#再或者,换成中科大的,先删除清华镜像
conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
#此外,修改c盘user文件夹下的 .condarc 文件,删除defaults

3 下载安装对应版本cuDNN7.4,但是始终安装不上(报错),改成了安装7.6版本的就可以了。类似于安装cuda书写dos语句conda install cudnn=7.6,实际安装版本为7.6.5。下载链接: cuDNN Archive | NVIDIA Developer

4 安装TensorFlow,同样用语句即可。

pip install tensorflow==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

3.4 配置1.11.0虚拟环境

(base) C:\Users\q1348>conda create -n tf113

#提示
environment location: C:\Users\q1348\Anaconda3\envs\tf113

最后结果如下,输入conda info --envs显示当前已创建环境。 

安装虚拟环境下的spyder

pip install spyder
最后使用 spyder 打开新的环境即可.(每一个安装环境均有一个spyder)

参考

参考书籍:

1 《面向机器智能的TensorFlow实践》(2017年)(仅限于Linux和Mac os系统)

参考文章链接:

1(Windows8(10)同时安装多个版本的tensorflow:tensorflow 2.0.0 和 tensorflow 1.14)Windows8(10)同时安装多个版本的tensorflow: tensorflow 2.0.0 和 tensorflow 1.14_waitingwinter的博客-CSDN博客

2 anaconda安装tensorflow1.14.0 https://blog.csdn.net/duanerduan/article/details/106577001

3 python安装第三方库遇到 ERROR: Command errored out with exit status 1: (1条消息) python安装第三方库遇到 ERROR: Command errored out with exit status 1:_RIO小哥的博客-CSDN博客

4 NLP:win10+pycharm+tensorflow-gpu+bert吐血整理 https://blog.csdn.net/qq_42192693/article/details/104736719

5 Tensorflow2.0-GPU深度学习环境安装,踩坑后整理一步到位安装总结篇.Win10+Anaconda+Tensorflow2.0-GPU+Pycharm,强烈建议Anaconda很香 Tensorflow2.0-GPU深度学习环境安装,踩坑后整理一步到位安装总结篇.Win10+Anaconda+Tensorflow2.0-GPU+Pycharm,强烈建议Anaconda很香_第一段代码的博客-CSDN博客

6 GPU 支持 https://www.tensorflow.org/install/gpu

7 Tensorflow-gpu1.13.1 和 Tensorflow-gpu2.0.0共存之安装教程 Tensorflow-gpu1.13.1 和 Tensorflow-gpu2.0.0共存之安装教程 - 无聊就看书 - 博客园

8 【conda虚拟环境安装CUDA路径】_一苇以航丶的博客-CSDN博客_conda安装的cuda在哪

9 https://www.jianshu.com/p/a8b8bebc0c88

10 绕过Nvidia官方要求的注册或登陆步骤直接下载cuDNN的方法 绕过Nvidia官方要求的注册或登陆步骤直接下载cuDNN的方法_yinghai444的博客-CSDN博客_cudnn下载 

参考视频

1 tensorflow安装教程 TensorFlow安装教程_哔哩哔哩_bilibili

你可能感兴趣的:(机器学习,显卡,tensorflow,bert,windows)