Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将numpy数据预加载到像io.BytesIO这样的缓冲区中,以使其可查找?_Python_Numpy_Pytorch_Torch_Bytesio - Fatal编程技术网

Python 如何将numpy数据预加载到像io.BytesIO这样的缓冲区中,以使其可查找?

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

下面的函数基本上返回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.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'.