作者|huggingface
编译|VK
来源|Github
提供了一个命令行界面来转换模型中的原始Bert/GPT/GPT-2/Transformer-XL/XLNet/XLM的Checkpoints,然后使用库的from_pretrained方法加载该Checkpoints。
注意:从2.3.0版本开始,转换脚本现在已成为 transformers CLI(transformers-cli)的一部分,在任何transformers=2.3.0的都可用。以下文档反映了 transformers-cli convert
命令格式。
BERT
你可以通过使用convert_tf_checkpoint_to_pytorch.py
将任意的BERT的Tensorflow的Checkpoints转换为PyTorch格式(特别是由Google发布的预训练模型(https://github.com/google-res...
此CLI将TensorFlow checkpoints(三个以bert_model.ckpt
开头的文件)和关联的配置文件(bert_config.json
)作为输入,并为此配置创建PyTorch模型,并加载在PyTorch模型中从TensorFlow checkpoints进行权重计算,然后将生成的模型保存到标准PyTorch格式文件中,该文件可以使用torch.load()
导入(请参阅run_bert_extract_features.py, run_bert_classifier.py and run_bert_squad.py的示例)。
你只需一次运行此转换脚本即可获得PyTorch模型。然后你可以忽略TensorFlow checkpoints(以bert_model.ckpt
开头的三个文件),但请确保保留配置文件(bert_config.json
)和词汇表文件(vocab.txt
),因为PyTorch模型也需要这些。
要运行此特定的转换脚本,你将需要安装TensorFlow和PyTorch(pip install tensorflow
)。存储库的其余部分仅需要PyTorch。
这是一个预训练的BERT-Base Uncased模型的转换过程示例:
export BERT_BASE_DIR=/path/to/bert/uncased_L-12_H-768_A-12
transformers-cli convert --model_type bert \
--tf_checkpoint $BERT_BASE_DIR/bert_model.ckpt \
--config $BERT_BASE_DIR/bert_config.json \
--pytorch_dump_output $BERT_BASE_DIR/pytorch_model.bin
你可以在此处(https://github.com/google-res...。
OpenAI GPT
这是一个预训练OpenAI GPT模型转换过程的示例,假设你的NumPy checkpoints保存的格式与OpenAI的预训练模型相同(请参见此处(https://github.com/openai/fin...
export OPENAI_GPT_CHECKPOINT_FOLDER_PATH=/path/to/openai/pretrained/numpy/weights
transformers-cli convert --model_type gpt \
--tf_checkpoint $OPENAI_GPT_CHECKPOINT_FOLDER_PATH \
--pytorch_dump_output $PYTORCH_DUMP_OUTPUT \
[--config OPENAI_GPT_CONFIG] \
[--finetuning_task_name OPENAI_GPT_FINETUNED_TASK] \
OpenAI GPT-2
这是预训练OpenAI GPT-2模型转换过程的示例(请参见此处(https://github.com/openai/gpt...
export OPENAI_GPT2_CHECKPOINT_PATH=/path/to/gpt2/pretrained/weights
transformers-cli convert --model_type gpt2 \
--tf_checkpoint $OPENAI_GPT2_CHECKPOINT_PATH \
--pytorch_dump_output $PYTORCH_DUMP_OUTPUT \
[--config OPENAI_GPT2_CONFIG] \
[--finetuning_task_name OPENAI_GPT2_FINETUNED_TASK]
Transformer-XL
这是预训练Transformer-XL模型转换过程的示例(请参见此处的(https://github.com/kimiyoung/...
export TRANSFO_XL_CHECKPOINT_FOLDER_PATH=/path/to/transfo/xl/checkpoint
transformers-cli convert --model_type transfo_xl \
--tf_checkpoint $TRANSFO_XL_CHECKPOINT_FOLDER_PATH \
--pytorch_dump_output $PYTORCH_DUMP_OUTPUT \
[--config TRANSFO_XL_CONFIG] \
[--finetuning_task_name TRANSFO_XL_FINETUNED_TASK]
XLNet
这是一个预训练XLNet模型的转换过程示例:
export TRANSFO_XL_CHECKPOINT_PATH=/path/to/xlnet/checkpoint
export TRANSFO_XL_CONFIG_PATH=/path/to/xlnet/config
transformers-cli convert --model_type xlnet \
--tf_checkpoint $TRANSFO_XL_CHECKPOINT_PATH \
--config $TRANSFO_XL_CONFIG_PATH \
--pytorch_dump_output $PYTORCH_DUMP_OUTPUT \
[--finetuning_task_name XLNET_FINETUNED_TASK] \
XLM
这是一个预训练XLM模型的转换过程示例:
export XLM_CHECKPOINT_PATH=/path/to/xlm/checkpoint
transformers-cli convert --model_type xlm \
--tf_checkpoint $XLM_CHECKPOINT_PATH \
--pytorch_dump_output $PYTORCH_DUMP_OUTPUT
[--config XML_CONFIG] \
[--finetuning_task_name XML_FINETUNED_TASK]
原文链接:https://huggingface.co/transf...
欢迎关注磐创AI博客站:
http://panchuang.net/
OpenCV中文官方文档:
http://woshicver.com/
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。