Win10 Anaconda安装tensorflow2.1
Win10已经安装了Anaconda,之前由于安装pytorch-gpu环境,也安装了cuda10.2和cudnn7.6.5,现在想在此基础上安装tensorflow2.1,安装过程中有点小坑,也折腾了半天时间,记录一下避免以后继续踩坑。
基础环境cuda10.2+cudnn7.6.5+anaconda
cuda、cudnn和anaconda的安装网上有很多教程,不再赘述
1.新建一个虚拟环境并**
conda create -n tf2 python=3.7
conda activate tf2
2.安装tensorflow2.1
pip install tensorflow==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
这里有几个地方需要注意:
1)使用pip安装,不使用conda,因为conda仓库更新比较慢;
2)tensorflow2.1版本默认包含了cpu和gpu模式,不用再单独指定,如果仅安装cpu模式或者gpu模式,可以写成tensorflow-cpu==2.1.0或者tensorflow-gpu==2.1.0;
3)使用清华源的镜像下载,否则速度太慢而且容易断,如果清华源下载也容易断(我们家的渣渣移动网络就是),可以在执行上述命令后找到镜像的地址,直接用第三方工具先把tensorflow包下载到本地,再从本地安装(本地安装把上面命令中的tensorflow==2.1.0替换成本地包的路径即可,后面依然使用清华的镜像,因为还要安装一些依赖包)。
3.打开python,输入import tensorflow as tf导入tensorflow
下面就遇到最蛋疼的问题了,导入时报错ImportError: Could not find 'cudart64_101.dll',提示找不到cudart64_101.dll库,没错,我安装的是cuda10.2版本,难道是版本太高了,tf2.1不支持?查了一下,果然是这样:
tf2.1版本支持cuda10.1,还没有能支持cuda10.2的版本,于是又在网上搜索了一番,最直接的办法是卸载cuda10.2,安装cuda10.1版本。但是我当时安装cuda和cudnn的时候也是废了老大劲了,而且也怕卸载了之后导入pytorch再出问题,于是就找有没有别的办法,后来看到有人说把cuda10.2安装目录(我的安装目录是C:\Program Files\NVDIA GPU Computing Toolkit\CUDA\v10.2\bin)下的cudart64_102.dll和cudart32_102.dll拷贝一份,分别改名为cudart64_101.dll和cudart32_101.dll,试了一下,竟然导入成功了
tf.config.list_physical_devices ('GPU')
后面也简单写了几行语句测试,没有出现错误,但是毕竟是用的cuda10.2的动态库,不知道会不会有什么隐藏问题。所以如果之前没有装过cuda和cudnn,还是建议安装和tf2.1配套的版本。
另外可能会在导入 TensorFlow 时出现 DLL 载入错误
ImportError: DLL load failed: 找不到指定的模块。
Failed to load the native TensorFlow runtime.
此时安装 Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019 即可正常使用。由于我的电脑已经安装了VisualStudio2019,所以导入时没有出现这个错误。
补充:在虚拟环境中进入ipython,导入tensorflow会报错,看了一下发现ipython进入的是base环境而不是当前的虚拟环境,所以无法找到虚拟环境中安装的包,需要在虚拟环境下手动安装一下ipython即可
conda install ipython
版本会自动与当前虚拟环境的python匹配