Java环境下TensorFlow的语义识别功能及编译流程

1. 预备工具

1.1 说明

编译过程有点坑,而且耗时,如果不是必须要编译的话,可以去 https://github.com/fo40225/tensorflow-windows-wheel 下载,有现成的轮子。测试代码可以参考 https://github.com/ksachdeva/tensorflow-cc-examples https://github.com/aljabr0/from-keras-to-c (对开源的作者表示感谢)。

这里我使用的cmake来编译的tensorflow。版本是tensorflow 1.8.0 x64 CPU版本的(tensorflow不支持32位系统,在stackoverflow上看的要支持32位系统需要更改一些源码),本来想编译1.14.0,但是编译过程始终报错,遂降低了版本。tensorFlow 1.11开始,仅支持bazel编译。

1.2 所需工具

工具名版本必要描述
操作系统Win10 64位
CMake3.16.3https://cmake.org/download/
Swigwin4.0.1http://www.swig.org/download.html
Anaconda或者Python3.6Anaconda3-2019.07-Windows-x86_64.exehttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
tensorflow源码1.8.0https://github.com/tensorflow/tensorflow
Git2.23.0https://git-scm.com/downloads
Visual Studio2017或者2015我这里使用的是VS2017专业版本
CUDA和cuDNN显卡决定,注意配套
FQ工具N/A最好能FQ,编译过程中会到墙外下载一些包

2. 编译步骤

2.1 生成sln项目

1. 打开cmake-gui,进行如下图配置,选择VS版本,点击Generate,生成相关配置。tensorflow java 语义识别 tensorflow 编译_github


2. 配置参数,如图所示,由于我编译的是CPU版本,所以没有勾选tensorflow_ENABLE_GPU,点击Generatetensorflow java 语义识别 tensorflow 编译_tensorflow_02

2.2 编译sln项目

1. 打开tensorflow.sln,如图所示。然后修改配置属性,改为x64下的Release。
tensorflow java 语义识别 tensorflow 编译_tensorflow_03


2. 之后需要修改前面5个以下划线命名的项目的配置属性。在 配置属性 > 链接器 > 输入 > 附加依赖项 添加$(SolutionDir)$(Configuration)\pywrap_tensorflow_internal.libtensorflow java 语义识别 tensorflow 编译_编译过程_04


3. 配置好后修改源代码中文件tensorflow\contrib\boosted_trees\lib\utils\sparse_column_iterable.cc,将第99~101行注释掉,改为:

bool operator<( const IndicesRowIterator& other ) const {
    QCHECK_LT( iter_, other.iter_ );
    return ( row_idx_ < other.row_idx_ ); 
}

4. 然后右击ALL_BUILD项目,点击生成就会开始编译了(注意打开FQ软件,因为编译过程中会下载一些文件)。然后就是漫长的等待了。


5. 在所有项目都成功生成后就可以右击INSTALL项目,直接生成,就会将编译好的tensorflow发布到最开始我们在2.1节第2步配置的文件夹中。

3. 问题解决

3.1 下载文件404

这是比较容易遇到的问题,下载文件404。我在编译png项目过程中就遇到过下载文件404(下载链接失效了)。
一个解决办法是在如图所示的配置文件中将无效的下载链接更改为有效的。
tensorflow java 语义识别 tensorflow 编译_tensorflow_05



另一个推荐的解决办法是直接下载对应的文件,然后放在如图所示的文件中。这样由于已经下载成功,那么编译过程中就不会再次下载,而是直接使用下载好的(会验证文件的hash值)。
tensorflow java 语义识别 tensorflow 编译_tensorflow_06



     

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空