当前位置: 首页 > news >正文

上海有色金属门户网站天津网站制作的公司

上海有色金属门户网站,天津网站制作的公司,30平小商铺装修,漯河网站超市建设唉。好不容易折腾完毕caffe#xff0c;突然发现caffe比较适合搭建卷积神经网络#xff0c;而对于DBN和LSTM的搭建好像比较麻烦#xff0c;相关教程没有找到#xff0c;手头上又有一个theano的代码想调试看看#xff0c;所以入坑了。 准备工具#xff1a; VS2013:链接突然发现caffe比较适合搭建卷积神经网络而对于DBN和LSTM的搭建好像比较麻烦相关教程没有找到手头上又有一个theano的代码想调试看看所以入坑了。 准备工具 VS2013:链接http://pan.baidu.com/s/1coNs7c 密码r2s4 Anaconda2-4.0.0:链接http://pan.baidu.com/s/1o7Nu4Qm 密码qiil 关于anaconda可以到官网下载https://www.continuum.io/downloads#_windows 【注】本教程只是瞎折腾最新版的theano 0.9目前网上的教程基本都是theano 0.82版本的配置方法好像 第一步 安装anaconda 【PS】尽量使用3.5版本一下的因为我注意要PTVS竟然不支持python3.5如果你使用pycharm的话可以自己尝试一下python3.x的配置 双击安装 第二步 winr输入cmd命令打开命令窗口输入 pip install theano可能你们运行的和我不一样因为我已经安装过了如果为安装过的话这个界面会弹出一堆横条条附带百分号显示安装了多少 下面那个python -m pip install --upgrade pip 是更新命令敲上去再说。。。。。。。 归结起来步骤就是下载anaconda-安装之-cmd安装theano-pip命令的更新(这个随便) 第三步 配置一下python的环境变量这个anaconda安装完毕以后好像会有python.exe只需要把这个环境变量加进去就行啦(记得与后面的环境变量用英文分号隔开) 测试一下python是否安装成功 cmd输入python就行了 但是当我们输入import theano.tensor as T的时候提示g未检测到这个时候使用anaconda下载一个mingw不要轻易自己去下载mingw安装可能会遇到坑 直接cmd里面输入 conda install mingw libpython下载完毕以后添加环境变量 path中添加C:\Anaconda2\MinGW\bin;C:\Anaconda2\MinGW\x86_64-w64-mingw32\lib;【根据你自己的路径定哦】 新建一个PYTHONPATHC:\Anaconda2\Lib\site-packages\theano;【同样根据自己的路径添加】 好了测试一下怎么样 看到这里就放心了成功~~~ 第四步 【注】使用pycharm的童鞋可以跳过此步骤反正都是python的IDE嘛没啥区别。 VS安装PTVS这个可以在https://pytools.codeplex.com/这里找到相关视频教程在https://www.youtube.com/watch?vJNNAOypc6Ek我记得需要下载两个东西 这个就不解释了 傻瓜式安装就是直接文件-新建-python然后他会提示缺少什么而且相关安装信息也会给你就点它安装就行视频教程很清楚只看前三分钟就行后面介绍的是PTVS的特性。 第五步 更新VS的环境变量 第六步 测试一下theano是否安装成功 在此处能找到测试代码http://deeplearning.net/software/theano/install_windows.html#installation-of-theano-on-windows 我贴出来我的测试代码 import numpy as np import time import theano Anp.random.rand(1000,10000).astype(theano.config.floatX) Bnp.random.rand(10000,1000).astype(theano.config.floatX) np_starttime.time() ABA.dot(B) np_endtime.time() X,Ytheano.tensor.matrices(XY) mftheano.function([X,Y],X.dot(Y)) t_starttime.time() tABmf(A,B) t_endtime.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(), ))我的测试结果 第七步 【废话】网上有很多theano 0.8.2的配置方法虽然可以运行出结果但是我跑代码的时候就是出错无奈啊瞎折腾了许久最后瞎配了也不知道成功了没但是运行我目前的代码是达到了CPU一样的效果之前按照网上配置的theano 0.8.2虽然测试没问题也能算东西但是就是结果明显不对尴尬说了堆废话。 前提条件安装CUDA8.0CUDNN5.1的方法看我前面caffe的gpu安装方法就行啦最好是找个方法自己测试一下你的cuda和cudnn是否正确安装因为我的GPU版caffe能跑起来说明环境一起准备妥当如果后续出现问题肯定可以排除CUDA和cudnn安装错误这个选项。 因为前面使用pip安装过CPU版本的theano我也不知道这个会不会影响conda安装同样的东西不过保险起见卸载之win10管理员powershell运行 pip uninstall theano接下来的方法很简单 首先其实也就是比网上theano 0.8.2的配置方法多出来的一步骤 conda install theano pygpu 然后找到依据cmd运行所提示的home目录一般都是类似于C:\Users\Administrator这个文件夹慢慢找学计算机的基本都知道这个文件夹非计算机的没找到建议寻求计算机专业学生帮助。在此文件夹下添加空白的.theanorc.txt文档然后添加以下内容 [global] openmp False device gpu floatX float32 allow_input_downcastTrue[blas] ldflags [gcc] cxxflags -IC:\ProgramData\Anaconda2\MinGW\x86_64-w64-mingw32\include[nvcc] flags -LC:\ProgramData\Anaconda2\libs compiler_bindir C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin fastmath True[cuda] rootC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0[dnn] include_pathC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include library_pathC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64[lib] cnmem0.8 路径自己对着改改。 第八步 为了保险进行了两次测试。 使用cmd中的python命令行测试如下代码 新建一个test.py from theano import function, config, shared, sandbox import theano.tensor as T import numpy import timevlen 10 * 30 * 768 # 10 x #cores x # threads per core iters 1000rng numpy.random.RandomState(22) x shared(numpy.asarray(rng.rand(vlen), config.floatX)) f function([], T.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 % iters, t1 - t0, seconds) print (Result is, r) if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):print (Used the cpu) else:print (Used the gpu)运行结果 PS E:\code_test\theano python .\test.py WARNING (theano.sandbox.cuda): The cuda backend is deprecated and will be removed in the next release (v0.10). Please switch to the gpuarray backend. You can get more information about how to switch at this URL:https://github.com/Theano/Theano/wiki/Converting-to-the-new-gpu-back-end%28gpuarray%29Using gpu device 0: GeForce GTX 1060 6GB (CNMeM is disabled, cuDNN 5005) [GpuElemwise{exp,no_inplace}(CudaNdarrayType(float32, vector)), HostFromGpu(GpuElemwise{exp,no_inplace}.0)] (Looping 1000 times took, 0.32000017166137695, seconds) (Result is, array([ 1.23178029, 1.61879349, 1.52278066, ..., 2.20771813,2.29967761, 1.62323296], dtypefloat32)) Used the gpu ---------------------可爱的分割线---------------------------------- 使用jupyter notebook测试另一个关于图像的代码 import theano import numpy import pylab from theano import tensor as T from theano.tensor.nnet import conv from PIL import Image # 生成一个随机数生成类rng其seed为23455随机数种子。 rng numpy.random.RandomState(23455) # 实例化一个4D的输入tensor是一个象征性的输入相当于形参需要调用时传入一个实参 input T.tensor4(nameinput) # 权值数组的shape可以理解为权值的数组大小用来确定需要产生的随机数个数 #该大小可以理解为是一个 2行3列 的矩阵其中每个矩阵元素又是一个 9行9列的 矩阵 w_shp (2, 3, 9, 9) # 每个权值的边界用来确定需要产生的每个随机数的范围。 w_bound numpy.sqrt(3 * 9 * 9) # rng.uniform(low,hign,size)的作用是产生一个shape为size的均匀分布数组每个数的范围为(low,high) # numpy.asarraya的作用是将 类数组a 转化为array类型 # theano.shared()实例化一个权值变量只是为了进行GPU加速时用可以调用W.get_value()查看其value W theano.shared( numpy.asarray( rng.uniform( low-1.0 / w_bound, high1.0 / w_bound, sizew_shp), dtypeinput.dtype), name W) # 下面是用同样的方法初始化一个偏置值bb通常被初始化为0因为它在算法中会有一个被学习的过程 # 但是此处是需要直接用它来计算所以用随机值给它初始化就当做是已经经过学习后的值了。 b_shp (2,) b theano.shared(numpy.asarray( rng.uniform(low-.5, high.5, sizeb_shp), dtypeinput.dtype), name b) # conv.conv2d(input,filter) 需要2个输入一个是input一个是filter。 # input就是上文中的4D张量每个张量分别代表[mini-batch size特征图的数量图像高度图像宽度]。 # filter就是上文中的W。也是一个4D张量分别代表[m层特征图数量m-1层特征图数量过滤器高度过滤器宽度]。 # # 当其他函数需要用到变量conv_out时会先把实参input传入conv2d()中再计算出conv_out # conv_out conv.conv2d(input, W) # dimshuffle是一个很强大的能轻松改变一个张量结构的工具。b.dimshuffle(x, 0, x, x) # 就是把b的原始的第0列向量的左侧添加一个维度在其右侧添加两个维度。 # b原来是个一维数据(2)经过dimshuffle之后则变成了一个四维数据(1*2*1*1)。 # dimshuffle具体的操作参见文章一开始。 output T.nnet.sigmoid(conv_out b.dimshuffle(x, 0, x, x)) # 创建一个用来过滤图像的theano.function可以把f编译为c然后就可以随时拿来用了。 # # 当其他函数需要调用f时调用形式为f(input)需要传入实参input然后将计算结果存入output中。 # f theano.function([input], output) # 下面开始处理几幅图片来看一下效果 # 打开一幅图片源代码中有2个open应该是在linux中的语法我是在windows上运行的所以改成1个open img Image.open(F:\\Photo\\1.jpg)# 得到图片的宽度和高度注意顺序一定不要弄反 img_w, img_h img.size # 将图片像素按照高度宽度通道数量格式化为array数组 # 其实就是将图片数据格式化为一个数组因为每个像素点包括3个字节B,G,R且其范围为0-255 # 这个地方最后将其除以256是为了归一化归一化后的数据是float64类型 img numpy.asarray(img, dtypefloat32) / 256. # 图片的原始数据是一个3D数据【高宽通道数量】 # 经过数据置换(transpose(2,0,1))之后变成了【通道数量高宽】 # 因为f中传入参数需要4D因此需要将图片数据reshape成为一个【1, 通道数量, 高, 宽】这样的4D张量 # reshape的参数一定要注意1就是最外的那一维度3就是通道数量然后是【高】和【宽】 # 这样结果的 img_.shape 【1, 3, 宽, 高】 # # 为什么reshape为这样的size呢因为调用f时需要传入一个input而这个input就是4D最终的这个input是传入到 # conv2d中的第一个参数而那个参数的格式是什么呢[mini-batch size特征图的数量图像高度图像宽度] # 这样就串起来了吧第一个参数是batch size据我所知应该是指卷积核的数量吧但是不知道为什么这里是1 # 第二个参数代表输入层的特征图数量这个地方是3其实就是把一张彩色图片按照3个通道作为3个特征图进行输入 # 最后两个是图像的高度和宽度正好一一对应。 # img_ img.transpose(2, 0, 1).reshape(1, 3, img_h, img_w) # 将img_作为f的参数经过计算得到输出 filtered_img f(img_) # 将原始图片显示出来 pylab.subplot(1, 3, 1); pylab.axis(off); pylab.imshow(img) # 图片灰度化 pylab.gray(); # 分别显示不同处理后的图片 pylab.subplot(1, 3, 2); pylab.axis(off); pylab.imshow(filtered_img[0, 0, :, :]) pylab.subplot(1, 3, 3); pylab.axis(off); pylab.imshow(filtered_img[0, 1, :, :]) pylab.show() 结果【注】第二个测试代码一定要测试因为我当时配置theano 0.8.2的GPU模式以后死活运行不了这第二个代码第一个代码的结果倒是和网上说的一模一样。
http://www.sadfv.cn/news/59430/

相关文章:

  • 华夏名网修改网站信息找人做的网站 没登录口
  • 福建微网站建设无锡seo网站建设费用
  • 无锡网站推广优化费用福建网页制作
  • 网站改版数据来源表改怎么做vs2010网站开发 SQL
  • 插画网站网站建设学习资料
  • 大兴网站开发网站建设价格商城网站建设新闻
  • 长春代做网站网站建设理由和目的
  • 学做网站论坛好吗91关键词排名
  • html5移动端手机网站开发流程图北京国税局网站做票种核定时
  • 贵港做网站化司企业网站建设的核心
  • 重庆网站建设培训机构学费动漫设计需要什么学历
  • 余杭区建设局网站品牌宣传网站有哪些
  • 合肥网站营销外国做挂的网站是多少钱
  • 扁平化设计 科技感网站素材南康家具网站建设
  • 知名商城网站建设价格山东省建设资格注册中心网站
  • 怎么利用源码做网站wordpress使用端口
  • 如何进行网站分析58同城如何发布网站建设
  • 铜山网站建设做一张网站图得多少钱
  • 做仿站如何获取网站源码企业管理软件是什么
  • 苏州外贸网站建站邯郸网络科技
  • 成都网站建设 龙兵php 企业网站 后台图片上传
  • 网站编辑 seo是什么 百度知道安徽省住房城乡建设厅网站官网
  • 黄冈贴吧黄冈论坛吧西安seo公司哪家好
  • 网站备案链接地址网络营销外包服务商
  • 企业网站建设费用账务处理用dreammwea怎么做视频网站
  • 亳州网站开发海南百度推广公司有哪些
  • 可以做招商的网站营销型网站的特点有哪些
  • 建被采集的网站pk10代码网站开发
  • 傻瓜式php网站开发工具ps培训班一般学费多少钱
  • 网站工作室模板wordpress链接自定义后文章打不开