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

运行Hugging Face微调示例时出现TensorFlow NoneType与int比较TypeError

错误成因

该错误和batch size的修改没有直接关联,核心原因是eval_steps参数未被正确赋值,触发了参数校验逻辑的类型异常。
当你在TrainingArguments配置中设置了evaluation_strategy = "steps"时,框架要求必须配套指定eval_steps参数,用来定义每间隔多少训练步执行一次验证。如果没有主动配置该参数,它的默认值为None,代码执行到self.args.eval_steps > 0的校验逻辑时,就会出现空类型和整数无法比较的报错。
还有两种少见的触发场景:

  • 你显式将eval_steps设置为了None
  • 开启了do_eval参数,但没有配套设置正确的评估策略和对应参数

解决方法

根据你的使用场景任选一种方案即可:

  • 如果你不需要按步数触发验证,可以将evaluation_strategy修改为"epoch",此时每训练完一个完整epoch才会执行验证,不需要配置eval_steps参数,配置示例如下:
training_args = TrainingArguments(
    output_dir="./results",
    per_device_train_batch_size=1,
    per_device_eval_batch_size=1,
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    num_train_epochs=3,
)
  • 如果你需要按步数触发验证,保留evaluation_strategy = "steps"的同时,给eval_steps赋一个正整数值即可,比如设置为每100步验证一次,配置示例如下:
training_args = TrainingArguments(
    output_dir="./results",
    per_device_train_batch_size=1,
    per_device_eval_batch_size=1,
    evaluation_strategy="steps",
    eval_steps=100,
    learning_rate=2e-5,
    num_train_epochs=3,
)
  • 如果你完全不需要执行验证流程,直接将do_eval设置为False即可,框架会自动跳过所有验证相关的逻辑校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 01:36:01