启动 bert-as-service
- S1:启动bert-as-service时,执行命令
bert-serving-start -model_dir /downloads/uncased_L-12_H-768_A-12/ -num_worker=2
- 出现错误(依赖库版本不对)
RuntimeWarning: compiletime version 3.6 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.8
...
E:GRAPHOPT:[gra:opt:154]:fail to optimize the graph!
..
TypeError: cannot unpack non-iterable NoneType object
- S2:安装1.14版本的tensorflow,执行命令
pip install -i https://pypi.doubanio.com/simple/ tensorflow==1.14- 安装失败
ERROR: Could not find a version that satisfies the requirement tensorflow==1.14 (from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3)
ERROR: No matching distribution found for tensorflow==1.14
- 原因:必须使用python <=3.7来安装Tensorflow 1.14

- 解决:通过创建conda虚拟环境,在这个环境下安装1.14版本的tf
- 镜像安装tensorflow-cpu1.14及Keras超详细版 - 灰信网(软件开发博客聚合)
- S3:创建conda_python3.6 (python=3.6, tensorflow=1.14) 虚拟环境
# 1. 创建一个环境,指定python版本
conda create --name conda_python3.6 python=3.6
# 2. 启动该环境
conda activate conda_python3.6
# 3. 验证环境是否被选中
conda info --envs
# 4. 验证python版本
python --version
# 5. 禁用环境
conda deactive
- S4:在创建完conda_python3.6虚拟环境之后,执行安装命令,安装成功
pip install -i https://pypi.doubanio.com/simple/ tensorflow==1.14
pip install -i https://pypi.doubanio.com/simple/ keras==2.2.5 - S5:重新执行启动命令,仍然出错
看上图,这个启动命令还是在python3.8上执行的,这是为啥?
又去找原目录(python3.8)了,结果还是tf==2.6.3
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/bert_serving/server/helper.py:175: UserWarning: Tensorflow 2.6.3 is not tested! It may or may not work. Feel free to submit an issue at https://github.com/hanxiao/bert-as-service/issues/要改目录,让它去找conda虚拟环境的目录

su root //进入root用户
vi /etc/profile
原路径:export PATH=/Library/Frameworks/Python.framework/Versions/3.8/bin/:$PATH
修改为:export PATH=/Users/qun/opt/anaconda3/envs/conda_python3.6/:$PATH
- S6:重新执行命令,仍然出错

The name tf.logging.set_verbosity is deprecated. Please use tf.compat.v1.logging.set_verbosity instead.
The name tf.logging.ERROR is deprecated. Please use tf.compat.v1.logging.ERROR instead.
- 在之前的路径里加了bin (没用)
export PATH=/Users/qun/opt/anaconda3/envs/conda_python3.6/bin/:$PATH
- 在网上查了,说这错误@是因为tf 2.0移除了一些API,但是咱这不是tf1.14吗?? 疑惑了
- 解决:按照[完美解决:针对tensorflow中tf.logging.set_verbosity(tf.logging.ERROR)问题](https://blog.csdn.net/tangerrr/article/details/105340433)里面的修改了`/Users/qun/opt/anaconda3/envs/conda_python3.6/lib/python3.6/site-packages/bert_serving/server/helper.py`文档
原程序:
tf.logging.set_verbosity(tf.logging.DEBUG if verbose else tf.logging.ERROR)
修改为:
tf.compat.v1.logging.set_verbosity(tf.logging.DEBUG if verbose else tf.compat.v1.logging.ERROR)
- S7: 重新执行命令,错误@成功解决,但是还有俩错误

主错误:
E:GRAPHOPT:[gra:opt:154]:fail to optimize the graph!
回溯查找错误原因:
1. tensorflow.python.framework.errors_impl.NotFoundError: /downloads/uncased_L-12_H-768_A-12/bert_config.json; No such file or directory
2. TypeError: 'NoneType' object is not iterable
- 解决:按照 tensorflow中的tensorflow.python.framework.errors_impl.NotFoundError 错误及解决方法_u014553172的博客-CSDN博客中执行
bert-serving-start -model_dir ~/downloads/uncased_L-12_H-768_A-12/ -num_worker=2成功!!

简单例子
- 客户端:(:要进去conda_python3.6才行)

- 服务端:

- 第二个小例子


- Use exit() or Ctrl-D (i.e. EOF) to exit
- 也可以通过
bc = BertClient(ip='xx.xx.xx.xx') # ip address of the GPU machine进行远程调用
启动 bert-as-service的更多相关文章
- Android开机启动Activity或者Service方法
本文出自 “Bill_Hoo专栏” 博客,请务必保留此出处http://billhoo.blog.51cto.com/2337751/761230 这段时间在做Android的基础开发,现在有一需求是 ...
- Android开机启动Activity或者Service方法(转载)
这段时间在做Android的基础开发,现在有一需求是开机启动,按照网上某些博文教程做了下,始终不成功,一开机总是提示所启动的应用程序意外终止,于是参考了Android SDK doc,终于解决问题,下 ...
- android中如何在系统启动的时候启动自己的service
自定义一个broadcastreciver在去接受系统启动消息,然后在处理的时候启动自己的service即可
- 无法启动 Diagnostic Policy Service(服务错误 1079)的解决方案
问题 在services.msc中手动启动 Diagnostic Policy Service 时,弹出以下提示: ---------------------------服务------------- ...
- vmware无法安装vmware authorization&windows无法启动VMware Authorization Service服务
在vmware安装过程中或更新时,时常遇到vmware无法安装vmware authorization&windows无法启动VMware Authorization Service服务的情况 ...
- VMware Workstation 未能启动VMware Authentication Service
(1)今天像往常一样打开vmware启动虚拟机,但是弹出个框,显示VMware Workstations 未启动VMware Authorization Service,让我尝试手动启动. (2)Wi ...
- 启动、关闭Service
//获取程序界面中的start.stop两个按钮 start = (Button) findViewById(R.id.start); stop = (Button) findViewById(R.i ...
- Android四大组件之Service --- 如何启动和停止Service?
启动和停止方法主要是通过Intent来实现 以上一篇中的ServiceTest项目为例来启动和停止MyService这个服务 首先修改activity_main.xml中的代码,如下所示:<Li ...
- centOS 7下无法启动网络(service network start)错误解决办法
今天在centOS 7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了. 现把各种解决方法归纳整理,希望能让后面的同学少走点歪路... 首先看问题:执行serv ...
- Android——开机启动功能(Service和BroadcastReceiver)
BroadcastReceiver(广播接收器):发出广播让服务器去接收 BootReceiver.java package com.example.chenshuai.test321; import ...
随机推荐
- MaxCompute在电商场景中如何进行漏斗模型分析
简介: 本文以某电商案例为例,通过案例为您介绍如何使用离线计算并制作漏斗图. 背景 漏斗模型其实是通过产品各项数据的转化率来判断产品运营情况的工具.转化漏斗则是通过各阶段数据的转化,来判断产品在哪一个 ...
- 双龙贺岁,龙蜥 LoongArch GA 版正式发布
简介:Anolis OS 8.4 LoongArch 正式版发布产品包括 ISO.软件仓库.虚拟机镜像.容器镜像. 简介 继 Anolis OS LoongArch 预览版发布后,现迎来龙蜥 ...
- WPF控件:密码框绑定MVVM
以下是一种使用 MVVM 模式的方法: 首先,在 ViewModel 中添加一个属性来保存密码,我们可以使用 SecureString 类型. // 密码变量 private SecureString ...
- DOM操作学习
一.DOM对象-查找元素 # 1.直接查找 # 获取标签对象的方式: document.getElementById('#id') #根据ID获取一个标签(获取的是单独的对象) document.ge ...
- 阿里云边缘容器云帮助AI推理应用快速落地
近日,阿里云技术专家徐若晨在全球分布式云大会上,分享了<边缘容器云助力AI推理高效落地>的主题演讲,分享了阿里云边缘容器云如何助力开发者实现更快速的AI推理应用的迭代和部署.此外,他还分享 ...
- 012_DRC检查与处理
Check entire design:DRC检查整个原理图: Check Selection:DRC检查选择的部分电路: Use occurrences:选择所有事件进行检查: Use instan ...
- Python使用HTMLTestRunner运行所有用例并产生报告
#coding:utf-8import unittestimport osimport sysimport HTMLTestRunnercase_path = os.path.join(os.path ...
- .Net 8.0 下的新RPC,IceRPC之"请求"生命线意义非凡
作者引言 很高兴啊,我们来到了IceRPC之"请求"生命线意义非凡,号称"死亡时间"的追命线,颤抖吧! "请求"生命线之意义非凡 本文将深入 ...
- 前端使用 Konva 实现可视化设计器(9)- 另存为SVG
请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ github源码 gitee源码 示例地址 另存为SVG 这一章增强了另存为的能力,实现" ...
- AI编译器CINN v.s TVM 中CodeGen 源码解读
如下的技术点梳理仅以「日常优化工作」为牵引点,涉及哪个模块,就具体去看哪个模块的代码. 一.CINN 框架 CINN 中CodeGen之后的代码编译主要交给了Compiler类来负责.核心的函数主要是 ...