win10-anaconda2-theano-cuda7.5-vs2013

三年一梦 三年一梦     2022-08-27     437

关键词:

两天的辗转反侧,终于灵光一现找到了错误。

首先,我在win10下配置好了gpu和cudnn版本的caffe。但是因为win平台的限制,caffe用的不够舒服。因为之前用过一阵子theano,虽然很慢,但是灵活啊,于是又将矛头指向了theano。。

theano cpu版本安装很容易,主流方法都是利用Anaconda,方便快捷。

本文主要介绍自己搞gpu和其他人配置时的坑,希望大家可以避免。

1. 文件.theanorc.txt

    这里犯了一个很傻*的错误。win10后缀名是隐藏的,因为之前用的是win7后缀名不隐藏,所以自从在win10上安装了theano,此文件相当于被我命名 .theanorc.txt.txt 所以其实一个月来我就一直用的是cpu。。关键我还不知道文件格式都是错的,细思恐极。。下图正解:

 

2. cuda版本

    之前安装caffe的时候,我装的是cuda8,因为我的无知,以为问题出现在cuda上,把cuda卸了,装上了cuda7.5.以下是我遇到过的错误(从参考的博客中截取,因为我不想在改成错误的配置来演示,心痛。。):

                       

好,这张图的错误就是我一直以来的错误,划红线的是主要的错误

 我的错因出现在了:'--compiler-bindir ''C:Program Files<x86>\Microsoft Visual Studio 12.0\VC\bin'。  这个compiler bindir 把它理解为编译目录

  因为我的这个路径只有:Microsoft Visual Studio 11.0

                      

  而在.theanorc.txt文件中需要写nvcc的编译目录,所以网上99%的教程都是compoler_bindir=C:Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin

  所以我在自己的.theanorc.txt文件里这么写:compoler_bindir=C:Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin

  所以永远都不可能正确! 一直有报错找不到 vcvars64.bat 文件。于是我就按照博主的心路历程找到了另一为博主和另另一位博主,按照他们所言,下载了VCForPython27.msi文件,也配置了路径,也   找到了 vcvars64.bat文件,将它复制到了C:Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin里,但是还报错找不到vcvars64文件。直到我幸运的遇到了另另另一位博主,他     的文章里的路径是这样的与众不同:compiler_bindir = D:\software\VS2013\VC\bin。我想怎么在VS安装的路径下呢???我打开自己的VS安装路径,发现里面竟然有vcvars64.bat文     件!!!我仿佛明白了什么,这个路径才是适合自己的!当然为什么我这么确信呢》因为我看到这么一张图:

                                   

   图1这么写:cuda7.5支持win10,图2这么写:cuda7.5在VS2013下的编译器是Visual C++ 12.0,上面提到过了,我压根儿在C盘没找到啊,于是我确信这个compiler_bindir一定是这样的:                                 

                                              

 好了,PyCharm里测试下gpu.test:

此时我的.theanorc.txt是这样滴:

         

跑官网测试gpu的例子:

总算有了gpu信息了!但是还有一些不和谐的东西:CNMeM is disabled, cuDNN not availabel.  就是说cudnn还不能用,当然我还没配置呢。

但是有以下办法消除其他不和谐的信息: 加入[lib]  cnmen=0.8 和allow_input_downcast=True

       

看下结果:

正确!没有错误和bug了。就是cdnn还没用。

 注意不能直接在.theanorc.txt中写:optimizer_including=cudnn,会出现如下错误:里面有一行:Reason=CNMEM_STATUS_OUT_OF_MEMORY

 意思应该是cnmem初始化设置太大超出了内存状态!所以在.theanorc中注意设置cnmem=0.8,如果还提示内存不够就再往小设置,越小占内存比越少。

 另外在错误后面还有个小hint:还可以在.theanorc中设置optimizer=fast_compile,或optimizer=None,这样也可以让程序正确运行。

 

3.配置cudnn

 将cudnn下载后解压会发现有个名为cuda的文件夹里面有三个文件:lib,include,bin。将这三个文件复制到cuda安装目录下进行覆盖替换:

  

替换cuda原来就有的三个文件夹,这时再运行gpu测试程序,就会发现连cudnn not avaliable 也不见了。完美。

      另:感谢知乎er贾峰原话:“有很多人推荐:在用户变量中新建变量pythonpath = C:\Anaconda2\Lib\site-packages\theano; 然后被坑了一把。完全没有必要,而且会导致spyder启动时弹窗,kernel died等问题,这个是我亲测,搞了一天。。。 ”     “安装Anaconda时,千万别安装Python 3.5版本的,总显示GPU不能使用。而且千万别安装spyder3系列,即Anaconda4.2.0以上。而应该Python 选择2.7,spyder选择2系列,即Anaconda4.1.1版本及以下。原因是什么呢?因为spyder3总是不调用ipythonw.exe解释器,而调用ipython.exe,导致theano编译的时候,总是弹窗nvcc.exe,”

            感谢另一位知乎erRednaxelaFX  的回答 : 为什么运行theano程序时总是会输出一堆DEBUG: nvcc STDOUT mod.cu ?

    首先nvcc是NVIDIA CUDA Compiler,跟Visual Studio没啥关系。其次是那个DEBUG:提示信息是完全无害的,只是在调用nvcc编译东西的时候输出的信息。升级Theano的话可能就不会看到它总是打出来了。

     注:以上弹窗和DEBUG这俩问题我都有,不过只是Aanconda和Theano的问题,不是错误,无关痛痒,我暂时也懒得折腾。最后,谢谢所有默默为大家提供疑难解答的大神!

 

主要参考:

手把手教你搭建深度学习平台——避坑安装theano+CUDA

Win7 64位配置GPU版Theano与Keras详细指南(趟坑无数,手把手教你避坑)

Win10环境下安装theano并配置GPU详细教程

Win7+theano+CUDA+Keras血泪史

Converting to the new gpu back end(gpuarray)

 

 

win10常用快捷键大全

 一、Win10新增功能快捷键大全:1、贴靠窗口:Win+左/右> Win+上/下>窗口可以变为1/4大小放置在屏幕4个角落。2、切换窗口:Alt+Tab(不是新的,但任务切换界面改进)。3、任务视图:Win+Tab(松开键盘界面不会消失)。4... 查看详情

win7与win10安装

...关指令完成任务。慢慢的,视窗操作系统最初是基于DOS的windows9X内核WIN95、WIN98、WINME,直到WINDOWSNT技术的出现,产生了WIN2000、WINXP、WINVISTA、WIN7直到今天的WIN10。  1.安装win7  由于WIN7之前的 查看详情

win7/win8/win8.1/win10如何升级win10最新预览版

微软已经宣布现有的windows8/Windows8.1系统将免费升级到Windows10系统,Windows7老用户也将享受免费升级的待遇,一旦设备升级到Windows10,将享受终生免费。所以大家赶紧升级吧,以下是升级方法:一、通过ISO镜像安装的方法:Win7/Win8... 查看详情

win10快捷命令收集

桌面相关Win+D:显示桌面Win+Tab:虚拟桌面切换器Win+Ctrl+D新建桌面Win+Ctrl+左/右:移动虚拟桌面Win+m:最小化窗口Win键+Ctrl+F4关闭虚拟桌面窗口相关Alt+Tab切换窗口Win+Home:仅保留当前窗口,其余窗口最小化。Win+左/右/上/下:移动应... 查看详情

其实win10要比win7的安全性强很多

随着win10系统的一步步更新,用户体验度也越来越好,更多的用户也换了win10的系统,但还是有一部分用户依然雷打不动的信任着win7。下面小编来分析一下win7和win10到底有着怎样的差别,相信看完下文,你也会想升级win10系统了... 查看详情

win7win8win10jdk的配置

一、前言  win7和win8的jdk配置基本一样,所以本文以win7和win10来说明配置。二、win7jdk环境配置(win8和这个一样)  首先安装好jdk,这里已安装好jdk7,本文采取的是jdk7默认的安装方式。2.1、jdk安装完成后,右击计算机-... 查看详情

实用快捷键

快捷键功能Win+A打开操作中心Win+I打开设置Win+E打开文件资源管理器Win+S打开搜索Win+K打开「连接」快速操作Win+D显示桌面Win+,预览桌面内容Win+L锁定屏幕Win+Shift+S唤起Windows截图Win+Ctrl+D创建虚拟桌面Win+Ctrl+F4关闭当前虚拟桌面Win+Ctrl+... 查看详情

win10怎么关闭system

参考技术Awin10为什么关闭system把win10system关闭了,系统就彻底关闭了。升级上来的win10,都会出现卡慢现象,下载同版本安装盘再重灌一次,用win8.1的硬体驱动程式,win10系统就正常了。只是DVD播放器装不上了。Win10怎么关机,Win1... 查看详情

win10快捷键

1.贴靠窗口:Win+左/右>Win+上/下>窗口可以变为1/4大小放置在屏幕4个角落;2.切换窗口:Alt+Tab3.任务视图:Win+Tab(松开键盘界面不会消失);4.创建新的虚拟桌面:Win+Ctrl+D;5.关闭当前虚拟桌面:Win+Ctrl+F4;6.切换虚拟桌面:Win+Ctr... 查看详情

win7和win10的区别

说到电脑系统,现在大部分人使用的系统无非是win7和win10俩个系统,这里小编就给大家总结一下这俩个系统的有缺点。 win7是微软2009年发布一款Windows系统,想想时间也是很快,这个系统也服役了10年了,从软硬件兼容程度上... 查看详情

win10到底好吗?win7/win10系统全面对比评测

 历经9个月数百万人内测完善之后,微软终于发布Win10正式版系统。但是可能对于部分用户而言,Win7仍然是绝对的经典、游戏玩家的不二之选,为何非要升级到Win10系统呢?Windows10性能和功能相比Windows7,有提升吗?下面IT之... 查看详情

win10怎么关机win10关机快捷键大全

桌面状态,快捷键Alt+F4 选择关机。参考技术AWin10系统关机方法一:开始菜单的关机选项  1、其实Win10恢复了开始菜单,在Win10系统开始菜单的顶部即可看到电源按钮状的“关机选项”  2、点击“关机选项”按钮,在弹出... 查看详情

win10改装win7

...:https://jingyan.baidu.com/article/3ea51489d0f3c852e61bba01.html1.制作win7U盘启动盘2.设置BIOS  1:OSOptimizedDefaults:改成disable(有的是others)旁边有英文说明。科普下,enable是默认预装的win10或者win8操作系统,要改成非默认的win7或者其他系... 查看详情

uefi+gpt安装win7,win8/win10下安装win7双系统

...改:我们知道,uefi+gpt引导虽然出来的时间比较长,但是win7还不能完全的支持,所以在使用uefi+gpt安装win7的时候就会出现各种错误!所以我们在安装Windows7的时候,不能把BIOS设置为“纯UEFI”,并且必须禁用“SecureBoot&rdq... 查看详情

win10系统的快捷键

1.win10特有的快捷键:任务视图和虚拟桌面相关(1)Win+Tab:查看任务视图(2)Win+Ctrl+D:在任务视图中新建虚拟桌面(3)Win+Ctrl+F4:关闭当前的虚拟桌面(4)Win+Ctrl+左方向键  Win+Ctrl+右方向键  在虚拟桌面之间相互切换2.win1... 查看详情

win32gui findwindow 不工作 win7

】win32guifindwindow不工作win7【英文标题】:win32guifindwindowdoesn\'tworkwin7【发布时间】:2013-08-2916:13:14【问题描述】:我使用下面的代码来激活命令promt:hwn=win32gui.FindWindow(None,"Promptdeicomandi-pythondemo.py")win32gui.SetForegroundWindow(hwn)Promptd 查看详情

我装了win7和win10双系统想互相隐藏c盘

在win7运行时在我的电脑中可以看见win10的C盘在win10运行时在我的电脑可以看见win7的C盘我想win7时隐藏win10的系统盘在win10时隐藏win7的系统盘在win7系统下右键我的电脑-管理-磁盘管理-删除安装windows10磁盘盘符在win10系统下右键此电... 查看详情

哪个跨平台预处理器定义? (__WIN32__ 或 __WIN32 或 WIN32 )?

】哪个跨平台预处理器定义?(__WIN32__或__WIN32或WIN32)?【英文标题】:WhichCrossPlatformPreprocessorDefines?(__WIN32__or__WIN32orWIN32)?【发布时间】:2011-02-2817:00:39【问题描述】:我经常看到__WIN32、WIN32或__WIN32__。我认为这取决于使用的预... 查看详情