Невозможно передать kwargs в аргументы torch.onnx.export в Pytorch ONNX.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно передать kwargs в аргументы torch.onnx.export в Pytorch ONNX.

Сообщение Anonymous »

Я хочу экспортировать модель Pytorch в формат onnx. Вот модель:

Код: Выделить всё

from transformers import AutoProcessor, PaliGemmaForConditionalGeneration, BitsAndBytesConfig

model_id = "google/paligemma-3b-mix-224"

quantization_config = BitsAndBytesConfig(load_in_8bit=True)

model = PaliGemmaForConditionalGeneration.from_pretrained(
model_id, quantization_config=quantization_config
).eval()
processor = AutoProcessor.from_pretrained(model_id)
И мой код экспорта onnx:

Код: Выделить всё

torch.onnx.export(
model,
(input_ids, attention_mask, pixel_values),
"model.onnx",
input_names=['input_ids', 'attention_mask', 'pixel_values'],
output_names=['output']
)
Приведенный выше код выдает следующую ошибку:

Код: Выделить всё

/usr/local/lib/python3.10/dist-packages/accelerate/hooks.py in new_forward(module, *args, **kwargs)
164                 output = module._old_forward(*args, **kwargs)
165         else:
--> 166             output = module._old_forward(*args, **kwargs)
167         return module._hf_hook.post_forward(module, output)
168

/usr/local/lib/python3.10/dist-packages/transformers/models/siglip/modeling_siglip.py in forward(self, pixel_values, interpolate_pos_encoding)
302
303     def forward(self, pixel_values: torch.FloatTensor, interpolate_pos_encoding=False) -> torch.Tensor:
--> 304         _, _, height, width = pixel_values.shape
305         patch_embeds = self.patch_embedding(pixel_values)  # shape = [*, width, grid, grid]
306         embeddings = patch_embeds.flatten(2).transpose(1, 2)

ValueError: not enough values to unpack (expected 4, got 2)
Я попробовал несколько решений, я думаю, это потому, что при передаче входных данных в onnx это эквивалентно (этот код выдает ту же ошибку, что и выше):

Код: Выделить всё

model(input_ids, attention_mask, pixel_values)
Однако правильный способ передачи входных данных в модель — использование kwargs.

Код: Выделить всё

model(input_ids=input_ids, attention_mask=attention_mask, pixel_values=pixel_values)
Как передать ключевые слова в средство экспорта onnx или есть ли лучший способ экспорта формата onnx?


Подробнее здесь: https://stackoverflow.com/questions/786 ... torch-onnx
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»