ModelScope中,dummy_inputs有哪些格式? 我输入字典,存在错误。 这里面格式转换有点多了
在ModelScope中,dummy_inputs可以有多种格式。以下是一些常见的dummy_inputs格式示例:
单个输入的格式:
dummy_inputs = {
'input_name': input_value
}
多个输入的格式:
dummy_inputs = {
'input_name1': input_value1,
'input_name2': input_value2,
...
}
对于包含多个输入的模型,可以使用列表或元组来表示多个输入的不同取值组合:
dummy_inputs = [
{'input_name1': input_value1, 'input_name2': input_value2},
{'input_name1': input_value3, 'input_name2': input_value4},
...
]
对于多个输入的模型,还可以使用字典列表来表示每个输入取值的多个组合:
dummy_inputs = {
'input_name1': [input_value1, input_value2, ...],
'input_name2': [input_value3, input_value4, ...],
...
}
请根据实际模型的输入情况选择合适的dummy_inputs格式。在为模型生成dummy_inputs时,需要根据模型的输入参数和输入数据类型进行相应的填写。
from modelscope import AutoModelForSequenceClassification, AutoTokenizer
model = AutoModelForSequenceClassification.from_pretrained('AI-ModelScope/bert-base-uncased')
tokenizer = AutoTokenizer.from_pretrained('AI-ModelScope/bert-base-uncased')
from modelscope.exporters import TorchModelExporter
from collections import OrderedDict
dummy_inputs = tokenizer(tokenizer.unk_token, padding='max_length', max_length=256, return_tensors='pt')
dynamic_axis = {0: 'batch', 1: 'sequence'}
inputs = OrderedDict([
('input_ids', dynamic_axis),
('attention_mask', dynamic_axis),
('token_type_ids', dynamic_axis),
])
outputs = OrderedDict({'logits': {0: 'batch'}})
output_files = TorchModelExporter().export_onnx(model=model, dummy_inputs=dummy_inputs, inputs=inputs,
outputs=outputs, output_dir='/tmp')
print(output_files) # {'model': '/tmp/model.onnx'}这是文档中的例子,传入的就是一个dict——此回答整理自钉群:魔搭ModelScope开发者联盟群 ①