将PyTorch张量转换为python列表

Tom*_*ale 10 python pytorch

如何将PyTorch Tensor转换为python列表?

我当前的用例是将一个张量大小[1, 2048, 1, 1]转换为2048个元素的列表。

我的张量具有浮点值。是否有一个解决方案也考虑了int以及其他可能的数据类型?

Tom*_*ale 21

我发现Tensor.tolist()其中给出了以下用法示例:

>>> a = torch.randn(2, 2)
>>> a.tolist()
[[0.012766935862600803, 0.5415473580360413],
 [-0.08909505605697632, 0.7729271650314331]]
>>> a[0,0].tolist()
0.012766935862600803
Run Code Online (Sandbox Code Playgroud)

因此,要回答该问题,请使用a.squeeze().tolist()删除size的所有尺寸1

还考虑.flatten()是否不需要列表列表。


在遇到之前.tolist(),我在使用:

list = [element.item() for element in tensor.flatten()]
Run Code Online (Sandbox Code Playgroud)

这将张量展平为一个维,然后调用.item()将每个元素转换为Python数字。


Wes*_* Na 6

要列出的张量:

a_list  = embeddings.tolist()
Run Code Online (Sandbox Code Playgroud)

张量列表:

a_tensor = torch.Tensor(a_list).cuda()
Run Code Online (Sandbox Code Playgroud)