AttributeError: Обектът „ConvertModel“ няма атрибут „seek“

Опитах се да конвертирам MATLAB модел в PyTorch с помощта на ONNX, както е предложено тук от Andrew Naguib:

Как да импортирате модели за дълбоко обучение от MATLAB в PyTorch?

Опитах да стартирам модела, използвайки следния код:

import onnx
from onnx2pytorch import ConvertModel
import torch

onnx_model = onnx.load ('resnet50.onnx')

pytorch_model = ConvertModel(onnx_model)

model = torch.load(pytorch_model)

Но получих тази грешка:

AttributeError: Обектът „ConvertModel“ няма атрибут „seek“. Можете да torch.load само от файл, който може да се търси. Моля, заредете предварително данните в буфер като io.BytesIO и вместо това опитайте да заредите от него.

Как мога да го поправя, моля? Някакви идеи за това как мога предварително да заредя данните в буфер като io.BytesIO?


person Oubi    schedule 21.02.2021    source източник


Отговори (1)


Ако приемем, че my_data.dat е файл, съдържащ двоични данни, следният код го зарежда в ioBytesIO буфер, който може да се търси:

import io

with open('my_data.dat', 'rb') as f:
    buf = io.BytesIO(f.read())

Вече можете да пишете неща като

    buf.seek(4)

и

    x = buf.read(1)

Разбира се, във вашия случай преминавате през onnx.load метод и аз не знам какво прави това. Но ако върне файлов обект в двоичен файл, тогава горното може да ви помогне.

person joao    schedule 21.02.2021
comment
Работи благодаря! - person Oubi; 23.02.2021