模型转换文件结构

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

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

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: 样本以测试输出模型。该文件将被复制到历史文件夹,以便使用不同的Jupyter笔记本比较不同历史中的模型。

缓存文件夹

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

如果不再需要,你可以删除这个文件夹来腾出空间。

历史文件夹

时间戳在历史文件夹名称表示运行时间,比如:2025年4月14日 16:10:46.

  • 模型: 模型文件。
  • model_config.json: 包含模型的详细信息。
  • footprints.json,output_footprint.json,run_history.txt橄榄产量。
  • history.config,history.config.user:模型转换使用的历史配置。
  • inference_sample.ipynb: 样本以测试输出模型。
  • log.txt:包含日志。
  • metrics.json: 包含评估结果,如果启用了评估。
  • olive_config.json: 用于运行转换的配置。

关于git

默认情况下,缓存以及历史文件夹被排除在版本控制之外(.gitignore),但以下两个配置文件除外:history.config以及olive_config.json

你可以更新.gitignore文件中包含值得保存的特定历史文件夹。

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

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