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

使用Ray Tune调优PyTorch模型遇FileNotFoundError:缺失指定日志文件

Ray Tune训练后缺失result.json/progress.csv的解决建议

问题背景

使用Ray Tune对PyTorch深度学习模型进行超参数调优,训练完成后出现错误:

FileNotFoundError: Could not fetch metrics for lambda_17db8_00000: both result.json and progress.csv were not found

已确认tune.run的local_dir路径正确,训练未提前终止,且能正常获取最优调参配置,但无法生成关键的日志文件。

核心原因及修复步骤

1. 禁用了自动日志生成

代码中设置了os.environ["TUNE_DISABLE_AUTO_CALLBACK_LOGGERS"] = "1",这会直接阻止Ray Tune自动生成result.json和progress.csv文件。
修复: 删除该行环境变量配置。

2. 手动指定固定checkpoint目录导致冲突

在tune.run中手动传递了固定的checkpoint_dir给model_training,但Ray Tune会为每个trial自动分配独立的工作目录,共享目录会导致日志文件被覆盖或无法正常写入。
修复:

  • 修改tune.run的调用,移除手动传递的checkpoint_dir参数:
    tuning = tune.run(
        lambda config: model_training(config, X_train, y_train, val_loader),  # 替换为验证集loader
        config=config_space,
        num_samples=10,
        scheduler=scheduler,
        progress_reporter=reporter,
        local_dir=checkpoint_dir,
        keep_checkpoints_num=1,
        resources_per_trial={"cpu": 10}
    )
    
  • 调整model_training函数中的checkpoint逻辑,使用Ray Tune原生API处理:
    def model_training(config, data, target, val_loader):
        # ... 其他代码保持不变 ...
        
        for epoch in range(config["epochs"]):
            # ... 训练、验证逻辑 ...
            
            train.report({"train_loss": epoch_train_loss, "train_accuracy": epoch_train_acc,
                          "loss": val_loss.item(), "accuracy": val_accuracy})
            
            # 使用Ray原生API保存checkpoint
            train.save_checkpoint({"model_state_dict": model.state_dict()})
    

3. 验证集使用错误(附带优化)

当前代码将测试集作为验证集传入调优函数,会导致调优过程泄露测试集信息,虽不直接引发日志问题,但属于逻辑错误。
修复: 创建独立的验证集DataLoader:

val_dataset = TensorDataset(X_val, y_val)
val_loader = DataLoader(val_dataset, batch_size=config["batch_size"])

并在tune.run中传递val_loader而非test_loader。

补充说明

修改后重新运行调优任务,每个trial的独立目录下会自动生成result.json和progress.csv文件,同时checkpoint也会被正确保存在对应trial的子目录中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:17:11