问题描述
本地使用领域语料预训练Bert,将生成的pytorch_model.bin模型转化成paddle使用的model.pdparams模型。
过程
-
pytorch > onnx
准备库:pytorch要大于等于1.8.0
pip install transformers[onnx]
先将预训练模型保存成
.pt
格式from transformers import AutoTokenizer, AutoModelForSequenceClassification # Load tokenizer and PyTorch weights form the Hub tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased") pt_model = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased") # Save to disk tokenizer.save_pretrained("local-pt-checkpoint") pt_model.save_pretrained("local-pt-checkpoint")
然后将
local-pt-checkpoint
文件夹内的模型转化成onnx,放入onnx
文件夹python -m transformers.onnx --model=local-pt-checkpoint onnx/
-
onnx > paddle
准备库:
pip install x2paddle conda install -c paddle paddlepaddle sympy
将onnx 转化成 paddle,存入pd_model中。
x2paddle --framework=onnx --model=onnx/model.onnx --save_dir=pd_model
附一张成功转化截图,标红位置为需要填的模型的输入形状和成功结果!
文件内容图:
祝您顺利!
参考
- https://huggingface.co/docs/transformers/serialization
- https://blog.csdn/qq_37541097/article/details/119906697
更多推荐
pytorch bert to paddle 模型转化
发布评论