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 一个文件对象,在一个二进制文件上,那么上面的内容可能对你有帮助。
我尝试使用 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 一个文件对象,在一个二进制文件上,那么上面的内容可能对你有帮助。