Detectron2入門教程

2021-10-02 06:24:24 字數 1840 閱讀 7570

目錄

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_loaderbuild_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 研究是以新的方式做事。這給如何在 中建立抽象帶來了壓力,對於任何規模較大的研究工程專案而言,這都是乙個挑戰 一方面,它需要具有非常精簡的抽象,以允許以新方式進行所有操作。打破現有的抽象並將其替換為新的抽象應該相當容易。另一方面,這...