[英]how to replace torch.Tensor to a value in python
我在 pytorch 中的预测是torch([0]) , torch([1])....,torch([25])
分别对应 26 个字母,即A,B,C....Z
。 我的预测以我想要的火炬([0])的形式出现,依此类推。 知道如何进行这种转换。
>>> 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()]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.