如何将 numpy ndarry 转换为火炬张量?
这是我的数据:
array([array([-0.4287 , -1.193 , -2.156 , -0.2264 , -1.978 , -1.101 , -3.395 , 0.2974 ], dtype=float16),
array([-0.3386 , 1.398 , -1.083 , 0.2961 , -0.7354 , -1.326 , -4.33 , 0.6284 ], dtype=float16)],
dtype=object)
Run Code Online (Sandbox Code Playgroud)
小智 9
只是添加上面写的内容:
首先,您应该确保您的数组数据类型不是“O”(对象)。
您可以通过以下方式做到这一点:(信用)
a=np.vstack(a).astype(np.float)
Run Code Online (Sandbox Code Playgroud)
然后你可以使用:
b = torch.from_numpy(a)
Run Code Online (Sandbox Code Playgroud)
很难正确回答,因为您没有向我们展示您如何尝试做到这一点。从您的错误消息中,我可以看到您尝试将包含对象的 numpy 数组转换为火炬张量。这不起作用,您将需要数字数据类型:
import torch
import numpy as np
# Your test array without 'dtype=object'
a = np.array([
np.array([-0.4287 , -1.193 , -2.156 , -0.2264 , -1.978 , -1.101 , -3.395 , 0.2974 ], dtype=np.float16),
np.array([-0.3386 , 1.398 , -1.083 , 0.2961 , -0.7354 , -1.326 , -4.33 , 0.6284 ], dtype=np.float16)
])
print(a.dtype) # This should not be 'object'
b = torch.from_numpy(a)
print(b)
Run Code Online (Sandbox Code Playgroud)
输出
float16
tensor([[-0.4287, -1.1934, -2.1562, -0.2264, -1.9775, -1.1006, -3.3945, 0.2974],
[-0.3386, 1.3984, -1.0830, 0.2961, -0.7354, -1.3262, -4.3281, 0.6284]],
dtype=torch.float16)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36097 次 |
| 最近记录: |