美文网首页
windows7+caffe+cpu+python接口

windows7+caffe+cpu+python接口

作者: 活体检测业余爱好 | 来源:发表于2017-07-28 10:37 被阅读214次

    首先注意的是:ubuntu上面训练好的模型,可以直接用在windows下的caffe中测试,模型是可以跨平台的,并且命令都是几乎一样的,目前没有发现有啥不一样,并且最后无论批量测试还是单张测试的结果与ubuntu上面的结果一抹一眼(理论上也应该是一样的哦~~傻)

    主要参考:blog.csdn.net/sinat_27403413/article/details/52791489

    材料准备:

    (1)VS2013(VS2015应该也可以,我用的是2013,安装包:pan.baidu.com/s/1miJsd4W):其中需要安装NuGet(是Visual Studio的扩展,可以给项目自动添加一些第三方组件),安装方法如下:
        a. 打开vs2013,点击“工具”-“扩展和更新”
        b. 在弹出的对话框中点击“联机”,在右上角搜索框中搜索NuGet,在搜索结果中“NuGet Package Manager”项上面的“下载”,开始下载NuGet,下载完后进行安装
        c. 安装完后重启vs2013,重启后点击“工具”-“扩展和更新”,选择“已安装”,可以看到NuGet Package Manager已经安装好了。
    (2)Anaconda2:官方网址:www.continuum.io/downloads,百度云:pan.baidu.com/s/1c2Gk8zI
        注意:安装的时候最好把自动添加path的选项勾选,并且安装完成之后,再pip install protobuf,后面才不会出错
    (3)微软提供Windows工具包(caffe-master):github.com/Microsoft/caffe(我用的是官网的,有16个项目,注意核对,BVLC的“caffe-windows.zip”中只有15个项目,但是都不影响编译)    百度云:pan.baidu.com/s/1hs8ngpA 密码:ith0
    (4)微软的Windows三方包(Nuget得到的包):链接:pan.baidu.com/s/1pKQKJJP 密码:2vzy,只要解压在caffe-master同路径下即可:

      注意:本来NugetPackages文件夹是在下面生成libcaffe项目以及生成caffe解决方案的时候下载的,但是下载时间会很久,所以可以直接下载好放在同路径下。

    caffe的安装及Python接口的配置

    (1)解压caffe-master以及第三方NugetPackages库于同一文件夹下,如上图。

    (2)打开caffe-master->windows,复制CommonSettings.props.example,修改后缀为CommonSettings.props(其实就是相当于ubuntu下面caffe编译用到的makefile.config)

    (3)修改CommonSettings.props:修改CpuOnlyBuild为true,UseCuDNN改为false。因为要配置Python接口,所以PythonSupport改为true,并将下面的PythonDir修改为自己的Python安装路径,注意Anconda2后面那个斜线不能少。

    注意:就算此刻下面python的路径不对,好像没啥影响,可能是因为后面是直接把编译好的东西放在python包中的吧(因为我是在我的电脑上编译完成之后,把我编译好的东西直接放在另一台电脑上用的,并没有用该电脑自己编译最后生成的caffe包,而我这两台电脑的python路径就不一样)

    (4)双击caffe.sln,在VS2013中打开文件:

    首先点击解决方案,设置解决方案配置和解决方案平台分别是release和x64(这一步是使用Release来进行编译,若用Debug,则之后每次都要打开vs,会不方便):

    之后,右击解决方案中的libcaffe项目,选择“属性”,在打开的属性页中选择“C/C++”-“常规”,将“将警告视为错误”设为“否”,如下图所示

    先生成项目:libcaffe,再生成解决方案caffe,最后生成项目:pycaffe。完成之后生成可以调用的caffe包:

    把最后生成的caffe文件夹拷贝到python安装目录的\Lib\site-packages中

    (5)验证:打开python,输入import caffe 看看是否报错,没有报错恭喜你,可以使用了(你也可以继续输入from caffe import layers as L和from caffe import params as P试一试)

    注意的是:我做的能见度识别的项目中,ubuntu上面是先将所有图像resize到256,并且生成均值文件,但是网络的大小是227,在ubuntu下测试单张图片没错,但是在windows下面,居然会报错:均值文件的大小与输入图像大小不匹配的问题,后面按照网上的解决方法,修改最后生成的caffe下面的io.py文件:

    改成如下这一段:

    if ms != self.inputs[in_][1:]:
        print(self.inputs[in_])
        in_shape = self.inputs[in_][1:]
        m_min, m_max = mean.min(), mean.max()
        normal_mean = (mean - m_min) / (m_max - m_min)
        mean = resize_image(normal_mean.transpose((1,2,0)),in_shape[1:]).transpose((2,0,1)) * \
        (m_max - m_min) + m_min
        #raise ValueError('Mean shape incompatible with input shape.')

    即可,后面发现为啥ubuntu里面测试没错,原来是ubuntu下面的caffe-master/python/io.py文件里面的代码就是上面这样的!!!

    注意项目的位置:E:\caffe\caffe-master\examples\visionClass

    相关文章

      网友评论

          本文标题:windows7+caffe+cpu+python接口

          本文链接:https://www.haomeiwen.com/subject/esankxtx.html