bert (0) 未找到:在检查点中找不到关键输出偏置(恢复自预训练模型)

uurv41yg  于 3个月前  发布在  其他
关注(0)|答案(6)|浏览(55)

在预训练过程中,模型的输出偏置没有找到。这可能是因为在检查点文件中缺少输出偏置。为了解决这个问题,你可以尝试以下方法:

  1. 确保在预训练过程中使用了正确的检查点文件。检查graph.phtxtseries.model.ckpt文件是否存在,以及它们的内容是否正确。

  2. 如果检查点文件中确实缺少输出偏置,你可以尝试使用其他预训练模型,或者手动添加输出偏置到模型中。这通常需要修改模型的结构,例如在卷积层之后添加一个全连接层来计算输出偏置。
    在创建会话时出现了错误,原因是找不到检查点中的_CHECKPOINTABLE_OBJECT_GRAPH键。请检查您的检查点文件是否完整,或者尝试使用不同的检查点文件。
    从错误信息来看,这是一个关于TensorFlow的问题。在恢复检查点时出现了错误,原因是检查点中缺少了一些变量名或图形键。请确保您没有更改基于检查点的预期图形。原始错误如下:

2 root error(s) found.
 (0) Not found: Key output_bias not found in checkpoint
 [[node save/RestoreV2 (defined at run_classifier.py:953) ]]
 [[save/RestoreV2/_301]]
 (1) Not found: Key output_bias not found in checkpoint
 [[node save/RestoreV2 (defined at run_classifier.py:953) ]]
 0 successful operations.
 0 derived errors ignored.
Original stack trace for 'save/RestoreV2':
 File "run_classifier.py", line 1054, in 
 tf.app.run()
 File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/platform/app.py", line 40, in run
 _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
 File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 300, in _run_main
 _run_main(main, args)
 File "/usr/local/lib/python3.6/dist-packages/absl/app.py", line 251, in _run_main
 sys.exit(main(argv))
 File "run_classifier.py", line 953, in main
 estimator.train(input_fn=train_input_fn, max_steps=num_train_steps)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/tpu/tpu_estimator.py", line 2871, in train
 saving_listeners=saving_listeners)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/estimator.py", line 367, in train
 loss = self._train_model(input_fn, hooks, saving_listeners)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/estimator.py", line 1158, in _train_model
 return self._train_model_default(input_fn, hooks, saving_listeners)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/estimator.py", line 1192, in _train_model_default
 saving_listeners)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow_estimator/python/estimator/estimator.py", line 1480, in _train_with_estimator_spec
 log_step_count_steps=log_step_count_steps) as mon_sess:
 File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", line 584, in MonitoredTrainingSession
 stop_grace_period_secs=stop_grace_period_secs)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", line 1007, in **init**
 stop_grace_period_secs=stop_grace_period_secs)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", line 725, in **init**
 self._sess = _RecoverableSession(self._coordinated_creator)
 File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/monitored_session.py", line 1200, in **init**
 _WrappedSession.**init**(self, self._create_session())
 File "/usr/local/lib/python3.6/dist-packages/tensorflow
从错误信息来看,问题出在`tf.reset_default_graph()`这一行。这个错误可能是由于在导入TensorFlow库时已经存在一个默认的计算图,而你又尝试重置它。为了解决这个问题,你可以尝试以下方法:

1. 确保在导入TensorFlow库之前没有其他代码创建了默认的计算图。如果有,请删除或注解掉这些代码。

2. 如果问题仍然存在,可以尝试使用`tf.compat.v1.disable_eager_execution()`禁用Eager Execution模式。这将使得TensorFlow使用Graph模式运行,而不是立即执行操作。这样可以避免在导入TensorFlow库时创建默认计算图的问题。请注意,这可能会影响到你的代码性能。

```python
import tensorflow as tf
tf.compat.v1.disable_eager_execution()

希望这些建议能帮助你解决问题。

kx1ctssn

kx1ctssn1#

@biuleung,你能解决这个问题吗?

1zmg4dgp

1zmg4dgp2#

我也有同样的问题。有人解决了吗?

klh5stk1

klh5stk13#

在我的情况下,我减小了批处理大小,它运行得非常好。

sbtkgmzw

sbtkgmzw4#

@pushpankar 我尝试通过减小批次大小来解决这个问题,但没有成功。你有什么其他建议吗?

u0sqgete

u0sqgete5#

尝试保持输出目录为空,并将序列长度保持在128。看看是否有效。

px9o7tmv

px9o7tmv6#

我也有同样的问题,目前还无法解决。在这种情况下,seq_len = 128并不能提供很大的帮助。

相关问题