win7 x64 vs2015 c++ 使用 tensorflow

     (这里不想使用"深度学习",因为这个名字就是炒作,而且这两年的神经网络带来的性能,并不是因为深.)

     最近的需求需要预研下人脸识别/人工智能. 虽然目前各种人脸识别/图像识别/人工智能,都只是处于人工智障阶段,但是不可否认还是有一些实际价值.所以需要选择一个方案,在项目中使用起来,带来价值,方可推动继续研究.

    前面文章说了.caffe2 是个巨大的坑,现在还不适合跳入. 在短暂调研后抛弃.,随后选择tensorflow. tensorflow相对编译容易了一些.但是仍然有一些坑.

1/编译过程:

    按照网上的各种文章,基本都无法直接顺利完成.

2/编程使用

   网上清一色的 python, 很少有c++资料. 就连google的自带demo都只是一个最简单的调用形成session. 各种基础使用方法都没有.,非常坑.(但是呢换个角度:免费使用就用吧,有用就不错了).而在项目中,不可能使用python.1)大部分这种智能算法需要和项目紧密结合,或者嵌入式设备.这种基本都是需要c/c++/java等.2)效率上,这个不多说,python就是渣.3)依赖环境上:python需要巨大的库,几百兆. +各种依赖库配置.4)其语法就是变态. 5)后期需要对底层算法进行修改,或者添加需要的优化功能,还得是c++方便扩展对接.

   经过摸索基本能实现手写字的从训练到预测的过程所有c++实现.

这一篇主要说下编译的过程:

   

主要参考网页: http://www.cnblogs.com/jliangqiu2016/p/7642471.html,还有一些自己的改动.

 一、环境准备

1.1安装VS2015

1.2安装Swigwin,解压swigwin-3.0.12.zip,放到任意目录。CMake会用到这个目录。(搜索下下载地址)

1.4安装python3.5,安装时注意选择将路径添加到环境变量。(搜索下下载地址)

1.5安装CMake-3.8.0 ,安装时注意选择将路径添加到环境变量。

1.6源码: tensorflow.rar,代码版本是v1.5.0, 不要使用1.3 其中有接口变化.

1.7编辑文件tensorflow/tensorflow/contrib/cmake/CMakeLists.txt,将第87行至93行修改如下:

if (tensorflow_OPTIMIZE_FOR_NATIVE_ARCH)

  include(CheckCXXCompilerFlag)

  CHECK_CXX_COMPILER_FLAG("-march=native"COMPILER_OPT_ARCH_NATIVE_SUPPORTED)

  if (COMPILER_OPT_ARCH_NATIVE_SUPPORTED)

    set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS} -march=native")

  else()

    CHECK_CXX_COMPILER_FLAG("/arch:AVX"COMPILER_OPT_ARCH_AVX_SUPPORTED)

    if(COMPILER_OPT_ARCH_AVX_SUPPORTED)

      set(CMAKE_CXX_FLAGS"${CMAKE_CXX_FLAGS} /arch:AVX")

    endif()

  endif()

endif()

二、编译

cmake-gui界面进行cmake编译出release和debug版本

此处修改为本机swig.exe的地址。

2.1 点击Configure按钮

    tensorflow1.3 用修改这两点,  tensorflow 1.5 不用修改这两点,

2.1.1修改tensorflow\contrib\cmake\build\gemmlowp\src\gemmlowp-stamp下的download-gemmlowp.cmake和gemmlowp-urlinfo.txt两个文件里的75d40ea8e68b0d1644f052fffe8f14a410b2a73d40ccb859a95c0578d194ec26替换为1e40863d9f15dd6b15f8f18f49c500944be6118d9fe17e9dc58a1c709cadbb8a。

2.1.2 修改tensorflow\contrib\cmake\build\re2\src\re2\CMakeLists.txt,将第16行修改为:option(RE2_BUILD_TESTING“enable testing for RE2” OFF)注释掉99行re2_test,注释掉103行search_test。

2.2 点击Generate按钮

2.3 点击Open Project。

三、生成工程

      默认win7 vs2015都识别为 x86环境编译x64的目标,所以调用的编译器为D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\ x86_amd64文件夹的编译器. 会导致32位编译器最后内存不足.修改之后就是使用的x64环境编译器编译x64目标.

      使用64位的cl.exe来编译,可以在D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin下,将amd64文件夹重命名为x86_amd64。

         鼠标点击tensorflow工程编译,不要默认项目编译,或者AllBuild.

   编译的过程中,会去下载代码,所以需要的时间久,耐心等待。有个别工程编译失败的,单独编译这些工程,不用再编译所有工程.

下一篇文章补充windows vs2015 纯c++使用 tensorflow


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
win7 x64驱动开发是指在Windows 7 64位操作系统上进行驱动程序开发的过程。而VS2019配置是指在Visual Studio 2019集成开发环境中进行相关配置的步骤。 Win7 x64驱动开发需要在64位的Windows 7操作系统上进行驱动程序的开发和调试。开发驱动程序需要使用C或C++语言,并且需要具备驱动开发的相关知识和经验。驱动程序是操作系统内核的一部分,它与硬件设备进行通信,控制设备的操作和功能。同时,驱动程序开发也需要考虑操作系统的版本和架构等因素。 而VS2019是微软公司推出的开发工具,它集成了代码编辑器、编译器和调试器等功能,能够帮助开发者进行软件开发工作。在进行Win7 x64驱动开发时,可以使用VS2019进行开发环境的配置,以便更方便地进行代码编写、调试和测试。 为了进行Win7 x64驱动开发,首先需要安装VS2019开发环境。在安装过程中,可以选择安装相关的开发组件,以便支持驱动程序开发所需的功能和工具。安装完成后,可以打开VS2019,创建一个新的驱动程序项目。在项目中,可以添加和编辑驱动程序源代码,并进行编译和构建。在调试过程中,可以使用VS2019提供的调试器进行代码的单步调试和变量的查看。 总结起来,Win7 x64驱动开发和VS2019配置是两个不同的概念,前者是指在Windows 7 64位操作系统上进行驱动程序的开发过程,后者是指在VS2019开发环境中进行相关配置的步骤。通过VS2019的配置,可以更加方便地进行Win7 x64驱动开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值