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

PyTorch LongTensor科学计数法显示原因及整数转换与嵌入问题咨询

关于PyTorch LongTensor的几个问题解答

1. 为什么print(x)会输出科学计数法格式?

这只是PyTorch的默认打印显示规则搞的小把戏!当存储的整数数值达到一定量级(比如100000这个门槛),PyTorch会自动切换到科学计数法来显示内容,但这完全不影响内部实际存储的值——你的x里面存的依然是整数108500,只是打印时换了个更紧凑的排版方式而已。

如果想确认的话,可以试试打印x.item(),它会直接输出Python整数格式的108500;或者用print("{:d}".format(x[0])),强制用十进制整数格式显示。

2. LongTensor能不能存储大整数?

当然可以!LongTensor对应的是64位有符号整数类型,它能存储的数值范围是-2^63到2^63 - 1(大概是-9e18到9e18之间)。你用到的108500离这个上限还差得远,哪怕是几十亿、上万亿的整数,只要落在这个区间内都能稳稳存储。

3. 如何将x转换为适合嵌入操作的格式?

其实你可能误解了一点:nn.Embedding层本身就接受LongTensor类型作为输入索引,所以你的x已经是完全符合要求的格式了!直接把它传给嵌入层就行,比如:

import torch.nn as nn
embedding = nn.Embedding(num_embeddings=200000, embedding_dim=128)
output = embedding(x)

如果是想把tensor里的数值提取成Python原生整数(比如做其他非张量操作),可以用这两种方式:

  • 单个元素的tensor:x.item() → 返回纯整数108500
  • 批量tensor:x.tolist() → 返回包含整数的列表(这里就是[108500])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:33:23