启动 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 ...
随机推荐
- 选轻量应用服务器or云服务器ECS?一图帮你彻底区分
简介:轻量应用服务器适合轻量级且访问量低的应用场景,更适合个人开发者.对新手小白更友好:而云服务器ECS可覆盖全业务场景(如大数据分析,深度学习等),要求用户有一定的开发技术能力. 本文首发于公众号& ...
- Apsara Stack 技术百科 | 标准化的云时代:一云多芯
简介:随着今年云栖大会现场平头哥的自研云芯片倚天710发布,以及众多新兴厂商的芯片发布,将有越来越多的类型芯片进入到主流市场,"多芯"的架构将在数据中心中越来越常见,阿里云混合云 ...
- [FE] uni-app 安装 uview-ui 的两种方式
一. 下载的方式安装 就是把源码放到项目根目录中,然后引入 scss.js,并配置 easycom 模式. https://www.uviewui.com/components/install.htm ...
- vue项目hbuilder打包-微信登录调取手机微信登录权限
这个笔记得做好. 1.vue页面的点击事件 import {login,loginy,wxLog,wxLogin,logout} from '../network/login' wxloginBtn( ...
- 最近常用的几个【行操作】的Pandas函数
最近在做交易数据的统计分析时,多次用到数据行之间的一些操作,对于其中的细节,简单做了个笔记. 1. shfit函数 shift函数在策略回测代码中经常出现,计算交易信号,持仓信号以及资金曲线时都有涉及 ...
- C++ Grammar Focus
一.结构体 1.基础模板 struct Node { <变量类型1> 变量名1; <变量类型2> 变量名2; ... } <定义变量名1>,<定义变量名2&g ...
- 【经典爬虫案例】用Python爬取微博热搜榜!
目录 一.爬取目标 二.编写爬虫代码 2.1 前戏 2.2 获取cookie 2.3 请求页面 2.4 解析页面 2.5 转换热搜类别 2.6 保存结果 2.7 查看结果数据 三.获取完整源码 一.爬 ...
- PHP游戏线下线上陪玩平台APP小程序H5源码开发多少钱?可用于家政,陪诊,陪伴服务等
做陪玩app项目,不少创业者们都比较头疼该如何去选择软件系统!目前软件市场上,陪玩app平台的软件系统五花八门,价位也是参差不齐.创业者们都比较纠结是定制开发,还是选择开元源码二次开 发? 前两天成都 ...
- Python——基本输入和输出
Python提供了基本的输入和输出功能,这些功能通常是通过内置的input()函数(用于输入)和print()函数(用于输出)来实现的.以下是这两个函数的详细描述和示例: 1. print() 函数( ...
- SpringBoot-EasyExcel导出数据(带图片)
前言 EasyExcel 是阿里巴巴开源的一个Java操作Excel的技术,和EasyPoi一样是封装Poi的工具类. 但是不同的地方在于,在EasyExcel中解决了Poi技术读取大批量数据耗费内存 ...