bazel源码安装tensorflow

下载bazel
注意留意bazel与tensorflow的版本,文章使用的是tensorflowr9 和bazel12

1.先安装java
sudo apt-get install openjdk-8-jdk

2.安装bazel
sudo chmod +x sudo chmod +x bazel-0.12.0-installer-linux-x86_64.sh
./bazel-0.12.0-installer-linux-x86_64.sh --user

3.编译tensorflow

我使用的是c++库,所以只需要libtensorflow_cc.so
配置
./configure
全选no,后期可能会考虑cuda

编译
tensorflow编译的时候,需要下载很多依赖的外部包,这些包直接下载很容易失败,所以建议离线安装,首先下载好对应的包,放在本地
以grpc为例:
1.在tensorflow/workspace.bzl中查看grpc对应下载地址:https://github.com/grpc/grpc/archive/69b6c047bc767b4d80e7af4d00ccb7c45b683dae.tar.gz
2.直接下载到本地
3.搭建本地的简单服务器

#coding:utf-8
from flask import Flask, request, jsonify, send_from_directory, abort
import os
from flask import make_response

app = Flask(__name__)

@app.route("/download/<filename>", methods=['GET'])
def download_file(filename):
	cur_dir = os.getcwd()
	files_dir = os.path.join(cur_dir, 'download_files')
	response = make_response(send_from_directory(files_dir, filename, as_attachment=True, mimetype='application/octet-stream'))
	response.headers["Content-Disposition"] = "attachment; filename={}".format(filename.encode().decode('latin-1'))
	return response

@app.route('/hello')
def hello():
	return 'Hello world.'
	
if __name__ == '__main__':
	app.run(host='0.0.0.0',port=8888) 

然后将workspace.bzl中grpc中对应的地址修改成本地服务器的地址

下面这一步好像没用,但是我也操作了
bazel build --config=opt --config=monolithic //tensorflow/tools/pip_package:build_pip_package
编译过程中,安装了numpy 和mock
sudo pip install numpy
sudo pip install mock

build之前需要先编译安装protobuf 和eigen(一个矩阵运算库)

bazel build --config=monolithic -c opt --verbose_failures //tensorflow:libtensorflow_cc.so

其中-c opt 是 --config=opt 的简写

如果不加–config=monolithic,编译出来的库会导致cv::imread() 为空,和opencv的jepg库冲突
添加了导入库的时候,只需要导入libtensorflow_cc.so,不再需要libtensorflow_framework.so
#同时导入libtensorflow_cc.so,libtensorflow_framework.so 还碰到过protobuf不一致的冲突问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值