在 VS Code 中尝试

模型转换文件结构

本文解释了模型转换工作流期间生成的文件结构,以及每个文件夹和文件的用途,包括缓存处理、历史记录跟踪、推理等。

创建模型项目并多次运行后,文件结构可能如下所示

model_project_name/
├── model_lab.workspace.config
└── huggingface_microsoft_resnet-50_v1/
    ├── .gitignore
    ├── imagenet.py
    ├── inference_sample.ipynb
    ├── model_project.config
    ├── README.md
    ├── requirements.txt
    ├── resnet_ptq_qnn.json
    ├── cache/
    └── history/
        └── history_1(20250414_161046)/
            ├── model/
            ├── footprints.json
            ├── history.config
            ├── history.config.user
            ├── inference_sample.ipynb
            ├── log.txt
            ├── metrics.json
            ├── model_config.json
            ├── olive_config.json
            ├── output_footprint.json
            └── run_history.txt
        └── history_2/
        └── history_3/

model_project_name 文件夹中,每个模型的工作流都存储在一个单独的文件夹中。

  • requirements.txt:列出了运行工作流和推理示例所需的依赖项。
  • resnet_ptq_qnn.json, imagenet.py:Olive 用于转换模型的 JSON 文件。有些可能需要额外的 Python 文件进行自定义。
  • README.md:描述模型详细信息,例如模型的任务、性能指标和使用说明。
  • model_project.config:包含项目模板设置。某些设置可以覆盖以满足您的特定要求。
  • inference_sample.ipynb:用于测试输出模型的示例。此文件将被复制到 history 文件夹中,以便能够使用不同的 Jupyter Notebook 比较来自不同历史记录的模型。

缓存文件夹

cache 文件夹存储在工作流执行期间生成的缓存文件。这些缓存结果有助于加速工作流的重复运行。

如果不再需要,可以删除此文件夹以释放空间。

历史记录文件夹

history 文件夹名称中的时间戳表示运行时间,例如:2025 年 4 月 14 日 16:10:46

  • model:模型文件。
  • model_config.json:包含模型的详细信息。
  • footprints.json, output_footprint.json, run_history.txt:Olive 输出。
  • history.config, history.config.user:模型转换使用的历史记录配置。
  • inference_sample.ipynb:用于测试输出模型的示例。
  • log.txt:包含日志。
  • metrics.json:如果启用了评估,则包含评估结果。
  • olive_config.json:用于运行转换的配置。

关于 Git

默认情况下,cachehistory 文件夹被排除在版本控制 (.gitignore) 之外,但以下两个配置文件除外:history.configolive_config.json

您可能需要更新 .gitignore 文件,以包含值得保存的特定历史记录文件夹。

当其他人克隆仓库时,这两个文件可确保他们可以重新运行这些历史记录以重现转换结果。

__pycache__
/cache
/history/*/*
!/history/*/history.config
!/history/*/olive_config.json