Python 如何将numpy数据预加载到像io.BytesIO这样的缓冲区中,以使其可查找?
下面的函数基本上返回numpy.ndarray 正在从main调用的getimage函数:Python 如何将numpy数据预加载到像io.BytesIO这样的缓冲区中,以使其可查找?,python,numpy,pytorch,torch,bytesio,Python,Numpy,Pytorch,Torch,Bytesio,下面的函数基本上返回numpy.ndarray 正在从main调用的getimage函数: x = load.getimage(id). x = torch.load(x) 抛出错误: 就像上面说的,火炬 从文件加载使用torch.save保存的对象 要将numpy.ndarray转换为要使用的torch.Tensor,请清楚地记录如下 从numpy.ndarray创建张量 就像上面说的,火炬 从文件加载使用torch.save保存的对象 要将numpy.ndarray转换为要使用的torch
x = load.getimage(id).
x = torch.load(x)
抛出错误:
就像上面说的,火炬
从文件加载使用torch.save保存的对象
要将numpy.ndarray转换为要使用的torch.Tensor,请清楚地记录如下
从numpy.ndarray创建张量
就像上面说的,火炬
从文件加载使用torch.save保存的对象
要将numpy.ndarray转换为要使用的torch.Tensor,请清楚地记录如下
从numpy.ndarray创建张量
使用torch.as_tensor而不是torch.load,就不必创建缓冲区了
见和
如果希望pytorch张量是numpy数组的副本,请使用torch.tensorar。如果希望torch.Tensor共享相同的内存缓冲区,请使用torch.as_tensorar。如果可以,PyTorch将重用缓冲区
如果您真的想从numpy数组中创建一个缓冲区,请使用io中的BytesIO类,并使用arr.tobytes对其进行初始化,比如stream=io.BytesIOarr.tobytes。YMMV;我刚刚尝试了torch.load,其中有一个流对象,torch抱怨:
import io
import numpy as np
a = np.array([3, 4, 5])
stream = io.BytesIO(a.tobytes()) # implements seek()
torch.load(stream)
---------------------------------------------------------------------------
UnpicklingError Traceback (most recent call last)
...
UnpicklingError: invalid load key, '\x03'.
如果您想让它工作,您可能必须调整numpy正在生成的ByTestStream。祝你好运 使用torch.as_张量而不是torch.load,这样就不必创建缓冲区了
见和
如果希望pytorch张量是numpy数组的副本,请使用torch.tensorar。如果希望torch.Tensor共享相同的内存缓冲区,请使用torch.as_tensorar。如果可以,PyTorch将重用缓冲区
如果您真的想从numpy数组中创建一个缓冲区,请使用io中的BytesIO类,并使用arr.tobytes对其进行初始化,比如stream=io.BytesIOarr.tobytes。YMMV;我刚刚尝试了torch.load,其中有一个流对象,torch抱怨:
import io
import numpy as np
a = np.array([3, 4, 5])
stream = io.BytesIO(a.tobytes()) # implements seek()
torch.load(stream)
---------------------------------------------------------------------------
UnpicklingError Traceback (most recent call last)
...
UnpicklingError: invalid load key, '\x03'.
如果您想让它工作,您可能必须调整numpy正在生成的ByTestStream。祝你好运 似乎触摸。仅加载一个函数。如果你想做的只是将一个numpy阵列转移到火炬上。只需使用torch.from_numpyx.touch.load只加载一个功能。如果你想做的只是将一个numpy阵列转移到火炬上。只要用火炬就行了
import io
import numpy as np
a = np.array([3, 4, 5])
stream = io.BytesIO(a.tobytes()) # implements seek()
torch.load(stream)
---------------------------------------------------------------------------
UnpicklingError Traceback (most recent call last)
...
UnpicklingError: invalid load key, '\x03'.