bert icon indicating copy to clipboard operation
bert copied to clipboard

bert-as-service (bert-serving-start) gives "TypeError: 'NoneType' object is not iterable" error for multilingual bert

Open shashi-netra opened this issue 4 years ago • 1 comments

x-posted to bert-serving repo, as well, with apologies, as I, am not sure which is the culprit.

I'm using this command to start the server:

bert-serving-start -model_dir ./multi_cased_L-12_H-768_A-12/ -num_worker 4

Then this error happens and IDK what's happening here, the error messages are too cryptic. BTW I am able to run the Important: I am running BERT serving with a uncased_L-12_H-768_A-12 and it works just fine. So it appears to be some compatibility issues?

me@devbox:~/BERT_Multi$ bert-serving-start -model_dir ./multi_cased_L-12_H-768_A-12/ -num_worker 4
/usr/local/lib/python3.6/dist-packages/bert_serving/server/helper.py:176: UserWarning: Tensorflow 2.2.0 is not tested! It may or may not work. Feel free to submit an issue at https://github.com/hanxiao/bert-as-service/issues/
  'Feel free to submit an issue at https://github.com/hanxiao/bert-as-service/issues/' % tf.__version__)
usage: /usr/local/bin/bert-serving-start -model_dir ./multi_cased_L-12_H-768_A-12/ -num_worker 4
                 ARG   VALUE
__________________________________________________
           ckpt_name = bert_model.ckpt
         config_name = bert_config.json
                cors = *
                 cpu = False
          device_map = []
       do_lower_case = True
  fixed_embed_length = False
                fp16 = False
 gpu_memory_fraction = 0.5
       graph_tmp_dir = None
    http_max_connect = 10
           http_port = None
        mask_cls_sep = False
      max_batch_size = 256
         max_seq_len = 25
           model_dir = ./multi_cased_L-12_H-768_A-12/
no_position_embeddings = False
    no_special_token = False
          num_worker = 4
       pooling_layer = [-2]
    pooling_strategy = REDUCE_MEAN
                port = 5555
            port_out = 5556
       prefetch_size = 10
 priority_batch_size = 16
show_tokens_to_client = False
     tuned_model_dir = None
             verbose = False
                 xla = False

I:VENTILATOR:[__i:__i: 67]:freeze, optimize and export graph, could take a while...
E:GRAPHOPT:[gra:opt:154]:fail to optimize the graph!
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/bert_serving/server/graph.py", line 42, in optimize_graph
    tf = import_tf(verbose=args.verbose)
  File "/usr/local/lib/python3.6/dist-packages/bert_serving/server/helper.py", line 186, in import_tf
    tf.logging.set_verbosity(tf.logging.DEBUG if verbose else tf.logging.ERROR)
AttributeError: module 'tensorflow' has no attribute 'logging'
Traceback (most recent call last):
  File "/usr/local/bin/bert-serving-start", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/dist-packages/bert_serving/server/cli/__init__.py", line 4, in main
    with BertServer(get_run_args()) as server:
  File "/usr/local/lib/python3.6/dist-packages/bert_serving/server/__init__.py", line 71, in __init__
    self.graph_path, self.bert_config = pool.apply(optimize_graph, (self.args,))
TypeError: 'NoneType' object is not iterable

shashi-netra avatar Jun 24 '20 13:06 shashi-netra

I have the same issue. I am using tensorflow 2.4.0. Maybe you are getting the same.

This is because the logging does not exist anymore there. Here is an explanation: https://stackoverflow.com/questions/55318626/module-tensorflow-has-no-attribute-logging

Maybe you should consider downgrade the tensorflow version.

evertonaleixo avatar Jul 26 '21 16:07 evertonaleixo