如何将 torch.Tensor 替换为 python 中的值
how to replace torch.Tensor to a value in python
我在 pytorch 中的预测结果为 torch([0]) , torch([1])....,torch([25])
,对应 26 个字母,即 A,B,C....Z
。
我的预测将以 torch([0]) 的形式出现,我希望将其作为 A 等等。
知道如何进行此转换。
>>> import torch
>>> t = torch.tensor([0])
>>> t.item()
0
如果你想把它转换成从A
到Z
的字母你可以使用:
>>> import string
>>> string.ascii_uppercase[t.item()]
'A'
在执行此操作之前请仔细检查形状,或者将 try/except 包裹起来以获得可能的 ValueError
:
>>> t = torch.tensor([0, 1])
>>> t.item()
Traceback (most recent call last):
File "<ipython-input-6-dc80242434c0>", line 1, in <module>
t.item()
ValueError: only one element tensors can be converted to Python scalars
要将字母索引转换为实际字母,您可以:
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # the Alphabet
pred = torch.randint(0, 26, (30,)) # your prediction, int tensor with values in range[0, 25]
# convert to characters
pred_string = ''.join(alphabet[c_] for c_ in pred)
输出类似于:
'KEFOTIJBNTAPWHSBXUIQKTTJNSCNDF'
这也适用于具有单个元素的 pred
,在这种情况下,转换可以更紧凑地完成:
alphabet[pred.item()]
我在 pytorch 中的预测结果为 torch([0]) , torch([1])....,torch([25])
,对应 26 个字母,即 A,B,C....Z
。
我的预测将以 torch([0]) 的形式出现,我希望将其作为 A 等等。
知道如何进行此转换。
>>> import torch
>>> t = torch.tensor([0])
>>> t.item()
0
如果你想把它转换成从A
到Z
的字母你可以使用:
>>> import string
>>> string.ascii_uppercase[t.item()]
'A'
在执行此操作之前请仔细检查形状,或者将 try/except 包裹起来以获得可能的 ValueError
:
>>> t = torch.tensor([0, 1])
>>> t.item()
Traceback (most recent call last):
File "<ipython-input-6-dc80242434c0>", line 1, in <module>
t.item()
ValueError: only one element tensors can be converted to Python scalars
要将字母索引转换为实际字母,您可以:
alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' # the Alphabet
pred = torch.randint(0, 26, (30,)) # your prediction, int tensor with values in range[0, 25]
# convert to characters
pred_string = ''.join(alphabet[c_] for c_ in pred)
输出类似于:
'KEFOTIJBNTAPWHSBXUIQKTTJNSCNDF'
这也适用于具有单个元素的 pred
,在这种情况下,转换可以更紧凑地完成:
alphabet[pred.item()]