• 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虚拟环境的目录

    • /etc/profile - 环境变量 - 简书

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

简单例子

  • 客户端:(:要进去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的更多相关文章

  1. Android开机启动Activity或者Service方法

    本文出自 “Bill_Hoo专栏” 博客,请务必保留此出处http://billhoo.blog.51cto.com/2337751/761230 这段时间在做Android的基础开发,现在有一需求是 ...

  2. Android开机启动Activity或者Service方法(转载)

    这段时间在做Android的基础开发,现在有一需求是开机启动,按照网上某些博文教程做了下,始终不成功,一开机总是提示所启动的应用程序意外终止,于是参考了Android SDK doc,终于解决问题,下 ...

  3. android中如何在系统启动的时候启动自己的service

    自定义一个broadcastreciver在去接受系统启动消息,然后在处理的时候启动自己的service即可

  4. 无法启动 Diagnostic Policy Service(服务错误 1079)的解决方案

    问题 在services.msc中手动启动 Diagnostic Policy Service 时,弹出以下提示: ---------------------------服务------------- ...

  5. vmware无法安装vmware authorization&windows无法启动VMware Authorization Service服务

    在vmware安装过程中或更新时,时常遇到vmware无法安装vmware authorization&windows无法启动VMware Authorization Service服务的情况 ...

  6. VMware Workstation 未能启动VMware Authentication Service

    (1)今天像往常一样打开vmware启动虚拟机,但是弹出个框,显示VMware Workstations 未启动VMware Authorization Service,让我尝试手动启动. (2)Wi ...

  7. 启动、关闭Service

    //获取程序界面中的start.stop两个按钮 start = (Button) findViewById(R.id.start); stop = (Button) findViewById(R.i ...

  8. Android四大组件之Service --- 如何启动和停止Service?

    启动和停止方法主要是通过Intent来实现 以上一篇中的ServiceTest项目为例来启动和停止MyService这个服务 首先修改activity_main.xml中的代码,如下所示:<Li ...

  9. centOS 7下无法启动网络(service network start)错误解决办法

    今天在centOS 7下更改完静态ip后发现network服务重启不了,翻遍了网络,尝试了各种方法,终于解决了. 现把各种解决方法归纳整理,希望能让后面的同学少走点歪路... 首先看问题:执行serv ...

  10. Android——开机启动功能(Service和BroadcastReceiver)

    BroadcastReceiver(广播接收器):发出广播让服务器去接收 BootReceiver.java package com.example.chenshuai.test321; import ...

随机推荐

  1. 选轻量应用服务器or云服务器ECS?一图帮你彻底区分

    简介:轻量应用服务器适合轻量级且访问量低的应用场景,更适合个人开发者.对新手小白更友好:而云服务器ECS可覆盖全业务场景(如大数据分析,深度学习等),要求用户有一定的开发技术能力. 本文首发于公众号& ...

  2. Apsara Stack 技术百科 | 标准化的云时代:一云多芯

    ​简介:随着今年云栖大会现场平头哥的自研云芯片倚天710发布,以及众多新兴厂商的芯片发布,将有越来越多的类型芯片进入到主流市场,"多芯"的架构将在数据中心中越来越常见,阿里云混合云 ...

  3. [FE] uni-app 安装 uview-ui 的两种方式

    一. 下载的方式安装 就是把源码放到项目根目录中,然后引入 scss.js,并配置 easycom 模式. https://www.uviewui.com/components/install.htm ...

  4. vue项目hbuilder打包-微信登录调取手机微信登录权限

    这个笔记得做好. 1.vue页面的点击事件 import {login,loginy,wxLog,wxLogin,logout} from '../network/login' wxloginBtn( ...

  5. 最近常用的几个【行操作】的Pandas函数

    最近在做交易数据的统计分析时,多次用到数据行之间的一些操作,对于其中的细节,简单做了个笔记. 1. shfit函数 shift函数在策略回测代码中经常出现,计算交易信号,持仓信号以及资金曲线时都有涉及 ...

  6. C++ Grammar Focus

    一.结构体 1.基础模板 struct Node { <变量类型1> 变量名1; <变量类型2> 变量名2; ... } <定义变量名1>,<定义变量名2&g ...

  7. 【经典爬虫案例】用Python爬取微博热搜榜!

    目录 一.爬取目标 二.编写爬虫代码 2.1 前戏 2.2 获取cookie 2.3 请求页面 2.4 解析页面 2.5 转换热搜类别 2.6 保存结果 2.7 查看结果数据 三.获取完整源码 一.爬 ...

  8. PHP游戏线下线上陪玩平台APP小程序H5源码开发多少钱?可用于家政,陪诊,陪伴服务等

    做陪玩app项目,不少创业者们都比较头疼该如何去选择软件系统!目前软件市场上,陪玩app平台的软件系统五花八门,价位也是参差不齐.创业者们都比较纠结是定制开发,还是选择开元源码二次开 发? 前两天成都 ...

  9. Python——基本输入和输出

    Python提供了基本的输入和输出功能,这些功能通常是通过内置的input()函数(用于输入)和print()函数(用于输出)来实现的.以下是这两个函数的详细描述和示例: 1. print() 函数( ...

  10. SpringBoot-EasyExcel导出数据(带图片)

    前言 EasyExcel 是阿里巴巴开源的一个Java操作Excel的技术,和EasyPoi一样是封装Poi的工具类. 但是不同的地方在于,在EasyExcel中解决了Poi技术读取大批量数据耗费内存 ...