【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 ToolkitLinux x86_64 Driver VersionWindows 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,绑定完成并支持版本兼容运行的语言为CPython,其它(试验性)绑定完成的语言为JavaScriptC++JavaGoSwift,依然处于开发阶段的包括C#HaskellJuliaRuby、Rust和Scala

TensorFlow提供Python语言下的四个不同版本:CPU版本(tensorflow)、包含GPU加速的版本(tensorflow-gpu),以及它们的每日编译版本(tf-nightly、tf-nightly-gpu)。TensorFlow的Python版本支持Ubuntu 16.04、Windows 7macOS 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 20807.5
GeForce RTX 20707.5
GeForce RTX 20607.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 版本编译器构建工具cuDNNCUDA
tensorflow_gpu-2.4.03.6-3.8MSVC 2019Bazel 3.1.08.011.0
tensorflow_gpu-2.3.03.5-3.8MSVC 2019Bazel 3.1.07.610.1
tensorflow_gpu-2.2.03.5-3.8MSVC 2019Bazel 2.0.07.610.1
tensorflow_gpu-2.1.03.5-3.7MSVC 2019Bazel 0.27.1-0.29.17.610.1
tensorflow_gpu-2.0.03.5-3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.15.03.5-3.7MSVC 2017Bazel 0.26.17.410
tensorflow_gpu-1.14.03.5-3.7MSVC 2017Bazel 0.24.1-0.25.27.410
tensorflow_gpu-1.13.03.5-3.7MSVC 2015 update 3Bazel 0.19.0-0.21.07.410
tensorflow_gpu-1.12.03.5-3.6MSVC 2015 update 3Bazel 0.15.079
tensorflow_gpu-1.11.03.5-3.6MSVC 2015 update 3Bazel 0.15.079
tensorflow_gpu-1.10.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.9.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.8.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.7.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.6.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.5.03.5-3.6MSVC 2015 update 3Cmake v3.6.379
tensorflow_gpu-1.4.03.5-3.6MSVC 2015 update 3Cmake v3.6.368
tensorflow_gpu-1.3.03.5-3.6MSVC 2015 update 3Cmake v3.6.368
tensorflow_gpu-1.2.03.5-3.6MSVC 2015 update 3Cmake v3.6.35.18
tensorflow_gpu-1.1.03.5MSVC 2015 update 3Cmake v3.6.35.18
tensorflow_gpu-1.0.03.5MSVC 2015 update 3Cmake v3.6.35.18

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

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

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

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

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

参考视频

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自编译tensorflow: 1.python3.5,tensorflow1.12; 2.支持cuda10.0,cudnn7.3.1,TensorRT-5.0.2.6-cuda10.0-cudnn7.3; 3.无mkl支持; 软硬件硬件环境:Ubuntu16.04,GeForce GTX 1080 TI 配置信息: hp@dla:~/work/ts_compile/tensorflow$ ./configure WARNING: --batch mode is deprecated. Please instead explicitly shut down your Bazel server using the command "bazel shutdown". You have bazel 0.19.1 installed. Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3 Found possible Python library paths: /usr/local/lib/python3.5/dist-packages /usr/lib/python3/dist-packages Please input the desired Python library path to use. Default is [/usr/local/lib/python3.5/dist-packages] Do you wish to build TensorFlow with XLA JIT support? [Y/n]: XLA JIT support will be enabled for TensorFlow. Do you wish to build TensorFlow with OpenCL SYCL support? [y/N]: No OpenCL SYCL support will be enabled for TensorFlow. Do you wish to build TensorFlow with ROCm support? [y/N]: No ROCm support will be enabled for TensorFlow. Do you wish to build TensorFlow with CUDA support? [y/N]: y CUDA support will be enabled for TensorFlow. Please specify the CUDA SDK version you want to use. [Leave empty to default to CUDA 10.0]: Please specify the location where CUDA 10.0 toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-10.0 Please specify the cuDNN version you want to use. [Leave empty to default to cuDNN 7]: 7.3.1 Please specify the location where cuDNN 7 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-10.0]: Do you wish to build TensorFlow with TensorRT support? [y/N]: y TensorRT support will be enabled for TensorFlow. Please specify the location where TensorRT is installed. [Default is /usr/lib/x86_64-linux-gnu]://home/hp/bin/TensorRT-5.0.2.6-cuda10.0-cudnn7.3/targets/x86_64-linux-gnu Please specify the locally installed NCCL version you want to use. [Default is to use https://github.com/nvidia/nccl]: Please specify a list of comma-separated Cuda compute capabilities you want to build with. You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus. Please note that each additional compute capability significantly increases your build time and binary size. [Default is: 6.1,6.1,6.1]: Do you want to use clang as CUDA compiler? [y/N]: nvcc will be used as CUDA compiler. Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]: Do you wish to build TensorFlow with MPI support? [y/N]: No MPI support will be enabled for TensorFlow. Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native -Wno-sign-compare]: Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: Not configuring the WORKSPACE for Android builds. Preconfigured Bazel build configs. You can use any of the below by adding "--config=" to your build command. See .bazelrc for more details. --config=mkl # Build with MKL support. --config=monolithic # Config for mostly static monolithic build. --config=gdr # Build with GDR support. --config=verbs # Build with libverbs support. --config=ngraph # Build with Intel nGraph support. --config=dynamic_kernels # (Experimental) Build kernels into separate shared objects. Preconfigured Bazel build configs to DISABLE default on features: --config=noaws # Disable AWS S3 filesystem support. --config=nogcp # Disable GCP support. --config=nohdfs # Disable HDFS support. --config=noignite # Disable Apacha Ignite support. --config=nokafka # Disable Apache Kafka support. --config=nonccl # Disable NVIDIA NCCL support. Configuration finished 编译: bazel build --config=opt --verbose_failures //tensorflow/tools/pip_package:build_pip_package 卸载已有tensorflow: hp@dla:~/temp$ sudo pip3 uninstall tensorflow 安装自己编译的成果: hp@dla:~/temp$ sudo pip3 install tensorflow-1.12.0-cp35-cp35m-linux_x86_64.whl

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值