TensorFlow(1)开发环境搭建

Platform

  • Windows 10
    • or Ubuntu 16.04/18.04
  • Anaconda,Python 3.7
  • CUDA 10.0  NVIDIA CUDA
    • cuDNN
  • TensorFlow 2.0
  • PyCharm

如果电脑NVIDIA没有安装驱动时,需要执行以下步骤

1、安装ANACONDA

安装后,cmd→控制台→conda list

2、安装CUDA

  • NVIDIA显卡
  • CUDA安装
    • 驱动
    • CUPIT
  • cuDNN安装  动态库
    • https://developer.nvidia.com/rdp/cudnn-download→Download cuDNN for CUDA xx.xx
      • 解压
      • CUDA 文件夹改名为 cudnn
  • PATH配置
    • System Path  安装CUDA自动添加完成
    • ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\bin
    • ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\libnvvp
    • 手动添加CUPTI路径和cuDNN
      • 点击New增加条目
      • ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\cudnn\bin
      • ..\NVIDIA GPU Computing Toolkit\CUDA\vxx.0\extras\CUPTI\libx64
  • 测试  nvcc -V

3、TensorFlow安装

  • # cpu version
  • pip install --upgrade tensorflow
  • # gpu version
  • pip install --upgrade tensorflow-gpu
  • # or install specific version
  • # cpu-version
  • pip install tensorflow=2.0.0-alpha0
  • # gpu-version
  • pip install tensorflow-gpu=2.0.0-alpha0

4、查看TensorFlow是否安装成功

xxx> cmd→where ipython

xxx> ipython    打开交互工具

import tensorflow as tf

tf.test.is_gpu_available()


电脑已安装NVIDIA驱动,并安装Anaconda后,打开Anaconda Prompt

参考网址:TensorFlow安装与环境配置 — 简单粗暴 TensorFlow 2 0.4 beta 文档

                  从源代码构建  |  TensorFlow

在conda中创建环境安装tensorflow

1、执行命令创建环境               conda create -n tensorflow python=3.8

2、进入对应tensorflow环境    conda activate tensorflow

3、在环境中执行命令

pip install tensorflow-gpu==2.4.0 -i https://pypi.doubanio.com/simple   

(注意:此处版本需要与下表对应)

4、测试tensorflow是否安装成功

在Anaconda Prompt中进入python,执行命令

import tensorflow as tf

tf.test.is_gpu_available()    此时输出False

并报错找不到cudart64_110.dll

cudart64_110.dll 是存在于CUDA Toolkit中的,并且110对应CUDA 11.0版本

TensorFlow(1)开发环境搭建_第1张图片

因此需要执行进行下面操作:

1、检查NVIDIA 驱动程序安装是否完成,可在命令行cmd下使用

nvidia-smi

若成功会打印当前系统安装的NVIDIA驱动信息

2、CUDA Toolkit 和 cuDNN 的安装 

在 Anaconda 环境下,推荐使用

conda install cudatoolkit=X.X
conda install cudnn=X.X.X

安装 CUDA Toolkit 和 cuDNN,其中 X.X 和 X.X.X 分别为需要安装的 CUDA ToolkitcuDNN 版本号,必须严格按照TensorFlow官方说明版本对应

TensorFlow(1)开发环境搭建_第2张图片

安装前,使用

conda search cudatoolkit

conda search cudnn

搜索 conda 源中可用的版本号

想安装11.0cudatoolkit+8.0cuda,在conda中找不到,则使用以下命令:

conda search cudnn -c conda-forge

执行命令安装cudnn8.0 

conda install cudnn==8.0.5.39 -c conda-forge

执行命令安装CUDA Toolkit11.0

conda install cudatoolkit=11.0

3、都安装完成后,再次检查TensorFlow GPU版本是否能够运行

(1)进入环境 conda activate 环境名称

(2)执行以下代码

import tensorflow as tf

tf.test.is_gpu_available()

如果显示为True,则安装成功

备注:为什么安装TensorFlow需要下载CUDA Toolkit和cuDNN,而安装PyTorch不需要安装?

原因:安装PyTorch时,在官网找到执行CUDA版本后执行的命令

conda install pytorch torchvision torchaudio cudatoolkit=11.1 
-c pytorch -c conda-forge

已经安装了runtime,所以不需要安装

CUDA有两个主要的API,分别为 runtime(运行时)和driver API,这两种API都有对应的CUDA版本

  • 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。
  • 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。

TensorFlow(1)开发环境搭建_第3张图片

补充:

 CUDA、cuDNN、CUDA Toolkit、NVCC区别

  • CUDA:为“GPU通用计算”构建的运算平台。
  • cuDNN:为深度学习计算设计的软件库。
  • CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
  • CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。
    (NVCC 是CUDA的编译器,只是 CUDA Toolkit 中的一部分)

注:CUDA Toolkit 完整和不完整的区别:

在安装了CUDA Toolkit (Pytorch)后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,不需要重新进行编译过程。如需要为 Pytorch 框架添加 CUDA 相关的拓展时(Custom C++ and CUDA Extensions),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit。

CUDA Toolkit构成

一般的结构中,include 包含头文件,bin 包含可执行文件,lib 包含程序实现文件编译生成的library,src包含源代码,doc或help包含文档,samples包含例子。

Compiler:NVCC
Tools:分析器profiler、调试器debuggers等
Libraries:科学库和实用程序库
CUDA Samples:CUDA和library API的代码示例
CUDA Driver:驱动,需要与“有CUDA功能的GPU”和“CUDA”都兼容。CUDA工具包都对应一个最低版本的CUDA Driver,CUDA Driver向后兼容。

NVCC简介

  • nvcc其实就是CUDA的编译器,cuda程序有两种代码, 在cpu上的host代码和在gpu上的device代码。
  • .cu后缀:cuda源文件,包括host和device代码
  • nvcc编译例子
nvcc –cuda x.cu –keep
# x.cudafe1.gpu
# x.cudafe2.gpu
# x.cudafe1.cpp

你可能感兴趣的:(TensorFlow,深度学习,python,tensorflow,人工智能,python)