[英]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.