并存 不同的、多种版本的深度学习框架,关键在于怎样在同一个显卡配置不同的依赖项,如CUDA ToolKit、python。我这里采用的方法是:利用Anaconda搭建不同的虚拟环境,使得每个环境相独立、互不干扰。
为了避免重复造车轮,除了记录下我个人趟过的坑,我在每一分目录前都给出了成功的优秀博客可供读者参考。
官网指南
1.操作系统:windows10 64位
2.显卡:NVIDIA GeForce GTX 1050 Ti
3.Python 版本 3.7.4
4.PIP 版本 20.0.2
5.确认Python和pip是64bit,并且处理器架构是x86_64
(1)安装显卡驱动程序
越新越好
NVIDIA GeForce 驱动程序下载官网地址
(2)安装 CUDA9.0工具包
官网教程指南
详细博客链接
CUDA(Compute Unified Device Architecture)是显卡厂商NVIDIA推出的运算平台(Toolkit)。是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。通过利用图形处理单元(GPU)的功能,可以显着提高计算性能。
注意:
结束后,检查是否完成
在cmd下查看CUDA版本
nvcc --version
整个下载过程花费将近2.5小时,网速不是很给力啊
cuDNN的全称为NVIDIA CUDA® Deep Neural Network library,是NVIDIA专门针对深度神经网络(Deep Neural Networks)中的基础操作而设计基于GPU的加速库。cuDNN为深度神经网络中的标准流程提供了高度优化的实现方式,例如convolution、pooling、normalization以及activation layers的前向以及后向过程。
注意:
修改环境变量
cuDNN其实是一个库,没有安装这一说。
查看这台电脑是否配置过cudnn库,一个简单方法就是:
到CUDA安装目录下的 bin目录或者include目录中是否有包含 cudnn字样的.h文件。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\lib\x64
(4)安装 最新版本的PaddlePaddle
建议使用百度源,清华源我自己试了三次都失败了
python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
测试代码:
进python解释器
导入模块:import paddle.fluid
测试代码:paddle.fluid.install_check.run_check()
如果出现 Your Paddle Fluid is installed successfully!,说明已成功安装!
1.缺少某DLL文件
缺少C++或.Net运行库组件。可以在网上找到该文件并放置在标志文件夹下
推荐:找DLL下载站
2.找不到cublasXXX文件
检查一下CUDA和CUDNN安装情况
3.安装GPU版本后出现 cudaGetDeviceProperties failed
(可能1).电脑的现有显卡太旧了,要更新。见安装第二步
(可能2).这个情况在有核显的笔记本中最为常见,报错是由于独立显卡休眠导致,恢复休眠即可。
操作步骤:
控制面板->电源选项
再重启试试
参考博客1
参考博客2
(1)安装 CUDA9.0 +CUDNN7.0
同上PaddlePaddle的安装步骤
(2)安装 Anaconda 选择Python3.7version的版本
(3)利用anaconda创建一个虚拟空间
记得换源,不然下载会很卡的
conda create -n tf1.9 python=3.7
exit()
activate tf1.9
(4)使用pip安装不推荐
pip install tensorflow
会提示一个找不到对应版本的信息,它自己找不到TensorFlow支持Python3.7的版本,但是支持python3.6的,降回到低版本太麻烦了。
Windows、Linux、Mac分别TensorFlow对应版本参照表
解决方案:离线下载、手动安装
在此链接可以找到Tensorflow支持Python3.7的一个whl——whl
接下来安装:
进入到Anaconda Prompt中,cd进入刚才下载文件的路径下
然后pip install tensorflow-1.9.0-cp37-cp37m-win_amd64.whl
测试代码框架,成功!
(5)使用conda下载推荐
conda search tensorflow-gpu #查看tensorflow可用的版本
conda install tensorflow-gpu=1.15.0
#选择一个版本下载,确定好CUDA、CUDNN还有python的匹配版本
(1).打不开anaconda、conda命令无法生效
方案一:检查环境变量是否配置错误
要勾选“将Anaconda添加到系统的环境变量中”
否则会出现anaconda打不开、或者conda命令无效的结果
需要自己手动添加最下面这七行,按照按照位置不同而异==
手动添加环境变量详见
方案二:可能是conda版本问题——升级conda
conda update conda #基本升级
conda update anaconda-navigator //update最新版本的anaconda-navigator
(2)cd 命令
进入文件与Linux直接cd不同的是先要进入E:
此步骤参考链接
(3)使用 pip 安装时出现:Read timed out
pip --default-timeout=1000 install tensorflow-1.9.0-cp37-cp37m-win_amd64.whl
#在pip和install之间加上最大延时,即可成功
(4)pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out.
国外的源不好,会导致python安装包失败,让我们重新配一下清华源。
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
show_channel_urls: true
ssl_verify: true
(5)创建环境不成功
我进行重装了anaconda解决了这个问题。
(6)在Anaconda-Prompt下载“包”很慢,在Anaconda-Navigator下载“包”会很快
(7)完美解决Python与anaconda之间的冲突问题
(8)[Tensorflow学习 tensorflow-gpu安装错误以及解决方法](https://www.jianshu.com/p/0b917a1a723b?tdsourcetag=s_pcqq_aiomsg
(1)安装CUDA10.0、下载对应匹配的CUDNN7.6.5
与前面操作相同,在安装CUDA有两点要注意
引用来源
更改环境变量
将下列路径v10.0换成v9.0即可,需要哪个换成哪个
变量名 | 变量值 |
---|---|
CUDA_PATH | C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 |
CUDA_SDK_PATH | C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0 |
NVCUDASAMPLES9_0_ROOT | C:\ProgramData\NVIDIA Corporation\CUDA Samples\v10.0 |
然后编辑Path系统变量,把v9.0的统统上移到v10.0的前面
(3)安装TensorFlow2.0
官网链接
打开Anaconda Prompt
创建名为tensorflow2.0的conda环境:
根据论坛的讨论,python 3.7对tensorflow支持不好
conda create -n tensorflow20 python=3.6
activate tensorflow2.0 #激活conda环境tensorflow2.0:
conda install tensorflow-gpu=2.0.0 #安装TensorFlow2.0 正式版 环境 #各种必备包自动安装,
附常用conda命令
执行成功结果:
左:Win10+CUDA9.0 +CUDNN7.0+Anaconda+Python3.6+TensorFlow1.15
右:Win10+CUDA10.0+CUDNN7.6.5+Anaconda+Python3.7+TensorFlow2.0
在anaconda不同的虚拟环境下不用更换CUDA的环境变量,因为他会在环境变量里依次向下寻找,直到找到可供使用的环境变量。
这样就实现了不同版本的tensorflow框架可以共存了!
1.并存 不同的、多种版本的深度学习框架体现了搭建多个虚拟环境的必要性。
2.不同的框架/工具在不同的领域实现的难易程度不同。学习不同深度学习框架的意义在于让我可以更深层次的理解所学习的AI知识,在熟悉这一系列的工具之后,我可以把精力专注于理论、算法和实际建模上。
3.通过自己实际操作深度学习框架的部署,以及资料的阅读,我对框架的理解更深了一步。
——2020,2,12. 00:40