AttributeError: 'ConvertModel' object has no attribute 'seek'

AttributeError: 'ConvertModel' object has no attribute 'seek'

我尝试使用 ONNX 将 MATLAB 模型转换为 PyTorch,就像 Andrew Naguib 在这里提出的那样:

我尝试 运行 使用以下代码的模型:

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' object has no attribute 'seek'. You can only torch.load from a file that is seekable. Please pre-load the data into a buffer like io.BytesIO and try to load from it instead.

请问我该如何解决?关于如何“将数据预加载到 io.BytesIO 之类的缓冲区”的任何想法?

假设 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 方法,但我不知道它的作用。但是如果 return 一个文件对象,在一个二进制文件上,那么上面的内容可能对你有帮助。