背景:在日常的开发中,有时候的代码需要tensorflow1.x版本,但有时候要用到tensorflow2.x版本(或python版本切换),所以需要虚拟环境来安装不同的版本,不同的虚拟环境内安安装的包是独立的,互相之间不会受到影响。
当然tensorflow1.x的代码,也可以在tensorflow2.x版本完美运行,只需要在开头加上如下两句:
import tensorflow.compat.v1 as tf #替换原来的import tensorflow as tf
tf.disable_v2_behavior()
一般每个项目(project)可以设置一个虚拟环境,file->setting->project->project interpreter,就是下图:
点击add..出现下图:
创建一个新的项目:
此时,我们新建的项目是基于你选的环境,然后你可以在你选环境中安装相应的包。打开cmd终端,切换到D:\pycharm\csdn\venv\Scripts(你的虚拟环境所在目录下的Scripts目录) 目录,如下图:
可以看到,此时新建的虚拟环境只安装了pip,下面我们试一下安装numpy
在该目录下输入pip install numpy -i https://pypi.douban.com/simple/
可以看到多了一个numpy。
下面介绍在这个环境下安装tensorflow-gpu==2.0,安装tensorflow-gpu版本,比安装numpy要多几个步骤,具体如下:
pip install tensorflow-gpu==1.10.0 -i https://pypi.douban.com/simple/ (假设你在其他环境已经安装版本1.10.0)
现在想在在其他环境在安装个tf2.0
pip install tensorflow-gpu==2.0 -i https://pypi.douban.com/simple/
若安装失败,提示要安装visual studio,那就先安装 visual studio 2015(因为安装过tf1.10.0了,所以肯定已经有了)
与安装numpy不同,这样安装完了,运行import tensorflow as tf 时,不出意外会 can't found cudart64_100.dll等错误
如果是1.10.0 会报can't found cudart64_90.dll的错误,这个就是指没有安装cuda(没有NAVIDA显卡的电脑,就只能跑cpu版本的)
并且还要安装正确版本的cuda,从报错的信息中就可以发现,tf2.0的需要cuda10版本(因为报错信息尾缀是100.dll),同理1.10.0需要安装cuda9。cuda历史版本下载地址(https://developer.nvidia.com/cuda-toolkit-archive ),
你装tf1.10.0版本怎么安装cuda9,就怎么安装cuda10,下载好了默认安装就好,会自动在该路径下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA存在多个版本如下图:(并且环境变量也会自动加上)
cudnn下载地址(https://developer.nvidia.com/rdp/cudnn-archive )
cudnn版本要与cuda匹配,cuda10.0 需要cudnn7.4及以上
当然要想运行tf-gpu版本,还需要安装cudnn,其实不能叫安装,因为下载的是压缩文件,解压然后进行如下操作即可:
复制 cudnn\bin\cudnn64_5.dll 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin\
复制 cudnn\include\cudnn.h 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\
复制 cudnn\lib\x64\cudnn.lib 到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64\
到此就可以运行tf2.0了
运行的时候有可能还是会发现报can't found cudart64_100.dll,这是因为pycharm没有自动适应cuda的版本,还是用的cuda9.0
你可以在pycharm这样设置:
#修改成自己的bin目录和lib目录
PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
LD_LIBRARY_PATH C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib
然后点OK 再运行就可以了