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

HF Transformers报错ValueError: Unable to create tensor,添加padding/truncation仍未解决

解决文本分类中"Unable to create tensor"错误的具体方案

以下是针对问题的排查和解决步骤:

  • 确认tokenizer预处理的正确应用
    确保在数据集映射时,正确调用包含padding=True、truncation=True和max_length参数的预处理函数,并且开启batched=True:

    def preprocess_function(examples):
        return tokenizer(
            examples["text"], 
            padding=True, 
            truncation=True, 
            max_length=512  # 明确设置模型支持的最大长度,比如BERT系列为512
        )
    
    # 对所有数据集(训练/验证/测试)执行预处理
    tokenized_train = train_dataset.map(preprocess_function, batched=True)
    tokenized_val = val_dataset.map(preprocess_function, batched=True)
    

    注意:如果你的数据集文本字段不是text,要替换成实际字段名(比如sentence)。

  • 使用DataCollatorWithPadding处理批次padding
    手动预处理加padding可能因数据集分布问题失效,改用HuggingFace提供的数据收集器更可靠:

    from transformers import DataCollatorWithPadding
    
    # 初始化数据收集器,自动按批次最长序列padding
    data_collator = DataCollatorWithPadding(tokenizer=tokenizer)
    
    # 构建DataLoader时传入该收集器
    train_dataloader = DataLoader(
        tokenized_train,
        shuffle=True,
        batch_size=8,
        collate_fn=data_collator
    )
    

    这个工具会在生成批次时动态处理padding,确保每个批次内的张量长度一致。

  • 排查自定义collate_fn的问题
    如果你自定义了collate_fn,检查是否遗漏padding逻辑。比如自定义函数未对输入序列做统一长度处理,会导致张量无法创建。这种情况要么改用上述的DataCollatorWithPadding,要么在自定义函数中添加tokenizer.pad操作:

    def custom_collate_fn(batch):
        # 提取批次中的所有输入特征
        input_ids = [item["input_ids"] for item in batch]
        attention_mask = [item["attention_mask"] for item in batch]
        labels = [item["label"] for item in batch]
    
        # 使用tokenizer统一padding
        padded_inputs = tokenizer.pad(
            {"input_ids": input_ids, "attention_mask": attention_mask},
            padding=True,
            return_tensors="pt"
        )
        padded_inputs["labels"] = torch.tensor(labels)
        return padded_inputs
    
  • 验证所有数据集都经过预处理
    检查训练集、验证集、测试集是否都执行了相同的预处理流程,避免某部分数据集的样本未被tokenizer处理,混入长度不一致的序列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:03:16