目錄
1. 概述
1.1. 自己的原始碼閱讀流程
1.2. 目錄結構
1.3. 搭積木過程
1.4. 官方文件閱讀
2. 資料處理
2.1. 概述
2.2. 基本流程
2.3. build_detection_train_loader 方法解析
2.4. 其他
3. 模型搭建
3.1. 概述
3.2. 基本流程
3.3. 其他
4. 訓練/評估/**
4.1. 概述
4.2. 訓練**結構
總結自己之前的一些步驟
個人感受:
tests
:單元測試類。
tools
:常用指令碼,如訓練、benchmark、展示資料集等。
配置檔案概述
示例配置檔案中有乙個_base_
屬性,可以將其他示例配置檔案作為基礎,如果有衝突則用當前配置檔案的資訊覆蓋。
如何使用配置檔案搭積木
資料集的registry機制
模型訓練/**/評估的的搭積木不複雜,就是根據配置檔案,直接建立對應的物件(如lr, optimizer等)。
tutorials
use custom datasets
資料集的metadata介紹
use custom dataloaders
介紹如何自定義dataloader、使用自定義dataloader可以參考densepose的**。
use models
write models
training
use configs
notes
compatibility with other libraries
contributing to detectron2
change log
api documentation
主要入口:detectron2/data/build.py
中的build_detection_train_loader
或build_detection_test_loader
方法。
相關配置:detectron2/config/defaults.py
中_c.input _c.datasets _c.dataloader
開頭的配置。
第二步:通過資料集名稱以及完成註冊的datasetcatalog
物件以及metadatacatalog
物件,解析資料集並獲取資料集基本資訊。
第四步:構建torch.utils.data.sampler.sampler
物件,實現的功能好像包括repeat sample、shuffle、batch功能。
第五步:根據上面的 dataset, sampler 等物件構建torch.utils.data.dataloader
物件。
感想:
第三步:通過配置檔案分別構建選中meta arch中各個部件。
這個與tf中的sessionrunhook類似,只不過tf已經實現在原始碼裡,而detectron2中是自己實現的。
******trainer
:
defaulttrainer
hooks的定義都在detectron2/detectron2/engine/hooks.py
中。
Detectron2 編寫模型 七
作者 facebookresearch 編譯 flin github 如果你嘗試做一些全新的事情,你可能希望在detectron2中完全從頭開始實現乙個模型。但是,在許多情況下,你可能對修改或擴充套件現有模型的某些元件感興趣.因此,我們還提供了一種註冊機制,可讓你覆蓋標準模型的某些內部元件的行為。例...
Detectron2 部署 十一
作者 facebookresearch 編譯 flin github caffe2部署 我們目前支援通過onnx將detectron2模型轉換為caffe2格式。轉換後的caffe2模型可以在python或c 中執行而無需detectron2依賴性。它具有針對cpu和移動裝置推理優化的執行時,但不適...
Detectron2 擴充套件預設值 三
作者 facebookresearch 編譯 flin github 研究是以新的方式做事。這給如何在 中建立抽象帶來了壓力,對於任何規模較大的研究工程專案而言,這都是乙個挑戰 一方面,它需要具有非常精簡的抽象,以允許以新方式進行所有操作。打破現有的抽象並將其替換為新的抽象應該相當容易。另一方面,這...