當前位置:成語大全網 - 書法字典 - MMsegmentation教程6:自定義操作設置

MMsegmentation教程6:自定義操作設置

我們已經支持PyTorch附帶的所有優化器,唯壹需要修改的是配置文件中的優化器域。

例如,如果要使用ADAM(請註意,以下操作可能會降低模型的性能),可以使用以下修改:

為了修改模型的學習率,用戶只需在配置文件中修改優化器的lr。

用戶可以參考PyTorch的API文檔。

直接設置參數。

自定義優化器可以定義如下:

如果要添加壹個名為MyOptimizer的優化器,其參數分別為a、b和C。

您需要創建壹個名為mmseg/core/optimizer的新文件夾。

然後在文件mmseg/core/optimizer/my _ optimizer . py中實現新的優化器:

為了讓框架發現上面定義的模塊,首先應該將該模塊導入主名稱空間。

有兩種方法可以實現它。

mmseg . core . optimizer . my _ optimizer模塊將在程序開始運行時導入,MyOptimizer類將自動註冊。

應該註意的是,應該只導入包含MyOptimizer類的包。

而mmseg . core . optimizer . my _ optimizer . my optimizer不能直接導入。

事實上,只要模塊的根路徑已經添加到PYTHONPATH中,用戶就可以使用以這種方式導入的另壹個文件夾結構。

然後,您可以在配置文件的優化器字段中使用MyOptimizer。

在配置文件中,優化器是在優化器域中定義的,如下所示:

要使用您自己的優化器,此字段可以更改為:

某些模型可能需要在優化器中設置壹些特殊參數,例如批次歸壹化層的權重衰減。

用戶可以通過定制優化器的構造函數來微調這些細粒度的參數。

這裏可以引用默認優化器構建器的實現,它也可以用作新優化器構建器的模板。

優化器沒有意識到的壹些技能應該由優化器構造函數或鉤子來實現,比如設置參數式學習率。我們列出了壹些可以穩定或加速模型訓練的常見設置。

如果您有更多設置,請在PR和issue中提交。

我們根據40k/80k的默認訓練叠代步數來設置學習速率,這在MMCV被稱為PolyLrUpdaterHook。

我們還支持許多其他學習率計劃:例如,這裏的CosineAnnealing和Poly計劃。以下是壹些例子:

工作流是壹個列表(階段、時期),專門定義運行順序和時期。

默認情況下,它設置為:

訓練就是跑1 epoch。有時用戶可能希望檢查驗證集中模型的某些指標(如損失和準確性)。我們可以按如下方式設置工作流:

因此1歷元訓練和1歷元驗證將交替運行。

註意:

如果鉤子已經在MMCV實現,如下所示,您可以直接修改配置文件來使用鉤子:

custom_hooks沒有註冊以下常用掛鉤:

在這些鉤子中,只有logger鉤子的優先級為VERY_LOW,其他所有的優先級都是正常的。

上述教程包括如何修改優化器配置、動量配置和lr配置。

這裏我們展示了如何處理log_config、checkpoint_config和evaluation。

MMCV運行程序將使用checkpoint_config來初始化檢查點掛鉤。

用戶可以設置max_keep_ckpts僅保存少量檢查點,或者決定是否通過save_optimizer保存optimizer的狀態字典。有關使用參數的更多詳細信息,請參考此處。

Log_config包裝了許多日誌掛鉤,並可以設置時間間隔。現在MMCV支持WandbLoggerHook、MlflowLoggerHook和TensorboardLoggerHook。

詳細使用請參考文檔。

評估的配置文件將用於初始化EvalHook。

除了interval鍵之外,metric等其他參數也將傳遞給dataset.evaluate()。