我下载了特定领域bert模型的tensorflow检查点,并将zip文件解压缩到pretrained_bert文件夹中,该文件夹包含以下三个文件
模型.ckpt.data-00000-of-00001
model.ckpt.index
模型.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的所有匹配文件
任何帮助都非常感激............
最佳答案
正如错误所言,
找不到与pretrained_bert / model.ckpt匹配的文件
您的程序可能没有在名为pretrained_bert
的文件夹中执行,或者没有pretrained_bert/model.ckpt*
文件。
因此,首先,请确保文件存在。此外,您可以按照以下步骤操作:
请提供绝对路径而不是相对路径。这将重新验证文件的存在。如果仍然要使用相对路径,请验证当前执行所在的路径,然后如果要导航到父目录,请使用../
。
关于python - 将Tensorflow BERT检查点转换为pytorch时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57549972/