중화사전망 - 자전 검색 - 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.myoptimizer 는 직접 가져올 수 없습니다.

실제로 모듈의 루트 경로가 PYTHONPATH 에 추가된 한 사용자는 이런 방식으로 가져온 다른 폴더 구조를 사용할 수 있습니다.

그런 다음 프로필의 최적기 필드에서 MyOptimizer 를 사용할 수 있습니다.

프로필에서 최적기는 다음과 같이 최적기 도메인에 정의됩니다.

자체 최적기를 사용하려면 이 필드를 다음과 같이 변경할 수 있습니다.

일부 모델의 경우 로트 정규화 레이어의 가중치 감쇠와 같은 특수 매개변수를 최적기에 설정해야 할 수 있습니다.

사용자는 최적기의 생성자를 사용자 정의하여 이러한 미세 조정 매개변수를 미세 조정할 수 있습니다.

여기서는 기본 최적기 빌더 구현을 참조할 수 있으며, 새 최적기 빌더의 템플릿으로 사용할 수도 있습니다.

최적기가 인식하지 못하는 기술 중 일부는 파라메트릭 학습률 설정과 같은 최적기 생성자나 갈고리에 의해 구현되어야 합니다. 모형 교육을 안정시키거나 가속화할 수 있는 몇 가지 일반적인 설정을 나열했습니다.

추가 설정이 있는 경우 PR 및 issue 에서 제출하십시오.

학습 속도는 40k/80k 의 기본 교육 반복 단계를 기준으로 설정됩니다. 이는 MMCV 에서 PolyLrUpdaterHook 이라고 합니다.

Dell 은 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 키 외에도 dataset.evaluate () 에 전달됩니다.