专栏首页python3grpc官方文档实验与翻译(python

grpc官方文档实验与翻译(python

tensorflow分布式与tensorflow serving底层通信都是是用的grpc,所以就看了一下grpc的基本用法(python版)

首先是环境的安装,先要更新pip到version8或者以上

$ python -m pip install --upgrade pip

为了不影响自带的python环境所以我重新建立了个环境来实验,我的python环境是conda所以用conda重新建立了个python3.5的环境

$conda create --name py35tf python=3.5
$source activate py35tf

如果不是使用conda的小伙伴可以安装virtualenv来完成,可以使用conda env list来查看自己创立的环境

接下来还是工具的安装

$ python -m pip install grpcio
$ python -m pip install grpcio-tools
$ pip install protobuf

protobuf其实是google自己开发的类似xml一类的序列化的工具,等会要用到,所以也要安装

接下来我们首先试着使用一下官方给予的example,然后再按照自己的需求更新proto文件 服务端和客户端的python文件

从github上clone官方教程

$ # Clone the repository to get the example code:
$ git clone https://github.com/grpc/grpc
$ # Navigate to the "hello, world" Python example:
$ cd grpc/examples/python/helloworld

然后运行greeter_server.py和greeter_client.py,为了更好的观察,我在运行server.时加了&让它后台运行

$ python greeter_server.py &
$ python greeter_client.py

这时候窗口会输出Greeter client received:Hello,you!

然后使用jobs查看一下服务端的进程ID,再使用kill ID直接带走服务端进程,准备写一个自己定义的服务了

首先需要修改proro文件来定义服务,主要是添加了SayHelloAgain

syntax = "proto3";
// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
  // Sends another greeting
  rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

官方文档中没有第一句,编译成python时老是报错,接下来开始编译成python接口

$ python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. ./helloworld.proto

这样就把两个py接口文件都更新好了,现在更新服务端文件,原来Greeter类下只有SayHello一个方法,现在添加一下SayHelloAgain

def SayHelloAgain(self, request, context):
    return helloworld_pb2.HelloReply(message='Hello again, %s!' % request.name)

现在再更改一下客户端的调用接口,添加调用和输出的代码

  response = stub.SayHelloAgain(helloworld_pb2.HelloRequest(name='you'))
  print("Greeter client received: " + response.message)

完成后再运行服务端和客户端,来个截图收工,有空再试着使用tensorflow serving

(既要实习又要发论文的日子好难熬~.~)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Amax K40 Linux GPU服务器重装记录

    因为这台GPU服务器闲置了很久,经过这两天的安装,现在基本能用了。整个过程其实挺坎坷的,因此记录下此次安装过程中遇到的坑,后面好参考。服务器从原先的OpenSu...

    王云峰
  • 数据科学该学习哪门编程语言?Python,R还是Scala?

    做数据科学,到底应该学习哪门编程语言呢?本文将从语言的特性、第三方库、公司使用情况来做一些分析。

    PP鲁
  • TensorFlow 安装GPU版本

    TensorFlow 有两个版本:CPU 版本和 GPU 版本。GPU 版本需要 CUDA 和 cuDNN 的支持,CPU 版本不需要。如果你要安装 GPU 版...

    Centy Zhao
  • 【BERT系列】—— 将Tensorflow格式的模型转换为Pytorch格式的模型

    以BERT为代表的预训练模型是目前NLP领域最火热的方向,但是Google发布的 BERT 是Tensorflow格式的,这让使用pytorch格式 程序猿 们...

    Dendi
  • 年度盘点,30个开创性的Python开源项目-你都用过哪些?

    Python正在蓬勃发展,它的Github页面也是如此。今年对于Python来说是非常好的一年,我们看到了一些非常强大的Python开源项目。今天,我们列出了一...

    HuangWeiAI
  • 重磅!Uber发布史上最简单的深度学习框架Ludwig!不懂编程也能玩转人工智能

    昨日,Uber官网重磅宣布新开源深度学习框架Ludwig,不需要懂编程知识,让专家能用的更顺手,让非专业人士也可以玩转人工智能,堪称史上最简单的深度学习框架!

    CV君
  • 谷歌大脑提出DropBlock卷积正则化方法,显著改进CNN精度

    昨天arXiv新上一篇被NIPS2018会议接收的论文《DropBlock: A regularization method for convolutional...

    CV君
  • TensorFlow2.0(9):神器级可视化工具TensorBoard

    TensorBoard是TensorFlow中的又一神器级工具,想用户提供了模型可视化的功能。我们都知道,在构建神经网络模型时,只要模型开始训练,很多细节对外界...

    统计学家
  • 谷歌发布AdaNet,快速灵活的AutoML工具,帮助开发者构筑强大集成学习模型

    集成学习可以有效利用不同机器学习算法,提高最终模型精确度,在Kaggle比赛中被广泛应用。

    CV君
  • 「圣诞特辑」纯前端实现人脸识别自动佩戴圣诞帽

    叮叮当,叮叮当,吊儿个郎当,一年一度的圣诞节到咯,我不由的回想起了前两年票圈被圣诞帽支配的恐惧。打开票圈全是各种@官方求帽子的:

    Javanx

扫码关注云+社区

领取腾讯云代金券