一、写作目的
刚把系统盘换了,重装系统后想恢复原来的TensorFlow环境,本以为半个小时能做完的事,折腾出一堆Bug,不知道是不是资料没找对,趁现在OK了,补上一篇经验贴,以备不时之需吧!
二、环境说明
基础环境:
- 系统版本:Windows 10 64位
- 显卡:NVIDIA GeForce GTX 960
目标环境:
- Anaconda版本:Anaconda 3-2020.07
- TensorFlow版本:1.6.0 GPU版(重点),CPU不同之处指出
- Python版本:3.6.2
三、安装步骤
- 安装Anaconda
- 下载
国内下载Anaconda可能会有些慢,我们可以前往清华镜像源下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,这里几乎能找到所有版本,笔者下载了目前最新版的(x86_64即为64位系统版本,x86则为32位系统版本,个别用32位系统的注意不要下错了) -
- 运行Anaconda安装程序
直接双击,选项全部默认 - 检测Anaconda环境是否正确
在开始菜单找到“Anaconda prompt (Anaconda3)”(这里切记不要选中powershell版本,否则后面会看到一些显示上的bug),直接点开,输入“conda –version”,显示如下即可确认Anaconda安装成功
- 配置anaconda环境源
由于Anaconda的源默认也是国外的,我们修改为国内源后续下载会比较快速,这里还是选用清华的源,在上述终端中,输入如下命令然后通过windows资源管理器,进入用户目录(通常为 “ C:\Users[计算机用户名]\ ”),能看到一个文件为“.condarc”,用记事本的方式打开(我用的Notepad++):1
2
3conda config --show # 查看当前源配置
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 添加源
conda config --set show_channel_urls yes # 设置搜索时显示通道地址
请确保“.condarc”完整内容如下:
1 | channels: |
到此处,Anaconda部分就弄好了
- 配置Python下载源
Python默认下载源在国外,会导致pip安装很慢,我们将其切换为国内源,笔者还是采用清华的。首先我们在用户目录(通常为 “ C:\Users[计算机用户名]\ ”)新建文件夹名为“pip”,然后在pip文件夹下新建文件名为“pip.ini”(注意,Windows可能隐藏了文件扩展名,务必确保全名正确) “pip.ini”内容如下:
注:windows 10显示文件扩展名(默认为隐藏状态)1
2[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
- 接下来正式开始搭建TensorFlow环境
- 基于conda创建虚拟环境,Python安装版本为3.6.2,虚拟环境允许你在电脑中安装多个版本的TensorFlow、Python环境,且互不干扰
在“Anaconda prompt (Anaconda3)”中,输入如下命令:
1 | conda create --name tensorflow_1_6_GPU python=3.6.2 |
查看当前环境名:(能看到刚才创建的环境)
注:以下命令也许对你有用(如果没有问题,这些命令暂时用不上)
1 | conda --version # 查看conda版本 |
- 激活环境这时能看到终端提示符前面当前环境提示,由“base”变为了“tensorflow_1_6_GPU”
1
activate tensorflow_1_6_GPU
注:退出激活命令为 “deactivate” ,将由任意环境退出到“base”
安装TensorFlow
1
2
3
4
5
6
7
8
9
10
11
12python -m pip install --upgrade pip # 更新pip
pip install numpy==1.18.1
# 安装TensorFlow,CPU版本和GPU版本二选一即可!!代码使用上是一样的,有独显推荐用GPU版,个人觉得CPU太慢了。另外,AMD显卡本教程不适用!!
pip install tensorflow-gpu==1.6.0 # GPU版,温馨提示,TensorFlow 2.x和1.x不完全兼容,慎重考虑版本
pip install tensorflow==1.6.0 # CPU版,温馨提示,TensorFlow 2.x和1.x不完全兼容,慎重考虑版本
# 下面是几个可能用的上的库,可以安装一下
pip install opencv-python
pip install keras==2.2.0
pip install scikit-learn
pip install pillow安装CUDA(如果是安装的CPU版本,这一步请跳过,GPU版本务必不要遗漏)
CUDA安装版本,应该与TensorFlow版本严格对应,下面给出对应关系表,本文所选用的TensorFlow-gpu版本为1.6.0,故CUDA版本应为9.x,如果要安装cuDNN(基于CUDA的一套库),其版本应为7.x。可参考:https://www.tensorflow.org/install/source_windows
CUDA下载请前往官网,下面给出CUDA 9的下载网址:https://developer.nvidia.com/cuda-90-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
下载完毕后,全部默认安装即可,至此,TensorFlow环境搭建完毕
四、测试环境
还是进入“Anaconda prompt (Anaconda3)”,激活“tensorFlow_1_6_GPU”,运行Python并导入TensorFlow库即可
如果,没有error即为正常。
注:如果你除了我上图所示输出,还有若干dtype.py导致的warning,它可能是由于numpy的先后版本兼容性导致,我在使用中这些warning暂未干扰到代码的运行(毕竟不是error)。如果你希望确实解决这些问题,可参考下面的解决方案
五、修改TensorFlow源代码,解决Numpy兼容性问题【可选】
这里的解决方案引用自:https://blog.csdn.net/BigDream123/article/details/99467316
首先备份dtype.py
然后修改dtype warning所在行,我的分别为517~521、526行,路径在warning中会给出,我的路径为(仅做参考):“C:\Users\a_flying_fish.conda\envs\tensorflow_1_6_GPU\Lib\site-packages\tensorflow\python\framework\dtypes.py”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31# 原文
....
_np_qint8 = np.dtype([("qint8", np.int8, 1,)])
_np_quint8 = np.dtype([("quint8", np.uint8, 1,)])
_np_qint16 = np.dtype([("qint16", np.int16, 1,)])
_np_quint16 = np.dtype([("quint16", np.uint16, 1,)])
_np_qint32 = np.dtype([("qint32", np.int32, 1,)])
# _np_bfloat16 is defined by a module import.
# Custom struct dtype for directly-fed ResourceHandles of supported type(s).
np_resource = np.dtype([("resource", np.ubyte, 1,)])
....
# 修改后
....
_np_qint8 = np.dtype([("qint8", np.int8, (1,))])
_np_quint8 = np.dtype([("quint8", np.uint8, (1,))])
_np_qint16 = np.dtype([("qint16", np.int16, (1,))])
_np_quint16 = np.dtype([("quint16", np.uint16, (1,))])
_np_qint32 = np.dtype([("qint32", np.int32, (1,))])
# _np_bfloat16 is defined by a module import.
# Custom struct dtype for directly-fed ResourceHandles of supported type(s).
np_resource = np.dtype([("resource", np.ubyte, (1,))])
....然后重复四中的步骤,应该能看到warning消失了。
六、配置path变量【可选】
- 环境配置
可能有的人不太喜欢每次都进“Anaconda prompt (Anaconda3)”运行Python TensorFlow,而习惯于直接用cmd进入。实际上和传统的Python配置是一样的,只需要配置Anaconda下的Python的环境即可1
2
3
4# 下面给出参考路径,实际路径可结合自己的TensorFlow安装路径,或者直接用everything工具搜索
Python路径:C:\Users\a_flying_fish\.conda\envs\tensorflow_1_6_GPU\
Python Script路径:C:\Users\a_flying_fish\.conda\envs\tensorflow_1_6_GPU\Scripts\
篇幅限制,我就不给出path环境配置的具体步骤了,相信对于大部分读者也是轻车熟路
- 环境测试
通过Win+R,输入“cmd”,进入终端,测试TensorFlow
如图即为成功
注:此处我运行Python是用的“python3”命令,读者可能显示为命令不存在,可用“python”替换,下面给出解释:
由于笔者电脑中同时安装了Python 2.7和Python 3.6版本,且均添加了Path变量(Python 2.7在前),所以当笔者直接输入”python”命令,系统会调用Python 2.7的环境,而非Python 3.6。为了解决这个问题也很简单,只需要将Python 3路径中的”python.exe”手动在同目录建立备份,改名为”python3.exe”即可,如下图(cmd终端重启才能看到效果)