我正在尝试使用一个预先训练的伯特模型,用SST2数据处理器进行微调。但是当我给出预训练模型的检查点时,它显示的是“在检查点中找不到密钥output_bias”。
我想这可能是因为预先训练过的伯特模型检查站出了差错。所以我又做了一次训练。但是,我仍然面临着同样的问题。
TASK = 'STS' #@param {type:\"string\"}
TASK_DATA_DIR = 'glue_data/STS-B/'# + TASK
output_dir = 'trained_model/observation'
tf.gfile.MakeDirs(output_dir)
BERT_MODEL = path + 'multi_cased_L-12_H-768_A-12/'
VOCAB_FILE = os.path.join(BERT_MODEL, 'vocab.txt')
CONFIG_FILE = os.path.join(BERT_MODEL, 'bert_config.json')
INIT_CHECKPOINT = os.path.join(BERT_MODEL, 'bert_model.ckpt')
DO_LOWER_CASE = BERT_MODEL.startswith('cased')
tokenizer = tokenization.FullTokenizer(vocab_file=VOCAB_FILE,
do_lower_case=DO_LOWER_CASE)
TRAIN_BATCH_SIZE = 1
EVAL_BATCH_SIZE = 8
PREDICT_BATCH_SIZE = 8
LEARNING_RATE = 2e-5
NUM_TRAIN_EPOCHS = 3.0
MAX_SEQ_LENGTH = 128
processors = {
"sts": run_classifier.StsProcessor,
}
processor = processors[TASK.lower()]()
label_list = processor.get_labels() 错误是:
NotFoundError:从检查点恢复失败。这很可能是由于检查点中缺少的变量名称或其他图形键造成的。请确保您没有根据检查点更改预期的图形。原始错误:在检查点[节点保存/RestoreV2 2(定义在/home/subraas3/.conda/envs/tensorflow_13/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py:1403)处)][节点保存/RestoreV2 2(定义于/home/subraas3/.conda/envs/tensorflow_13/lib/python3.7/site-packages/tensorflow_estimator/python/estimator/estimator.py:1403))]中找不到密钥output_bias
发布于 2019-08-20 05:15:40
正如错误消息中所指出的,此错误发生在
请检查bert API的版本是否与预培训的检查点版本相同。如果它们是相同的,您可能需要使用此工具。手动检查检查点中的tf图是否与API一致。
https://stackoverflow.com/questions/57562244
复制相似问题