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

如何在PyTorch中将模型配置日志保存为configs.yml文件

PyTorch保存模型配置为config.yml格式教程

前置依赖

首先安装yaml处理库PyYAML:
pip install pyyaml

实现步骤

  • 第一步:将所有模型配置、训练超参数、数据集配置等内容整理为Python字典格式,和yaml的层级键值对结构完全匹配
  • 第二步:使用PyYAML的dump方法将字典序列化后写入.yml后缀的文件即可

代码示例

import yaml
# 1. 定义配置字典,可根据自己的需求增减字段
config = {
    "model_config": {
        "backbone": "ResNet50",
        "num_classes": 8,
        "pretrained": True,
        "dropout": 0.3
    },
    "train_config": {
        "batch_size": 64,
        "epoch": 100,
        "lr": 0.001,
        "optimizer": "AdamW",
        "loss_fn": "CrossEntropyLoss"
    },
    "data_config": {
        "dataset_path": "./dataset",
        "img_size": 224,
        "augment": True
    }
}

# 2. 写入config.yml文件
with open("config.yml", "w", encoding="utf-8") as f:
    yaml.dump(
        config,
        f,
        sort_keys=False, # 保留配置的定义顺序,不按字母自动排序
        default_flow_style=False, # 输出带层级缩进的块格式,符合常规配置文件阅读习惯
        allow_unicode=True # 避免中文内容乱码
    )

可选拓展

如果你需要把已实例化的模型参数也写入配置,可在配置字典中加入模型参数字段:

from your_model_file import MyModel

# 实例化模型
model = MyModel(num_classes=8, dropout=0.3)
# 追加模型初始化参数到配置,过滤不可序列化的对象
config["model_config"]["init_params"] = {k:v for k,v in model.__dict__.items() if isinstance(v, (int, float, str, bool, list, dict))}
# 重新写入文件即可
with open("config.yml", "w", encoding="utf-8") as f:
    yaml.dump(config, f, sort_keys=False, default_flow_style=False, allow_unicode=True)

注意事项

  • 配置字典中不要直接传入PyTorch张量、函数对象、类实例这类不能被yaml直接序列化的内容,需要提前转为字符串、数值等基础Python类型,否则会触发序列化报错
  • 后续需要读取配置时,执行config = yaml.safe_load(open("config.yml", "r", encoding="utf-8"))即可将配置读回字典格式,直接用于初始化模型、训练流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:24:08