我为特定领域的bert模型下载了tensorflow检查点,并将zip文件解压缩到pretrained_bert文件夹中,该文件夹包含以下三个文件
model.ckpt.data-00000-of-00001
model.ckpt.index
model.ckpt.meta
我使用以下代码将张量流检查点转换为pytorch
import torch
from pytorch_transformers.modeling_bert import BertConfig, BertForPreTraining, load_tf_weights_in_bert
tf_checkpoint_path="pretrained_bert/model.ckpt"
bert_config_file = "bert-base-cased-config.json"
pytorch_dump_path="pytorch_bert"
config = BertConfig.from_json_file(bert_config_file)
print("Building PyTorch model from configuration: {}".format(str(config)))
model = BertForPreTraining(config)
# Load weights from tf checkpoint
load_tf_weights_in_bert(model, config, tf_checkpoint_path)
# Save pytorch-model
print("Save PyTorch model to {}".format(pytorch_dump_path))
torch.save(model.state_dict(), pytorch_dump_path)
运行上面的代码时出现此错误
NotFoundError:不成功的TensorSliceReader构造函数:失败 找到pretrained_bert / model.ckpt
的所有匹配文件
我们非常感谢您的帮助.........
答案 0 :(得分:0)
在代码中,必须为变量指定绝对路径
指定相对路径后,模型将找不到相应的文件。
答案 1 :(得分:0)
如错误所示,
未能找到pretrained_bert / model.ckpt的任何匹配文件
您的程序可能无法从名为pretrained_bert
的文件夹或没有pretrained_bert/model.ckpt*
文件的位置执行。
因此,首先,确保文件存在。此外,您可以按照以下步骤操作:
请提供绝对路径而不是相对路径。这将重新验证文件的存在。如果仍然要使用相对路径,请验证当前执行的路径,然后如果要导航到父目录,请使用../
。