You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于字母表字典将独热编码张量批量转换为对应字符?

实现方案

你不需要额外定义映射字典,给定的alphabet列表本身就符合「索引值对应字符位置」的映射规则,直接按索引取值后拼接即可,完整实现如下:

# 1. 拿到argmax返回的索引张量(最后一维取最大值下标)
indices = a.argmax(-1)
# 2. 将张量转为CPU侧的普通整数列表
# *如果你的张量本来就在CPU上,可以省略.cpu()
index_list = indices.cpu().tolist()
# 3. 批量映射为字符并拼接为完整字符串
result = ''.join([alphabet[i] for i in index_list])
print(result)

如果你的输入是批量的多序列(独热张量形状为[batch_size, 序列长度, 字母表大小],argmax后形状为[batch_size, 序列长度]),用以下代码批量处理整个batch:

batch_indices = a.argmax(-1)
batch_result = []
for seq_idx in batch_indices.cpu().tolist():
    batch_result.append(''.join([alphabet[i] for i in seq_idx]))
# batch_result 中每个元素对应一条序列的字符串结果

验证

你给出的示例argmax输出前三个值为10,4,17,对应alphabet[10] = 'M'、alphabet[4] = 'F'、alphabet[17] = 'V',和你给出的预期输出序列开头MFV完全匹配,逻辑正确。

内容的提问来源于stack exchange,提问作者khashayar ehteshami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:45:03