GPT-2的输入最多可以是1024个令牌,但是当我将拥抱面GPT-2模型导出为TFSavedModel
时,如下所示:
pip install transformers
from transformers import TFGPT2LMHeadModel
model = TFGPT2LMHeadModel.from_pretrained('gpt2')
model.save("./gpt2_tf_saved_model", save_format="tf")
然后我将其转换为ONNX模型,如下所示:
pip install -U tf2onnx
python -m tf2onnx.convert --saved-model ./gpt2_tf_saved_model --output ./gpt2.onnx
然后我发现(当用netron.app可视化它时)结果模型有一个5个标记的固定输入大小。但是,批处理大小为-1
/unk
,因此转换器在创建变量输入形状方面似乎没有问题,但出于某种原因,它已将令牌上下文长度固定为5
我还尝试转换为TensorFlow.js:
pip install tensorflowjs
tensorflowjs_converter --input_format tf_saved_model ./gpt2_tf_saved_model ./gpt2_tfjs_model
我得到了同样的结果。我还尝试更改ONNX转换的opset版本,但这没有帮助。我无法使SavedModel
.pb文件的可视化在Netron中正常工作,因此我不确定SavedModel
本身、转换过程或我的新手对整个过程的理解是否有问题
目前没有回答
相关问题 更多 >
编程相关推荐