首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载tensorflow BERT预训练模型失败

加载tensorflow BERT预训练模型失败
EN

Stack Overflow用户
提问于 2019-08-05 11:38:31
回答 1查看 1.4K关注 0票数 0

我试图加载一个BERT预先训练好的模型来完成NER任务。但是系统找不到预先训练好的模型文件。

我在终端中使用了以下代码,文件夹包含model.ckpt-1000000,model.ckpt-1000000.index,model.ckpt-1000000.meta文件。

代码语言:javascript
运行
复制
python run_ner.py \
    --do_train=true \
    --do_eval=true \
    --vocab_file=vocab.txt \
    --bert_config_file=bert_config.json \
    --init_checkpoint=model.ckpt-1000000 \
    --num_train_epochs=10.0 \
    --data_dir=NCBI-disease/ \
    --output_dir=epoch1

错误消息是

代码语言:javascript
运行
复制
2019-08-04 23:26:41.272281: W tensorflow/core/framework/op_kernel.cc:1401] OP_REQUIRES failed at save_restore_v2_ops.cc:184 : Not found: model.ckpt-1000000.data-00000-of-00001; No such file or directory

  File "/Users/anaconda/envs/BIOBERT/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1328, in _do_run
    run_metadata)
  File "/Users/anaconda/envs/BIOBERT/lib/python3.6/site-packages/tensorflow/python/client/session.py", line 1348, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.NotFoundError: model.ckpt-1000000.data-00000-of-00001; No such file or directory
     [[node checkpoint_initializer_161 (defined at run_ner.py:422) ]]

注意:模型文件的原始名称是model.ckpt-1000000.data-00000- of -00001,model.ckpt-1000000.index和model.ckpt-1000000.meta。我也试过了

代码语言:javascript
运行
复制
python run_ner.py \
    --do_train=true \
    --do_eval=true \
    --vocab_file=vocab.txt \
    --bert_config_file=bert_config.json \
    --init_checkpoint=model.ckpt-1000000.data-00000-of-00001 \
    --num_train_epochs=10.0 \
    --data_dir=NCBI-disease/ \
    --output_dir=epoch1

那么错误将是

代码语言:javascript
运行
复制
  File "/Users/anaconda/envs/BIOBERT/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py", line 326, in NewCheckpointReader
    return CheckpointReader(compat.as_bytes(filepattern), status)
  File "/Users/SichengZhou/anaconda/envs/BIOBERT/lib/python3.6/site-packages/tensorflow/python/framework/errors_impl.py", line 528, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.DataLossError: Unable to open table file ./model.ckpt-1000000.data-00000-of-00001: Data loss: not an sstable (bad magic number): perhaps your file is in a different file format and you need to use a different restore operator?
EN

回答 1

Stack Overflow用户

发布于 2019-11-07 14:59:21

模型文件的原始名称应该是model.ckpt-1000000.data-00000- of -00001,model.ckpt-1000000.index和model.ckpt-1000000.meta。

您得到的错误是因为ckpt文件和您正在运行的python文件(run_ner.py)位于不同的路径。

代码语言:javascript
运行
复制
python run_ner.py \
--do_train=true \
--do_eval=true \
--vocab_file=vocab.txt \
--bert_config_file=bert_config.json \
--init_checkpoint=<path to folder where ckpt files are saved>/model.ckpt-1000000 \
--num_train_epochs=10.0 \
--data_dir=NCBI-disease/ \
--output_dir=epoch1

在运行run_ner.py时,不要将--init_checkpoint=model.ckpt-1000000更改为--init_checkpoint=model.ckpt-1000000.data-00000-of-00001

希望这能有所帮助。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57351918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档