程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)

第一节,windows和ubuntu下深度学习theano环境搭建

一、windows下深度学习环境的搭建

1.1 安装Anaconda

Anaconda是一个用于科学计算的python发行版,支持linux,mac,windows系统,提供了包管理和环境管理的功能,Anaconda是一个打包的集合,里面装好了conda,某个版本的python,众多的packages等,科学计算工具等

下载中科大镜像:http://mirrors.ustc.edu.cn/

 从archive路径下载Anaconda3-4.2.0-Windows-x86_64.exe

我的安装路径为 D:\Program Files (x86)\Anaconda,注意这里我选择的是3-4.2.0版本。

 

1.2 安装minGw,libpython

进入Anaconda Prompt命令窗口,输入命令

conda install mingw libpython

中间会要你选择Proceed([y]/n)? 输入y

此处安装如果比较慢或者有问题可以参考:手把手教你搭建深度学习平台——避坑安装theano+CUDA  https://www.cnblogs.com/hdu-zsk/p/5950924.html

配置环境变量  计算机->属性->高级系统设置->环境变量

编辑系统变量‘path’,追加D:\Program Files (x86)\Anaconda\MinGW\x86_64-w64-mingw32\lib;D:\Program Files (x86)\Anaconda\MinGW\bin;

 

1.3 安装theano

进入Anaconda Prompt命令窗口,输入命令:

conda install theano pygpu

如果安装失败,我们先卸载,然后在尝试重新安装

conda uninstall theano
conda  install theano

新建环境变量‘PYTHONPATH’:添加值D:\Program Files (x86)\Anaconda\Lib\site-packages\theano;(这个路径添加了运行spyder可能出错(打不开),亲测)

如果你的电脑没有GPU,安装到这里就可以了,下面的步骤不用安装。

1.4 PTVS安装以及VS环境变量设置

安装完成之后,我们需要为VS安装PTVS。适用于Visual Studio的Python工具(PTVS)是Visual Studio的开源插件,支持使用Python语言进行编程。

具体安装我们可以参考:在 Windows 上的 Visual Studio 中安装 Python 支持

由于我在之前安装的Anconda,自带的是python3.5.2,而且我安装的visual studio2015,所以可以直接安装Python解释器。

如果你使用的是visual studio2013,这里就有个问题(vs2015的可以跳过):

如果你安装的是python3.6,由于vs2013不支持python3.6。因此,你需要重新安装python版本,这里可以选择安装python3.5。如果你是vs2015之后的版本,你可以跳过这里。

我们可以参考文章:如何将Anaconda更新到想要的python版本

对于vs2013,我们可以卸载Anaconda,重新安装一个带有python3.5的版本(比如Anaconda3-4.0.0,我建议重装)。或者使用conda命令在线更新。重新安装比较简单,我就介绍一下使用conda命令更新。

打开Anaconda Prompt,然后用conda命令更新到python3.5.

复制代码
conda update conda ——等待更新完,然后输入以下命令,这个较快

#创建一个名为python35的环境,指定Python版本是3.5(不用管是3.5.x,conda会为我们自动寻找3.5.x中的最新版本)

conda create --name python34 python=3.5

activate python35 --激活3.5版本,使用这个

#此时次输入

python --version

#可以得到`Python 3.5.5 即系统已经切换到了3.5的环境

#如果想返回默认的python 3.6.2环境,运行

deactivate python35

#删除一个已有的环境

conda remove --name python35 --all

复制代码

等待python3.5安装成功。这里我需要重新执行步骤2 安装minGw,libpython,和步骤三安装theano。

然后需要去下载PTVS插件并安装:Visual Studio 2013 PTVS 2.2

如果你是VS2015或者以后的版本,具体安装以及VS环境变量的配置比较简单你可以参考:在 Windows 上的 Visual Studio 中安装 Python 支持

然后需要手标识现有环境,打开vs2013.新建一个python项目,并对该项目如下操作:

 

然后选择python 3.5.

 

1.5 配置路径文件

找到路径C:\Users\你的用户名,在下面创建文件.theanorc.txt

此处我在C:\Users\Administrator路径下创建了.theanorc.txt文件

编辑文件输入内容

复制代码
[global]

openmp=False

[blas]
Idflags=

[nvcc]  
fastmath=True  
flags =-LD:\Program Files (x86)\Anaconda\libs  
compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin  

[gcc]
cxxflags=-ID:\Program Files (x86)\Anaconda\MinGW
复制代码

注意标红的路径是根据你自己的MinGW来设置的,不需要和我的一样,上面的:

compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin  

如果你的电脑是装vs2012,那么就把10.0改为11.0。这个也就是你安装的vs所在的目录。

1.6 测试配置文件是否有误

(1) 测试方案一

进入python的shell脚本,输入内容:
>>> import theano
>>> theano.test() 
查看运行结果是否正确。如果出现错误,请查看是否是以下几种错误:

出现这种错误 ,或者我们在命令窗口执行spyder也出现如下问题:

针对configparse问题,我们可以参考文章:

python安装配置Theano ImportError:cannot import name 'configparser'

我们清除安装theano时的路径配置,即:新建环境变量‘PYTHONPATH’:添加值D:\Program Files (x86)\Anaconda\Lib\site-packages\theano;然后重新尝试运行

如果import theano出现pygpu相关的错误,可以尝试运行(如果你已经安装了CUDU可能会出现这种问题):

conda install pygpu

打开spyder进行测试,如果还有spyder闪退的问题,可以尝试重新安装:

conda uninstall spyder        #先卸载
conda install spyder #在安装

如果还是不行,你可以到网上搜索其他解决方案,或者重新换个版本的Anaconda安装。

(2) 测试方案二

我们也可以编辑如下代码测试
复制代码
import numpy as np
import time
import theano
A = np.random.rand(1000,10000).astype(theano.config.floatX)
B = np.random.rand(10000,1000).astype(theano.config.floatX)
np_start = time.time()
AB = A.dot(B)
np_end = time.time()
X,Y = theano.tensor.matrices('XY')
mf = theano.function([X,Y],X.dot(Y))
t_start = time.time()
tAB = mf(A,B)
t_end = time.time()
print("NP time: %f[s], theano time: %f[s] (times should be close when run on CPU!)" %(
                                            np_end-np_start, t_end-t_start))
print ("Result difference: %f" % (np.abs(AB-tAB).max(), ))
复制代码

测试结果如下:

如果上面的np time 和theano time 差不多,那就代表你上面的配置没有问题了,这个有的时候电脑还有其他的任务,也有可能导致运行的时间不一致。

1.7 安装cuda

关于theano以及cuda的安装参考教程
深度学习(二)theano环境搭建
windows下theano开发环境搭建(实现了GPU加速)

先检查自己的显卡支持什么版本的CUDA

(1)首先打开控制面板,在控制面板进行搜索。

(2)然后,双击NVIDIA控制面板,打开如下的控制面板,点击帮助

点击系统信息,我们会看到

(3)选择组件,然后会看到红色框的内容,箭头所指的CUDA版本,就是你电脑支持的CUDA版本。

然后我们去官网下载我们显卡支持的CUDA版本

 

 程序下载完后后,双击安装:

到这一步,问题出现了,告诉我说图形驱动与显卡不兼容,如果继续安装,即使安装成功了,也不能使用cuda。因此我去下载一个比较新的CUDA,我下载了cuda_8.0.61_windows.exe(注意下面我使用的是cuda9.0的截图,但是事实证明在我的电脑安装9.0后,gpu运行不了,这里你最好安装cuda8.0,步骤同下)。

 

选择自定义安装,然后把所有包的都勾选上,省的后面出现什么错误。这一步有可能会遇到驱动冲突,导致某些包安装失败

如果某些包安装失败,后面使用theano的时候,会跳出错误。如果图形驱动安装失败,运行theano的时候就出现错误,提示为cuda版本与驱动版本不一致。因此如果你安装cuda的过程中,有出现安装失败的,那么请你接着往下看。安装失败一般是驱动冲突的问题,这个时候我的方法是用驱动精灵卸载掉显卡驱动,然后在进行安装。

 安装完后测试一下是否安装正确。在命令窗口输入:

nvcc -V

回车查看是否有版本信息。若出现版本信息,则证明nvcc安装成功,如下图所示:

 

接着我们运行一个cuda自带的测试例子。

 

由于我的电脑安装了VS2015(这个自己下载安装),所以在这里打开Samples_vs2015.sln项目,这个例子目录为:C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.0(在安装完我们勾选launch samples会自动打开这个文件夹) 。编译运行得到如下结果,表示安装成功:

安装完了cuda,你还需要cuDNN:

cuDNN下载地址https://developer.nvidia.com/rdp/cudnn-download,cuda8.0对应的版本是cudnn-8.0-windows7-x64-v6.0.zip

我们需要把下面三个文件中对应的文件拷贝到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0路径对应的文件下。

然后我们需要重新配置.theanorc.txt文件

复制代码
[blas]   
ldflags=  
      
[global]  
device = gpu  
floatX = float32  
   
[cuda]
root = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0 [nvcc] fastmath=True flags =-LD:\Program Files (x86)\Anaconda\libs compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin [gcc] cxxflags = -ID:\Program Files (x86)\Anaconda\MinGW
复制代码

这样就完成了theano的GPU配置了。

1.8 完整测试

测试时,执行如下程序(详细内容可以参考官方链接:http://deeplearning.net/software/theano/tutorial/using_gpu.html)

复制代码
from theano import function, config, shared, tensor
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], tensor.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, tensor.Elemwise) and
              ('Gpu' not in type(x.op).__name__)
              for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')
复制代码

运行结果如下:

(1) GPU测试

下面是用GPU加速的运行结果:

 

 如上运行结果可知,用gpu进行计算时间差不多是0.68秒左右。如果想切换成只用gpu的测试的话,我是通过更改文件:.theanorc.txt的内容。那么.theanorc.txt的内容为:

复制代码
[blas]   
ldflags=

[global]
device = cuda
floatX = float32
optimizer = None

[cuda]
root = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0

[nvcc] fastmath=True flags =-LD:\Program Files (x86)\Anaconda\libs compiler_bindir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin [gcc] cxxflags = -ID:\Program Files (x86)\Anaconda\MinGW
复制代码

(2) CPU测试

如果想关闭gpu,进行cpu测试那么就把.theanorc.txt内容改为:

[blas]   
ldflags=  
      
      
[gcc]   
cxxflags = -ID:\Program Files (x86)\Anaconda\MinGW

重启电脑或者重启spyder内核。下面是测试结果图:

 

测试了结果,只用cpu花了14秒的时间,也就是说对于我的电脑,使用gpu进行加速,这速度提高了近20倍。

(1) 如果执行import theano出现

'You are tring to use the old GPU back-end. '

ValueError: You are tring to use the old GPU back-end. It was removed from Theano. Use device=cuda* now. See Theano/Theano for more information.

我们可以通过修改.theanorc.txt文件  把device=gpu更改为device=cuda

[global]
device = cuda
floatX = float32
optimizer = None 

(2) 如果运行出现下面错误:

我们可以配置.thranorc.txt文件,忽略cuDNN

[dnn]
enabled = False

(3) 如果出现CVM未定义的错误,按照下面方法移除该文件夹是可以起作用的(亲测)。

 (4) 执行出现MKL_THREADING_LAYER=GNU错误

我们使用如下命令:

conda install mkl=2017

如果这些方法都不能解决这些错误,我只能推荐你看一下这篇文章,希望能够对你有帮助

这是一份你们需要的Windows版深度学习软件安装指南 

1.9 安装tensorflow

(1) cpu环境

如果你使用cpu,那么在命令窗口下运行:

conda install tensorflow

(2) gpu环境

如果你使用gpu, 安装TensorFlow指定版本(清华源上有的,更换链接最后的版本名称就行了),那么在命令窗口下运行:

pip install --upgrade https://mirrors.tuna.tsinghua.edu.cn/tensorflow/windows/gpu/tensorflow_gpu-1.3.0rc0-cp35-cp35m-win_amd64.whl

复制代码
测试
import tensorflow as tf
(1)print(tf.test.gpu_device_name())

或者
(2)print(tf.test.is_gpu_available())

如果(1)输出device:/gpu:0或者(2)输出True,则表明使用的GPU
复制代码

二 、linux环境安装

2.1 安装Anaconda

Anaconda是一个用于科学计算的python发行版,支持linux,mac,windows系统,提供了包管理和环境管理的功能,Anaconda是一个打包的集合,里面装好了conda,某个版本的python,众多的packages等,科学计算工具等

下载中科大镜像:http://mirrors.ustc.edu.cn/

 

 从archive路径下载Anaconda3-5.0.1-linux-86_64.sh

在home文件夹下创建一个文件夹,命名为Anaconda,把下载好的程序复制到这里,然后右键在终端打开,输入:

bash Anaconda3-5.0.1-Linux-x86_64.sh

然后按下enter键继续安装,一直按enter键,直至:

然后按下yes继续安装,后面选择安装路径,我是安装在当前文件夹下的program文件夹下:

执行到这里说明已经安装成功

2.2  安装NVIDIA驱动

1. 首先确保自己的操作系统是最新的,打开终端运行以下命令

sudo apt-get update  
sudo apt-get upgrade  
sudo apt-get install build-essential  
sudo apt-get autoremove

然后安装git,在终端输入

sudo apt-get install git

2. 首先检验自己的电脑是否支持CUDA,然后安装NVIDIA驱动

首先查看显卡型号,在终端输入

lspci | grep -i nvidia

执行结果如下

  • 到Nvidia官网查找你显卡对应的最新驱动和系统设置。你可以从此网站上下载并安装驱动,但这样做会升级到更新的驱动,并且卸载的时候会有些麻烦。此外,这么做需要你退出X服务会话,从终端进行安装,这比较麻烦。

  • 我们将使用apt-get来安装驱动。到 “Proprietary GPU Drivers” PPA中查看是否有你最新的驱动。注意,最新的驱动一定是最稳定的。你也可以安装网页上推荐的驱动版本。添加”Proprietary GPU Drivers” PPA 资源库。在写这篇文章的时候,最新版本是396.18,然而推荐版本是390.48:

  •  

在终端输入

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390

重新启动系统

sudo shutdown -r now

检查以确保安装了正确版本的NVIDIA驱动

cat /proc/driver/nvidia/version

 也可以重启后输入如下命令

nvidia-smi

亲爱的读者和支持者们,自动博客加入了打赏功能,陆陆续续收到了各位老铁的打赏。在此,我想由衷地感谢每一位对我们博客的支持和打赏。你们的慷慨与支持,是我们前行的动力与源泉。

日期姓名金额
2023-09-06*源19
2023-09-11*朝科88
2023-09-21*号5
2023-09-16*真60
2023-10-26*通9.9
2023-11-04*慎0.66
2023-11-24*恩0.01
2023-12-30I*B1
2024-01-28*兴20
2024-02-01QYing20
2024-02-11*督6
2024-02-18一*x1
2024-02-20c*l18.88
2024-01-01*I5
2024-04-08*程150
2024-04-18*超20
2024-04-26.*V30
2024-05-08D*W5
2024-05-29*辉20
2024-05-30*雄10
2024-06-08*:10
2024-06-23小狮子666
2024-06-28*s6.66
2024-06-29*炼1
2024-06-30*!1
2024-07-08*方20
2024-07-18A*16.66
2024-07-31*北12
2024-08-13*基1
2024-08-23n*s2
2024-09-02*源50
2024-09-04*J2
2024-09-06*强8.8
2024-09-09*波1
2024-09-10*口1
2024-09-10*波1
2024-09-12*波10
2024-09-18*明1.68
2024-09-26B*h10
2024-09-3010
2024-10-02M*i1
2024-10-14*朋10
2024-10-22*海10
2024-10-23*南10
2024-10-26*节6.66
2024-10-27*o5
2024-10-28W*F6.66
2024-10-29R*n6.66
2024-11-02*球6
2024-11-021*鑫6.66
2024-11-25*沙5
2024-11-29C*n2.88
posted @   大奥特曼打小怪兽  阅读(3231)  评论(1编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
如果有任何技术小问题,欢迎大家交流沟通,共同进步

公告 & 打赏

>>

欢迎打赏支持我 ^_^

最新公告

程序项目代做,有需求私信(小程序、网站、爬虫、电路板设计、驱动、应用程序开发、毕设疑难问题处理等)。

了解更多

点击右上角即可分享
微信分享提示