PyTorch-到NumPy生成未大小的对象?

PyTorch-到NumPy生成未大小的对象?,numpy,pytorch,numpy-ndarray,Numpy,Pytorch,Numpy Ndarray,将PyTorch张量转换为NumPy print(nn_result.shape) # (2433, 2) np_result = torch.argmax(nn_result).numpy() type(np_result) # <type 'numpy.ndarray'> print(len(np_result)) TypeError: len() of unsized object 打印(nn\u结果.形状) # (2433, 2) np_result=torch.argma

将PyTorch张量转换为NumPy

print(nn_result.shape)
# (2433, 2)
np_result = torch.argmax(nn_result).numpy()
type(np_result)
# <type 'numpy.ndarray'>
print(len(np_result))
TypeError: len() of unsized object
打印(nn\u结果.形状)
# (2433, 2)
np_result=torch.argmax(nn_result.numpy())
类型(np_结果)
# 
打印(len(np_结果))
TypeError:未调整大小的对象的len()

为什么??我认为根据文档,
numpy()
函数将返回一个正确的
ndarray
,但它似乎不完整?

也许您希望使用
torch.argmax(nn\u result,dim=1)
?由于
dim
默认为0,因此它只返回一个构造为张量的数字。让我用下面的例子来说明:

>x=np.array(1)
>>>x.形状
()
>>>len(x)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
TypeError:未调整大小的对象的len()
>>>x=np.array([1])
>>>x.形状
(1,)
>>>len(x)
1.
基本上
np。数组
将使用您构造的任何
对象
类型。在第一种情况下,对象不是数组,因为您看不到有效的形状。因为它不是一个数组,所以调用
len
会抛出一个错误

torch.argmax
with
dim=0
返回一个张量,如上例第一种情况所示,因此返回错误