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

在数据集分词时设置return_tensors="pt"的作用是什么?

关于分词时return_tensors="pt"参数的疑问

我正在对数据集进行分词操作,并编写了如下函数:

max_length = 1026

def generate_and_tokenize_prompt(prompt):
    result = tokenizer(
        prompt,
        return_tensors="pt",
        truncation=True,
        max_length=max_length,
        padding="max_length",
    )
    return result

train_dataset = df_train['prompt']
val_dataset = df_test['prompt']
tokenized_train_dataset = train_dataset.map(generate_and_tokenize_prompt)
tokenized_val_dataset = val_dataset.map(generate_and_tokenize_prompt)

我使用了return_tensors="pt"参数,但不清楚设置该参数的原因,因为即使不添加此参数,我也能完成数据集分词。


解答

  • 不加return_tensors="pt"时,tokenizer返回的是普通Python字典,里面的token id、attention mask等都是列表类型,完全能完成分词任务。
  • 加上这个参数后,返回的结果会直接变成PyTorch张量(Tensor),不用手动再把列表转成张量,后续喂给PyTorch模型时可以直接使用。
  • 你现在用Hugging Face的map处理数据集,Dataset在后续训练环节会自动把列表格式的数据转成张量,所以不加这个参数也能正常运行。但提前转成张量会占用更多内存——毕竟张量的内存开销比列表更大。
  • 简单总结:这个参数的核心作用是一步生成PyTorch兼容的数据格式,适配后续PyTorch训练场景;如果用TensorFlow框架,就得换成return_tensors="tf";要是只是想查看分词结果,不加这个参数完全没问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:32:36