繁体   English   中英

如何将 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 我的预测以我想要的火炬([0])的形式出现,依此类推。 知道如何进行这种转换。

你想要Tensor.item()

>>> import torch
>>> t = torch.tensor([0])
>>> t.item()
0

如果要将其转换为从AZ的字母,可以使用:

>>> 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM