模型轉換檔案結構
本文說明模型轉換工作流程中產生的檔案結構,以及各資料夾與檔案的用途,包含快取處理、歷史紀錄追蹤、推論等內容。
在建立模型專案並執行多次後,檔案結構可能如下所示
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) 資料夾
cache 資料夾儲存了工作流程執行期間產生的快取檔案。這些快取結果有助於加速重複執行工作流程。
如果不再需要,您可以刪除此資料夾以釋放空間。
歷史紀錄 (History) 資料夾
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:包含執行紀錄 (Log)。metrics.json:若已啟用評估功能,則包含評估結果。olive_config.json:執行轉換時所使用的設定檔。
關於 Git
預設情況下,cache 與 history 資料夾會被排除在版本控制之外 (.gitignore),但下列兩個設定檔除外:history.config 與 olive_config.json
您可以更新 .gitignore 檔案,將值得保留的特定歷史紀錄資料夾納入版本控制中。
當其他人複製 (Clone) 儲存庫時,這兩個檔案可確保他們能夠重新執行這些歷史紀錄,以重現轉換結果。
__pycache__
/cache
/history/*/*
!/history/*/history.config
!/history/*/olive_config.json