参考博客:
https://blog.csdn.net/dy_guox/article/details/79081499
https://blog.csdn.net/liuyong5573/article/details/85472808
https://blog.csdn.net/u010618587/article/details/82940528
https://blog.csdn.net/zhaoyoulin2016/article/details/80615687
1 本机开发环境
本机配置如下:
操作系统 Win10;
内存8G;
显卡 NVIDIA GeForce GTX 1050Ti;
2 Anaconda虚拟环境配置
由于python对tensorflow的支持较好,此处采用Anaconda 的tensorflow虚拟环境python版本为3.6.8;
首先建立一个名为tensorflow的虚拟环境:
conda create -n tensorflow python=3.6
之后激活虚拟环境:
conda activate tensorflow
通过以下语句可显示当前环境python版本:
python --version
将得到以下输出,验证python环境。
3 安装tensorflow-gpu版
之后的流程在激活的tensorflow虚拟环境中进行.
此处选择 的Tensorflow版本为1.14.0.
3.1 安装对应版本的CUDA
CUDA的版本应当根据Tensorflow-gpu和显卡的版本综合选择,CUDA版本必须高于显卡支持的最低要求。
在以下网址确认显卡的最低CUDA版本要求:
https://developer.nvidia.com/cuda-gpus
本机的GTX 1050Ti未列出,参考网上意见应当与GTX 1050相同最低需要6.1的CUDA版本。同时根据tensorflow官网的介绍,1.13.0以上tensorflow支持CUDA10,故选择CUDA10:
https://tensorflow.google.cn/install/gpu
根据官网要求,CUDA 10.0 需要NVIDIA GPU驱动程序有 410.x 或更高版本。此处可手动先行更新驱动,或者在CUDA安装过程中注意附加选项,以升级驱动程序。此处建议自行先行确认并升级驱动。
之后进入网页下载CUDA10.0:
https://developer.nvidia.com/cuda-10.0-download-archive
或者:
https://developer.nvidia.com/cuda-toolkit-archive
按图选择,下载安装包。图中的local表示完整安装包,下载后直接安装;network表示在线安装包,本体较小,而安装中需要联网下载资源。此处建议使用local完整安装包。
双击安装包进行安装,安装选择自定义:
之后在选择安装项时一般不安装GeForce Experience。CUDA是核心组件必须勾上,剩下两个选项的当前版本如果比新版本低的话也可以勾选上。接着点击下一步开始安装。
安装过程请记住安装路径,此路径在后续需要使用。
3.2 安装对应版本CuDNN
进入网址下载对应CuDNN版本,注意下载前需要简单注册。
https://developer.nvidia.com/rdp/cudnn-download
同意以下条款:
选择下方Archived cuDNN Releases,获取更多可用版本。
其中CUDA10.0对应的cuDNN v7.6.0版本经实机安装试验表明会出错,选择对应的cvDNN v7.5.1在后续的安装中证明没有出错,故选择cuDNN v7.5.1 for CUDA 10.0。
解压压缩包cudnn-10.0-windows10-x64-v7.5.1.10.zip,得到三个文件夹:
将这三个文件夹中文件复制到CUDA的安装路径下的对应同名文件夹中。CUDA的安装路径一般在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0中。
3.3 安装tensorflow-gpu主程序
首先更新pip程序:
conda install pip
之后安装自动适配的最新版tensorflow-gpu版本:
pip install --upgrade tensorflow-gpu
现在是2019年7月,自动适配的tensorflow-gpu版本为1.14.0
3.4 环境变量配置
参考于 https://blog.csdn.net/u010618587/article/details/82940528
首先,计算机上点右键,打开属性->高级系统设置->环境变量,可以看到系统中多了CUDA_PATH和CUDA_PATH_V10_0两个系统环境变量。接下来,还要在系统中添加以下几个系统环境变量:
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0(这是默认安装位置的路径)
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
然后,再在系统变量 PATH 的末尾添加:
%CUDA_LIB_PATH%;
%CUDA_BIN_PATH%;
%CUDA_SDK_LIB_PATH%;
%CUDA_SDK_BIN_PATH%;
再添加如下4条(默认安装路径):
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64;
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\common\lib\x64;
C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64;
之后,可以验证配置情况:
在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\demo_suite中打开cmd命令提示符,然后分别执行bandwidthTest.exe和deviceQuery.exe。
如果以上两步都返回了Result=PASS,那么即配置成功。
在cmd中,输入nvcc -V可查看当前CUDA版本。
3.5 安装其他一些必要的包
进入tensorflow虚拟环境
pip install matplotlib
pip install Cython
pip install pillow
pip install lxml
pip install jupyter
3.6 tensorflow-gpu安装验证
重新打开一个命令行,在tensorflow的虚拟环境下,输入python,进入python环境,输入
import tensorflow as tf
tf.Session()
无报错则安装成功。
要测试是否启用了GPU加速,可以用以下两行代码测试:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
如果输出有GPU的信息,说明GPU加速已经启用。
4 下载Tensorflow object detection API
从github上下载项目(右上角“Clone or download”-“DownloadZIP”),下载到本地目录(避免中文),之后解压。
下载地址:https://github.com/tensorflow/models
注意此处不需要下载release版本,release版本中无后文中的research文件夹。
5 Protobuf 安装与配置
下载Protobuf,版本必须为3.4,高版本会带来后续步骤错误。此处windows无论为64位或是32位均下载3.4.0-win32 版本。
Protobuf下载地址:https://github.com/google/protobuf/releases
网站中选择3.4.0-win32版本,解压后将bin文件夹中的【protoc.exe】放到第4步中解压的文件夹的 \research目录下。
在该目录下打开命令行窗口,输入:
protoc object_detection/protos/*.proto --python_out=.
无报错则已完成配置。
6 PYTHONPATH 环境变量设置
在 ‘此电脑’-‘属性’- ‘高级系统设置’ -‘环境变量’-‘系统变量’ 中新建名为‘PYTHONPATH’的变量,将\research及\research\slim以及根目录三个文件夹的完整目录添加,分号隔开,效果如下图:
接下来可以测试API,进入tensorflow环境,在 research/ 文件夹下运行命令行:
python object_detection/builders/model_builder_test.py
不报错说明运行成功。
7 测试自带案例
进入tensorflow虚拟环境,cd到 \research 的文件夹下,执行命令:
Jupyter notebook
然后找到object_detection文件下的object_detection_tutorial.ipynb在浏览器中自动生成如下内容:
找到cell然后运行Run All,如果你的网速够快电脑性能够好,顺利的情况下将会出现正常的带识别框选的图片。
如果出现HTTP error表示预训练模型被墙,需要将程序中DOWNLOAD_BASE的值改为DOWNLOAD_BASE=‘http://storage.googleapis.com/download.tensorflow.org/models/object_detection/’
若一遍运行后无报错error但无输出,则重新run all一遍,则易得输出图像。原因未明,有待进一步寻找。