zoukankan      html  css  js  c++  java
  • 1环境搭建

    https://wenku.baidu.com/view/ef375d8587c24028905fc377.html

     https://blog.csdn.net/nk_wavelet/article/details/78935511?utm_source=blogxgwz0

     https://blog.csdn.net/qwfzpk/article/details/79112097

    https://blog.csdn.net/qxconverse/article/details/76376718

    https://www.cnblogs.com/zjutzz/p/9532483.html

    1.VS安装

    VS社区版(个人免费):

    http://download.microsoft.com/download/B/4/8/B4870509-05CB-447C-878F-2F80E4CB464C/vs2015.com_chs.iso

    https://ultraiso.en.softonic.com/download安装utrol iso 打开iso文件,提取到目标文件夹

    安装时选自定义安装,只选一个

     2.cuda安装

     第一步

           下载cuda

     第二步

           运行安装

           

       

     

    直接默认路径即可

    安装完毕环境变量中多了

    增加其余几个变量

    在Path末尾添加

    重新启动计算机以使环境变量生效

    打开vs2015,新建控制台项目,空项目打勾。点击源文件->添加->新建项

    右键项目

    选择如图所示

    右键属性

    之后进行项目配置

    x64配置

    项目->属性->配置属性

    编辑添加

    3.安装cudnn

    解压后 拷贝到相对应的目录C:ProgramFilesNVIDIA GPU Computing ToolkitCUDAv7.5

    工程属性页-链接器-输入中添加cudnn.lib的附件依赖项

    4.安装cmake

    5.安装anaconda

    安装2.7

    6.caffe安装

    安装后,运行GeFroce Experience,点击“驱动程序”—>“检测更新”

     解压caffe

     

    简要说明

    直接git clone了caffe-BVLC然后checkout到windows分支,编译还是可能遇到问题。这里记录一下。

    环境说明

    系统: Windows10
    编译器:Visual Studio 2013/2015
    构建器:CMake 3.12
    Caffe: BVLC官方Caffe的windows分支
    Python: python2.7,用anaconda装的。注意python.exe所在目录放到系统PATH环境变量中
    CUDA: 9.2 (可选)
    CuDNN:7.0(可选)
    终端: cmd窗口

    具体步骤

    1. 下载代码

    进cmd敲:

    d:
    cd work
    git clone https://github.com/BVLC/caffe caffe-BVLC
    cd caffe-BVLC
    git checkout -b windows origin/windows

    2.改正配置

    2.1 cuda配置

    纯cpu编译的调过这一小节。
    cmake/Cuda.cmake,第7行,去掉20和21的算力支持(否则新版cuda会报错),改成:

    set(Caffe_known_gpu_archs "30 35 50 52 60 61")

    cmake/Cuda.cmake,第40行左右,手动设定nvcc架构版本,例如我是1080Ti显卡,使用6.1:

    set(__nvcc_out "6.1")

    (为啥这里的自动获取计算能力版本有问题?大概是字符编码导致输出很多警告,警告信息影响了正确结果的获取)
    (每个Nvidia显卡型号对应的compute ability表见:https://blog.csdn.net/real_myth/article/details/44308169)

    2.2 下载依赖项

    为了避免cmake下载遭遇网络问题,以及修改配置项的方便,根据scripts/download_prebuilt_dependencies.py手动下载依赖文件:
    (如果你网路还可以,那么忽略这一小节,脚本会自动下载)

    WIN_DEPENDENCIES_URLS = {
        ('v120', '2.7'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v120_x64_py27_1.1.0.tar.bz2",
                      "ba833d86d19b162a04d68b09b06df5e0dad947d4"),
        ('v140', '2.7'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2",
                      "17eecb095bd3b0774a87a38624a77ce35e497cd2"),
        ('v140', '3.5'):("https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py35_1.1.0.tar.bz2",
                      "f060403fd1a7448d866d27c0e5b7dced39c0a607"),
    }

    下载后的压缩包放到C:Userschris.caffedependenciesdownload目录下,然后解压到download的同级目录

    2.3 再次修改cuda相关配置

    接下来,如果你要用cuda编译,那么一定要修改C:Userschris.caffedependencieslibraries_v140_x64_py27_1.1.0librariesincludeoost-1_61oostconfigcompiler vcc.hpp:注释掉最后三行:

    #if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500)
    #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES
    #endif

    (原因:cuda7.5以后,__CUDACC_VER__被废除,应当使用__CUDACC_VER_MAJOR___CUDACC_VER_MINOR__等,参考https://github.com/BVLC/caffe/issues/5994、https://blog.csdn.net/qq_37817177/article/details/80604294)。

    2.4 开始编译

    回到刚才的cmd,继续敲(#后面是注释,不用敲进去)

    set PATH=%PATH%;C:WindowsMicrosoft.NETFrameworkv4.0.30319  #临时添加MSBuild.exe的路径
    set MSVC_VERSION=12 #12对应到我用的vs2013.  build_win.cmd中默认为vs2015,也就是13
    set WITH_NINJA=0  # 不使用ninja,用visual studio。因为编译中间出了问题在vs里面好查看。
    # set CPU_ONLY=1  # 如果没有GPU,或者就是想编译CPU版本,则开启
    set RUN_INSTALL=1 #安装。默认走的非appveyor分支,RUN_INSTALL为0,这不是坑人么。
    
    .scriptsuild_win.cmd # 前面我写明的修改项都完成后,本行会顺利执行。

    编译期间出现“锟斤拷”的乱码可以忽略,最后:
    成功编译

    成功编译和安装

    build_win.cmd脚本中的设定,默认编译的是release模式的。修改脚本,或者干脆打开cmake生成的build/Caffe.sln工程来编译debug版本。

    2.5 配置pycaffe

    因为目前不搞训练了,系统上只装一个caffe版本,不存在多个版本冲突问题。那么就方便点,把build/install/python/caffe文件夹,拷贝到D:softAnaconda2Lib下。

    以后再开VSCode时,import caffe再也不会报红了。

    3 使用caffe.lib

    比如不想在原始的caffe工程中添加自己的代码,这样保持了caffe自身代码不变,只要在自己的使用了caffe库的工程中正确设定,就独立的开发自己的代码了。

    假设自己的这个工程也是基于cmake构建,最关键的一点是,正确配置了前面编译的caffe的依赖项,而不是自己再去重新配一遍..

    set(CAFFE_DEPENDENCIES_DIR "C:/Users/Administrator/.caffe/dependencies/libraries_v120_x64_py27_1.1.0")
    include(${CAFFE_DEPENDENCIES_DIR}/libraries/caffe-builder-config.cmake)

    完整的例子见:
    https://github.com/zchrissirhcz/toolbox/tree/master/cmake_examples/caffe_cpp_play_better

    值得注意的是:前面编译出来的caffe-BVLC的,其构建类型要与自己的工程一致,也就是debug搭配debug,release搭配release。我这里实验发现debug模式

    下个别库名字不对,缺少“d”或者"-d",在Visual Studio里手动改一下就可以了。

    之后

    打开Caffe.sln进行编译,又经过漫长的等待,在scriptsuild oolsDebug(或Release)中生成了caffe-d.exe,此时caffe就算是编译完了 

    完整的例子见

    https://www.cnblogs.com/david97/p/8961168.html

     7.安装opencv

    如果你是别的版本的Opencv,可以根据你的系统选择X64(64位操作系统)X86(36位操作系统),vc14表示VS2015,vc12表示VS2013

    在系统环境变量中添加:

    D:opencvopencvuildx64vc14in

    va2015的配置

     

    测试代码:

    #include<iostream>

    #include <opencv2/core/core.hpp>

    #include <opencv2/highgui/highgui.hpp>

    using namespace cv;

    int main() {

    // 读入一张图片(游戏原画)

    Mat img = imread("pic.jpg");

    // 创建一个名为 "游戏原画"窗口

    namedWindow("游戏原画");

    // 在窗口中显示游戏原画

    imshow("游戏原画", img);

    // 等待6000 ms后窗口自动关闭

    waitKey(6000);

    }

    下面就是具体的操作步骤:

    环境:
    VisualStudio 2013 (必需)
    CUDA 7.5(可选)
    cudnn v3 or v4 (可选)
    事实上Caffe还有很多其他的依赖库,如boost,OpenCV等。Microsoft版本的Caffe使用了NuGet来管理,编译时会自动进行下载。
    首先在https://github.com/Microsoft/caffe将项目clone下来,保存在本地,根目录我们后文称之为CAFFE_ROOT 下图即为根目录

    有上图可以看到CAFFE_ROOT 内有一个和官方Caffe很不同的地方,多了一个windows文件夹。打开文件夹就是微软已经为我们建立好的vs工程,

    在开始之前需要先将CAFFE_ROOTwindowsCommonSettings.props.example 文件复制一份,并命名为CommonSettings.props 这里保存着编译

    的一些设置内容。打开CAFFE_ROOTwindowsCommonSettings.props 里面有几点重要的设置需要注意

    <CpuOnlyBuild>false</CpuOnlyBuild>
    <UseCuDNN>true</UseCuDNN>

    第一个设置为true表示只使用CPU,不使用CUDA,第二个选择true表示使用CuDNN,反之为false。其他的还有一些Cuda版本,Python支持,MATLAB支持,这里都选false。
    如果选择开启CUDA的话,需要在NVIDIA官网下载[7.5版本的CUDA](https://developer.nvidia.com/cuda-downloads)进行安装。

    我编译的环境如下(只开启了CUDA)

    <CpuOnlyBuild>false</CpuOnlyBuild>
    <UseCuDNN>false</UseCuDNN>
    <CudaVersion>7.5</CudaVersion>
    <PythonSupport>false</PythonSupport>
    <MatlabSupport>false</MatlabSupport>

    打开 CAFFE_ROOTwindowsCaffe.sln 对libcaffe和caffe项目做如下设置
    项目→属性→C/C++→常规→将警告视为错误 设置为否
    如果不设置的话在编译boost库的时候会由于文字编码的警告而报错

    1. 选择编译环境为Release,x64(其他环境同理)。首先编译libcaffe,在libcaffe上右键生成就可以了

    2. libcaffe编译成功后再编译caffe,所有编译成功和运行需要的dll文件都会存储在CAFFE_ROOTBuildx64Release 下

    opencv_objdetect2410.lib
    kernel32.lib
    user32.lib
    gdi32.lib
    winspool.lib
    comdlg32.lib
    advapi32.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    uuid.lib
    odbc32.lib
    odbccp32.lib
    libboost_date_time-vc120-mt-1_59.lib
    libboost_filesystem-vc120-mt-1_59.lib
    libboost_system-vc120-mt-1_59.lib
    libglog.lib
    libcaffe.lib
    gflags.lib
    gflags_nothreads.lib
    hdf5.lib
    hdf5_hl.lib
    libprotobuf.lib
    libopenblas.dll.a
    Shlwapi.lib
    opencv_core2410.lib
    opencv_highgui2410.lib
    opencv_imgproc2410.lib
    LevelDb.lib
    lmdb.lib
    opencv_video2410.lib

  • 相关阅读:
    获取连接无线路由客户机信息命令
    HTB进行流量控制方法
    exec函数族用法
    java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    struts2从请求取值的三种方式
    用jsp写的网页 怎么在传递参数时包含中文?
    Struts2使用DoubleSelect实现二级级联下拉框省份城市
    MySQL里主键与外键的关系
    查看struts2源码
    WIN7系统下,用笔记本发送WIFI信号让手机无线上网!
  • 原文地址:https://www.cnblogs.com/invisible2/p/10170819.html
Copyright © 2011-2022 走看看