TensorFlow 环境配置

先戴好痛苦面具先,,,从下午配环境配到晚上,太顶了。废话不多说,直接上操作干货。

查看本机电脑的GPU配置
  • 右击屏幕,点击NVIDIA 控制面板

    f0eb1bd6b3f00a5f38c7faa664a964f

    • 点击系统信息

      9a19e3d463525a943c8b3b4bb026a57

  • 查看CUDA版本信息

    978355ed8ed1e15d3fcb267865ac21e

然后在网站CUDA Toolkit)下载对应版本即可(我这里对应11.1.1版本)

278d73413d301e5d1908468939514af

  • 选择好相应的系统配置版本

    e653b003bc050a6eb0dc0fdbe39efd7

  • 双击下载好的安装程序,选择自定义安装。虽然我有下载visual studio 2022,但是还是不能选择VS才可以

    83cad407b5144dc25c692f5cf72efa6

  • 打开终端输入nvcc -V,若输出以下字符则表示安装成功

    be5a52f96e4a7e4ce324aade93a5db4

    • 在网站cuDNN中下载对应版本的cuDNN,在下载前需要注册账号并同意条款才可下载,记住相应的版本及操作系统要选好才行

      点击platform,选择cuDNN

      83aa295a07fce120d9db43ab1944ecb

      点击Download cuDNN Library

      736969d398c161051d487a0aa44f4ea

      选择好相应的版本配置

      0a9e95fc6d893dfff5a3195cbd94b77

      安装后得到的是cuDNN的exe文件,双击该文件后选择自定义,然后一路默认即可——它会默认在C盘,然后配好相应的路径,如果修改路径的话,后续又要去修改环境变量了。因此,建议C盘空间还可以有30G容量的话,直接全部默认路径安装即可,省去后续修改环境变量的麻烦。

    • 在终端输入nvidia-smi查看cuDNN是否安装成功,安装成功后如图所示

      a5323c131ecf485a1b4d16b73e5673f

    • 可以在Anaconda中创建一个虚拟环境

      conda create -n tengpu python=3.7
    • 激活Anaconda中名为”tengpu”的虚拟环境

      conda activate tengpu
    • 安装2.5.0版本的tensorflow-gpu

      pip install tensorflow-gpu==2.5.0
    • 在终端进入python模式

      42b994f80dd6ef37c6a6f950067523d

    • 输入命令

      import tensorflow as tf
      tf.config.list_physical_deevices('GPU')

      如下图所示的话则安装成功

      082370eaa23d3042d650d37ead8c38b

虚拟环境下,连接jupyter notebook

​ 命令行中写python代码真的是场灾难,因此可以用Anaconda中的jupyter notebook来写代码,前提是需要配置好相应的jupyter notebook的kernel内核,不然它用的是Anaconda自身默认的kernel,而与你刚建立的虚拟环境没半点关系。

  • 具体实现过程

    • 假设我要进入刚才创建的名为“tengpu”虚拟环境,需输入

      conda activate tengpu
    • 然后在当前虚拟环境中安装ipykernel:

      conda install ipykernel
    • 然后生成tengpu的运行内核

      python -m ipykernel install --user --name tengpu --display-name "tengpu"
      # 其中tengpu是jupyter notebook显示虚拟环境tengpu的名字
    • 切换jupyter notebook内核即可

      95939a7b90ebd0efea553a54e3a731c

    • 测试的代码

      import tensorflow as tf
      text = tf.constant("Hello TensorFlow 2.0")
      print(text)