因为要部署,模型比较大,所以通常官网的pip install 和bazel 教程编译的都是cpu版本的代码,

所以为了感受下gpu就尝试自己编译了,首先,下载源码:

git clone --recurse-submodules https://github.com/tensorflow/serving

这里有个坑,下载玩serving代码后还要在在子模块,但是子模块主要包含两个:

tensorflow

tf_models

tensorflow是蛮快下载的,但是,tf_models却很麻烦,网速慢还文件大。后面我没下载下来

就直接取消了,不过这样就可以了。然后:

cd tensorflow
./configure

配置下就行,关于support,只留cuda相关配置就好了,有一个要注意的,对于cuda路径我经常写/usr/local/cuda,但是常失败,后面尝试/usr/local/cuda-8.0 就ok(我的是cuda8.0,/usr/local/cuda实际指向的是/usr/local/cuda-8.0)。

bazel build -c opt --config=cuda tensorflow_serving/...
然后,当然啦,报了一个通常的错误关于crosstool的。
tensorflow/third_party/gpus/crosstool
解决方法:https://github.com/tensorflow/serving/issues/186#issuecomment-251152755

1. the crosstool in tools/bazel.rc is invalid (AFAIK). change @org_tensorflow//third_party/gpus/crosstool to @local_config_cuda//crosstool:toolchain.

2. the cuda_configure repository rule will fail (haven't looked in to why exactly), but essentially an bazel clean --expunge && export TF_NEED_CUDA=1 will fix this.

简单地讲就是,打开tools/bazel.rc文件,修改@org_tensorflow//third_party/gpus/crosstool 替换为 @local_config_cuda//crosstool:toolchain (一般是第一行)

然后在serving目录下执行bazel clean --expunge && export TF_NEED_CUDA=1 就可以了。

不过,好戏才刚开始,你会发现报各种错,可能是bazel的,可能是cuda的。反正缺这缺那的,我编译个model_server,容易吗????对呀,我只编译model server呀。修改策略:

bazel build -c opt --config=cuda //tensorflow_serving/model_servers:tensorflow_model_server

经过若干时间的等待,终于ok了,之前报错是因为很多七七八八用不到的都在编译了。蛋疼!!!!

使用就很简单啦,看官网。

tensorflow-serving-gpu 本地编译并使用的更多相关文章

  1. tensorflow serving GPU编译问题

    编译gpu版本:bazel build -c opt --config=cuda --spawn_strategy=standalone //tensorflow_serving/model_serv ...

  2. Tensorflow r1.12及tensorflow serving r1.12 GPU版本编译遇到的问题

    1.git clone tensorflow serving 及tensorflow代码 2. ERROR: /root/.cache/bazel/_bazel_root/f71d782da17fd8 ...

  3. Tensorflow serving的编译

    Tensorflow serving提供了部署tensorflow生成的模型给线上服务的方法,包括模型的export,load等等. 安装参考这个 https://github.com/tensorf ...

  4. 基于TensorFlow Serving的深度学习在线预估

    一.前言 随着深度学习在图像.语言.广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用.而在广告CTR预估方面,新模型也是层出不穷: Wide and Deep[1] ...

  5. Tensorflow Serving介绍及部署安装

    TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库.它可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用.更加让人眼前一亮的是,它支持 ...

  6. 学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集

    TensorFlow Serving https://tensorflow.github.io/serving/ . 生产环境灵活.高性能机器学习模型服务系统.适合基于实际数据大规模运行,产生多个模型 ...

  7. tensorflow 模型保存与加载 和TensorFlow serving + grpc + docker项目部署

    TensorFlow 模型保存与加载 TensorFlow中总共有两种保存和加载模型的方法.第一种是利用 tf.train.Saver() 来保存,第二种就是利用 SavedModel 来保存模型,接 ...

  8. TensorFlow Serving简介

    一.TensorFlow Serving简介 TensorFlow Serving是GOOGLE开源的一个服务系统,适用于部署机器学习模型,灵活.性能高.可用于生产环境. TensorFlow Ser ...

  9. Setup Tensorflow with GPU on Mac OSX 10.11

    Setup Tensorflow with GPU on OSX 10.11 环境描述 电脑:MacBook Pro 15.6 CPU: 2.7GHz 显卡: GT 650m 系统:OSX 10.11 ...

随机推荐

  1. C高级第二次作业

    PTA作业第一部分 6-7 删除字符串中数字字符(10 分) 删除一个字符串中的所有数字字符. 函数接口定义: void delnum(char *s); 其中 s是用户传入的参数. 函数的功能是删除 ...

  2. Web.xml详解分析

    一.首先了解项目加载的优先级 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结 ...

  3. Google - chanceToLose24Game

    /* 一个类似24点的游戏,假设牌桌上有无数张1-10的牌,然后你手上的牌的总和是k,现在你可以随机到牌桌上抽牌加到总和里,如果你手上牌的总和在20-25之间就是win,如果总和超过25就是lose, ...

  4. 关于动态内存malloc和realloc

    1.malloc   1.申请的内存长度可以运行时决定,单位是字节  2.申请的内存为连续的内存空间  3.返回的地址可以根据实际需要强转成对应的类型  4.动态申请内存的生命周期是整个程序,除非手动 ...

  5. 第三章 JQuery: HelloWorld--常见方法--css--选择器--筛选器--属性--效果--事件--数组操作--字符串操作--对象转换

    1.jQuery简介 为了简化JavaScript 的开发, 一些JavsScript 库诞生了. JavaScript库封装了很多预定义的对象和实用函数.能帮助使用者建立有高难度交互的页面, 并且兼 ...

  6. 内置---排序(sorted)

    # li = [1,23,4,5,6,6,7]# res = sorted(li,reverse=True) #反转后,从小到大 默认从大到小 #res = sorted(li) # print(re ...

  7. 创建用户自定义函数 SQL

    //创建用户自定义函数------标量函数 create function dbo.bmrs(@bmh as int) returns int as begin declare @bmrs int s ...

  8. ADS1.2和JlinkV8 erro starting external process,Process error code 87(0x57)参数错误

    ADS1.2和JlinkV8  erro starting external process,Process error code 87(0x57)参数错误 网上的大致说法是说这个跟W7有关 说是将I ...

  9. c# 状态机实现

    c#仿boost statechart的状态机.去年转到unity使用c#,statechart原来的风格蛮爽的,缺点是编译忒慢,在c#则编译根本不是问题. 不一样的地方首先是简单!因为没做一些东西如 ...

  10. 解决配置Windows Update失败,还原更改问题

    问题描述 由于配置Windows Update失败,还原更改状态下无法正常关机.只能长按电源键关机后进入WinPE环境. 解决步骤 进入WinPE环境->选择Dism++->选择版本-&g ...