簡體   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