#machine-learning #nlp #onnx #onnxruntime #stanza
#машинное обучение #nlp #onnx #onnxruntime #stanza
Вопрос:
Как экспортировать строфу в формат ONNX? Кажется невозможным просто обучить модель.
Ответ №1:
Здесь есть объяснение: https://pytorch.org/tutorials/advanced/super_resolution_with_onnxruntime.html
Я создал форк из stanza для этого эксперимента здесь https://github.com/vivkvv/stanza . Смотрите также Мои коммиты https://github.com/vivkvv/stanza/commits?author=vivkvv .
Я использовал pipeline_demo.py для тестирования. Главное, что я добавил, — это код только внутри models/tokanization/trainer.py ниже строки 77
pred = self.model(units, features)
В связи с объяснением я добавил
torch.onnx.export(
self.model,
(units, features),
onnx_export_file_name,
opset_version=9,
export_params=True,
do_constant_folding=True,
input_names=['input'],
output_names=['output'],
dynamic_axes={
'input': {0: 'batch_size'},
'output': {0: 'batch_size'}
}
)
и это работает для токенизации. Но то же самое не работает, например, для pos или lemmatizer (см. Мой коммит для PartOfSpeech). И я получаю разные ошибки для разных opset_version.
Я создал вопрос на github / stanza, и вы могли видеть там https://github.com/stanfordnlp/stanza/issues/893
Комментарии:
1. Кроме того, я создал проблему для ONNX, см. github.com/onnx/onnx/issues/3887