pytorch 踩坑: only one element tensors can be converted to Python scalars

错误原因:
有一个列表是A,其元素是多个tensor,这时会如题报错。解决方案是,将A的元素先转化为ndarray,再变换为tensor。具体操作如下:

  • 如果是在gpu上,由于在gpu中不能转换为array
A = torch.tensor( [item.cpu().detach().numpy() for item in A] )
  • 如果是在cpu上:
A = torch.tensor([item.detach().numpy() for item in A])

特别需要提的一点是

如果A是多层嵌套的tensor,比如

A = [
	[tensor, tensor].
	[tensor, tensor],
]

那么还是需要具体把每一个tensor都转化为array才可以,否则数据类型会显示为np._object,而非可以转化为tensorint,float等数据类型。

你可能感兴趣的:(python问题集锦,pytorch,python,深度学习)