macanv / BERT-BiLSTM-CRF-NER

Tensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tuning And private Server services
https://github.com/macanv/BERT-BiLSMT-CRF-NER
4.7k stars 1.26k forks source link

分类的问题 #204

Closed 707511341 closed 5 years ago

707511341 commented 5 years ago

自己训练好模型,启动服务时候报 Caused by op 'save/Assign_200', defined at: File "/home/ycai/anaconda3/envs/lerner/bin/bert-base-serving-start", line 11, in load_entry_point('bert-base==0.0.9', 'console_scripts', 'bert-base-serving-start')() File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/runs/init.py", line 17, in start_server server = BertServer(args) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/init.py", line 105, in init with Pool(processes=1) as pool: File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 176, in init self._repopulate_pool() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 241, in _repopulate_pool w.start() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 112, in start self._popen = self._Popen(self) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/context.py", line 277, in _Popen return Popen(process_obj) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/popen_fork.py", line 20, in init self._launch(process_obj) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/popen_fork.py", line 74, in _launch code = process_obj._bootstrap() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap self.run() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 99, in run self._target(*self._args, self._kwargs) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 121, in worker result = (True, func(*args, *kwds)) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py", line 347, in optimize_class_model saver = tf.train.Saver() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 832, in init self.build() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 844, in build self._build(self._filename, build_save=True, build_restore=True) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 881, in _build build_save=build_save, build_restore=build_restore) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 513, in _build_internal restore_sequentially, reshape) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 354, in _AddRestoreOps assign_ops.append(saveable.restore(saveable_tensors, shapes)) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saving/saveable_object_util.py", line 73, in restore self.op.get_shape().is_fully_defined()) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/ops/state_ops.py", line 223, in assign validate_shape=validate_shape) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/ops/gen_state_ops.py", line 64, in assign use_locking=use_locking, name=name) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper op_def=op_def) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func return func(args, kwargs) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op op_def=op_def) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1801, in init self._traceback = tf_stack.extract_stack()

InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Assign requires shapes of both tensors to match. lhs shape= [0,768] rhs shape= [32,768] [[node save/Assign_200 (defined at /home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py:347) ]] Traceback (most recent call last): File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1334, in _do_call return fn(*args) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1319, in _run_fn options, feed_dict, fetch_list, target_list, run_metadata) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1407, in _call_tf_sessionrun run_metadata) tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [0,768] rhs shape= [32,768] [[{{node save/Assign_200}}]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 1276, in restore {self.saver_def.filename_tensor_name: save_path}) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 929, in run run_metadata_ptr) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1152, in _run feed_dict_tensor, options, run_metadata) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1328, in _do_run run_metadata) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/client/session.py", line 1348, in _do_call raise type(e)(node_def, op, message) tensorflow.python.framework.errors_impl.InvalidArgumentError: Assign requires shapes of both tensors to match. lhs shape= [0,768] rhs shape= [32,768] [[node save/Assign_200 (defined at /home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py:347) ]]

Caused by op 'save/Assign_200', defined at: File "/home/ycai/anaconda3/envs/lerner/bin/bert-base-serving-start", line 11, in load_entry_point('bert-base==0.0.9', 'console_scripts', 'bert-base-serving-start')() File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/runs/init.py", line 17, in start_server server = BertServer(args) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/init.py", line 105, in init with Pool(processes=1) as pool: File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 176, in init self._repopulate_pool() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 241, in _repopulate_pool w.start() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 112, in start self._popen = self._Popen(self) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/context.py", line 277, in _Popen return Popen(process_obj) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/popen_fork.py", line 20, in init self._launch(process_obj) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/popen_fork.py", line 74, in _launch code = process_obj._bootstrap() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap self.run() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 99, in run self._target(*self._args, self._kwargs) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 121, in worker result = (True, func(*args, *kwds)) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py", line 347, in optimize_class_model saver = tf.train.Saver() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 832, in init self.build() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 844, in build self._build(self._filename, build_save=True, build_restore=True) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 881, in _build build_save=build_save, build_restore=build_restore) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 513, in _build_internal restore_sequentially, reshape) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 354, in _AddRestoreOps assign_ops.append(saveable.restore(saveable_tensors, shapes)) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saving/saveable_object_util.py", line 73, in restore self.op.get_shape().is_fully_defined()) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/ops/state_ops.py", line 223, in assign validate_shape=validate_shape) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/ops/gen_state_ops.py", line 64, in assign use_locking=use_locking, name=name) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper op_def=op_def) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func return func(args, kwargs) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op op_def=op_def) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1801, in init self._traceback = tf_stack.extract_stack()

InvalidArgumentError (see above for traceback): Assign requires shapes of both tensors to match. lhs shape= [0,768] rhs shape= [32,768] [[node save/Assign_200 (defined at /home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py:347) ]]

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py", line 351, in optimize_class_model saver.restore(sess, tf.train.latest_checkpoint(args.model_dir)) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 1312, in restore err, "a mismatch between the current graph and the graph") tensorflow.python.framework.errors_impl.InvalidArgumentError: Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Assign requires shapes of both tensors to match. lhs shape= [0,768] rhs shape= [32,768] [[node save/Assign_200 (defined at /home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py:347) ]]

Caused by op 'save/Assign_200', defined at: File "/home/ycai/anaconda3/envs/lerner/bin/bert-base-serving-start", line 11, in load_entry_point('bert-base==0.0.9', 'console_scripts', 'bert-base-serving-start')() File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/runs/init.py", line 17, in start_server server = BertServer(args) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/init.py", line 105, in init with Pool(processes=1) as pool: File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 176, in init self._repopulate_pool() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 241, in _repopulate_pool w.start() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 112, in start self._popen = self._Popen(self) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/context.py", line 277, in _Popen return Popen(process_obj) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/popen_fork.py", line 20, in init self._launch(process_obj) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/popen_fork.py", line 74, in _launch code = process_obj._bootstrap() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap self.run() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/process.py", line 99, in run self._target(*self._args, self._kwargs) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/multiprocessing/pool.py", line 121, in worker result = (True, func(*args, *kwds)) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py", line 347, in optimize_class_model saver = tf.train.Saver() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 832, in init self.build() File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 844, in build self._build(self._filename, build_save=True, build_restore=True) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 881, in _build build_save=build_save, build_restore=build_restore) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 513, in _build_internal restore_sequentially, reshape) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saver.py", line 354, in _AddRestoreOps assign_ops.append(saveable.restore(saveable_tensors, shapes)) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/training/saving/saveable_object_util.py", line 73, in restore self.op.get_shape().is_fully_defined()) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/ops/state_ops.py", line 223, in assign validate_shape=validate_shape) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/ops/gen_state_ops.py", line 64, in assign use_locking=use_locking, name=name) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/op_def_library.py", line 788, in _apply_op_helper op_def=op_def) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func return func(args, kwargs) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 3300, in create_op op_def=op_def) File "/home/ycai/anaconda3/envs/lerner/lib/python3.7/site-packages/tensorflow/python/framework/ops.py", line 1801, in init self._traceback = tf_stack.extract_stack()

InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint. Original error:

Assign requires shapes of both tensors to match. lhs shape= [0,768] rhs shape= [32,768] [[node save/Assign_200 (defined at /home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/graph.py:347) ]]

Traceback (most recent call last): File "/home/ycai/anaconda3/envs/lerner/bin/bert-base-serving-start", line 11, in load_entry_point('bert-base==0.0.9', 'console_scripts', 'bert-base-serving-start')() File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/runs/init.py", line 17, in start_server server = BertServer(args) File "/home/ycai/BERT-BiLSTM-CRF-NER-master/BERT-BiLSTM-CRF-NER-master/bert_base/server/init.py", line 116, in init raise FileNotFoundError('graph optimization fails and returns empty result') FileNotFoundError: graph optimization fails and returns empty result 如上错误

自己修改 sever init 里面的代码 将代码改为self.graph_path = pool.apply(optimize_class_model, (self.args, self.num_labels)) 添加self.num_labels 卸载 ,重新安装后再次启动 报一样的问题,我有32个标签 确实是 标签的问题

macanv commented 5 years ago

请详细参考我写的两个图的剪裁过程,其实就是把Adam的参数去掉了,建议你可以写个test吧部分代码测试一下是否可行,然后再移植过来。ps:当时测试这个花了一天的一脸同情。

707511341 commented 5 years ago

多谢 已解决

zwd13122889 commented 4 years ago

多谢 已解决

多谢 已解决

请问,您是怎么解决的 我也遇到了同样的问题