์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Comet

YOLOv5 ์™€ ํ•จ๊ป˜ Comet

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” YOLOv5 ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Comet

์ •๋ณด Comet

Comet ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž, ์—”์ง€๋‹ˆ์–ด, ํŒ€ ๋ฆฌ๋”๊ฐ€ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ฐ ๋”ฅ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๊ฐ€์†ํ™”ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋„๊ตฌ๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋ธ ๋ฉ”ํŠธ๋ฆญ์„ ์ถ”์  ๋ฐ ์‹œ๊ฐํ™”ํ•˜๊ณ , ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ, ๋ฐ์ดํ„ฐ ์„ธํŠธ ๋ฐ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ €์žฅํ•˜๊ณ , Comet ์‚ฌ์šฉ์ž ์ง€์ • ํŒจ๋„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ ์˜ˆ์ธก์„ ์‹œ๊ฐํ™”ํ•˜์„ธ์š”! Comet ๋ชจ๋“  ๊ทœ๋ชจ์˜ ํŒ€์—์„œ ๊ฒฐ๊ณผ๋ฅผ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•˜๊ณ  ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค!

์‹œ์ž‘ํ•˜๊ธฐ

์„ค์น˜ Comet

pip install comet_ml

Comet ์ž๊ฒฉ ์ฆ๋ช… ๊ตฌ์„ฑ

Comet ๋ฅผ YOLOv5 ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ž๊ฒฉ ์ฆ๋ช…์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜

export COMET_API_KEY=<Your Comet API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

๋˜๋Š” .comet.config ํŒŒ์ผ์„ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ๊ณ  ๊ฑฐ๊ธฐ์— ์ž๊ฒฉ ์ฆ๋ช…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Comet ๊ตฌ์„ฑ ํŒŒ์ผ

[comet]
api_key=<Your Comet API Key>
project_name=<Your Comet Project Name> # This will default to 'yolov5'

๊ต์œก ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

Comet ์€ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ, ๋ช…๋ น์ค„ ์ธ์ˆ˜, ํŠธ๋ ˆ์ด๋‹ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฉ”ํŠธ๋ฆญ์„ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. Comet UI์—์„œ ์‹คํ–‰์„ ์‹œ๊ฐํ™”ํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

yolo-ui

์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”!

์—ฌ๊ธฐ์—์„œ ์™„๋ฃŒ๋œ ์‹คํ–‰์˜ ์˜ˆ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋˜๋Š” ์ด Colab ๋…ธํŠธ๋ถ์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.

์ฝœ๋žฉ์—์„œ ์—ด๊ธฐ

์ž๋™ ๋กœ๊ทธ

Comet ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ ํ•ญ๋ชฉ์ด ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

๋ฉ”ํŠธ๋ฆญ

  • ํ›ˆ๋ จ ๋ฐ ๊ฒ€์ฆ ๋ฐ์ดํ„ฐ์˜ ๋ฐ•์Šค ์†์‹ค, ์˜ค๋ธŒ์ ํŠธ ์†์‹ค, ๋ถ„๋ฅ˜ ์†์‹ค
  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ mAP_0.5, mAP_0.5:0.95 ๋ฉ”ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•๋„ ๋ฐ ํšŒ์ˆ˜

๋งค๊ฐœ๋ณ€์ˆ˜

  • ๋ชจ๋ธ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ
  • ๋ช…๋ น์ค„ ์˜ต์…˜์„ ํ†ตํ•ด ์ „๋‹ฌ๋˜๋Š” ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜

์‹œ๊ฐํ™”

  • ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ชจ๋ธ ์˜ˆ์ธก์˜ ํ˜ผ๋™ ํ–‰๋ ฌ
  • ๋ชจ๋“  ํด๋ž˜์Šค์˜ PR ๋ฐ F1 ๊ณก์„  ํ”Œ๋กฏ
  • ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”์˜ ์ƒ๊ด€๊ด€๊ณ„๋„

Comet ๋กœ๊น… ๊ตฌ์„ฑ

Comet ๋Š” ํŠธ๋ ˆ์ด๋‹ ์Šคํฌ๋ฆฝํŠธ์— ์ „๋‹ฌ๋œ ๋ช…๋ น์ค„ ํ”Œ๋ž˜๊ทธ ๋˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> #Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒดํฌํฌ์ธํŠธ ๋กœ๊น… Comet

Comet ์— ๋ชจ๋ธ ๋กœ๊น…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด save-period ์ธ์ˆ˜๋ฅผ ํŠธ๋ ˆ์ด๋‹ ์Šคํฌ๋ฆฝํŠธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ์—์„œ ์ œ๊ณตํ•œ ๊ฐ„๊ฒฉ ๊ฐ’์— ๋”ฐ๋ผ ๊ธฐ๋ก๋œ ์ฒดํฌํฌ์ธํŠธ๊ฐ€ Comet ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. save-period

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--save-period 1

๋กœ๊น… ๋ชจ๋ธ ์˜ˆ์ธก

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋ธ ์˜ˆ์ธก(์ด๋ฏธ์ง€, ์‹ค์ธก ๊ธฐ์ค€ ๋ ˆ์ด๋ธ” ๋ฐ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค)์€ Comet ์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

๋กœ๊น…๋œ ์˜ˆ์ธก ๋ฐ ๊ด€๋ จ ์ด๋ฏธ์ง€์˜ ๋นˆ๋„๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. bbox_interval ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ธก์€ Comet ์˜ ๋ฌผ์ฒด ๊ฐ์ง€ ์‚ฌ์šฉ์ž ์ง€์ • ํŒจ๋„. ์ด ๋นˆ๋„๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ชจ๋“  N๋ฒˆ์งธ ๋ฐฐ์น˜์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. epoch. ์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ๊ฐ ์—ํฌํฌ์— ๋Œ€ํ•ด ๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ๋ฐฐ์น˜๋งˆ๋‹ค ๋กœ๊น…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : YOLOv5 ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ ๋กœ๋”๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐฐ์น˜ ํฌ๊ธฐ๊ฐ€ 32๋กœ ์„ค์ •๋˜๋ฏ€๋กœ ๊ทธ์— ๋”ฐ๋ผ ๋กœ๊น… ๋นˆ๋„๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ํŒจ๋„์„ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 2

๋กœ๊ทธ์ธํ•œ ์˜ˆ์ธก ์ด๋ฏธ์ง€ ์ˆ˜ ์ œ์–ดํ•˜๊ธฐ Comet

YOLOv5 ์—์„œ ์˜ˆ์ธก์„ ๋กœ๊น…ํ•  ๋•Œ Comet ์€ ๊ฐ ์˜ˆ์ธก ์„ธํŠธ์™€ ๊ด€๋ จ๋œ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๊น…ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ๋Œ€ 100๊ฐœ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์ด๋ฏธ์ง€๊ฐ€ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์ด ์ˆซ์ž๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. COMET_MAX_IMAGE_UPLOADS ํ™˜๊ฒฝ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--bbox_interval 1

ํด๋ž˜์Šค ์ˆ˜์ค€ ๋ฉ”ํŠธ๋ฆญ ๋กœ๊น…

์‚ฌ์šฉ COMET_LOG_PER_CLASS_METRICS ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ mAP๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค, ์ •๋ฐ€๋„, ๋ฆฌ์ฝœ, ๊ฐ ํด๋ž˜์Šค์— ๋Œ€ํ•ด f1.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt

Comet ์•„ํ‹ฐํŒฉํŠธ์— ๋ฐ์ดํ„ฐ ์„ธํŠธ ์—…๋กœ๋“œํ•˜๊ธฐ

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๋Š” ๊ฒฝ์šฐ Comet ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ upload_dataset ํ”Œ๋ž˜๊ทธ.

๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. YOLOv5 ๋ฌธ์„œ. ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ตฌ์„ฑ yaml ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ํ˜•์‹์„ ๋”ฐ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. coco128.yaml ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data coco128.yaml \
--weights yolov5s.pt \
--upload_dataset

์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” Comet ์›Œํฌ์ŠคํŽ˜์ด์Šค์˜ ์•„ํ‹ฐํŒฉํŠธ ํƒญ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. artifact-1

Comet UI์—์„œ ๋ฐ”๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. artifact-2

์•„ํ‹ฐํŒฉํŠธ๋Š” ๋ฒ„์ „์ด ๊ด€๋ฆฌ๋˜๋ฉฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ถ”๊ฐ€๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Comet ์€ ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. yaml ํŒŒ์ผ artifact-3

์ €์žฅ๋œ ์•„ํ‹ฐํŒฉํŠธ ์‚ฌ์šฉ

Comet ์•„ํ‹ฐํŒฉํŠธ์˜ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. path ๋ณ€์ˆ˜ yaml ํŒŒ์ผ์„ ๋‹ค์Œ ์•„ํ‹ฐํŒฉํŠธ ๋ฆฌ์†Œ์Šค URL์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด ํŒŒ์ผ์„ ๊ต์œก ์Šคํฌ๋ฆฝํŠธ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

python train.py \
--img 640 \
--batch 16 \
--epochs 5 \
--data artifact.yaml \
--weights yolov5s.pt

์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹คํ—˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๊ณ„๋ณด๋ฅผ ์ถ”์ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์—…๋กœ๋“œํ•œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•œ ๋ชจ๋“  ์‹คํ—˜์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. artifact-4

ํ›ˆ๋ จ ์‹คํ–‰ ์žฌ๊ฐœํ•˜๊ธฐ

์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๋Š” ๋“ฑ์˜ ์ด์œ ๋กœ ํŠธ๋ ˆ์ด๋‹ ๋Ÿฌ๋‹์ด ์ค‘๋‹จ๋œ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฌ๋‹์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. resume ํ”Œ๋ž˜๊ทธ์™€ Comet ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ฒฝ๋กœ์˜ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. comet://<your workspace name>/<your project name>/<experiment id>.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ค‘๋‹จ ์ „ ์ƒํƒœ๋กœ ์‹คํ–‰์ด ๋ณต์›๋˜๋ฉฐ, ์—ฌ๊ธฐ์—๋Š” ์ฒดํฌํฌ์ธํŠธ์—์„œ ๋ชจ๋ธ ๋ณต์›, ๋ชจ๋“  ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ๋ฐ ํ•™์Šต ์ธ์ˆ˜ ๋ณต์›, ์›๋ž˜ ์‹คํ–‰์— ์‚ฌ์šฉ๋œ ๊ฒฝ์šฐ Comet ๋ฐ์ดํ„ฐ ์„ธํŠธ ์•„ํ‹ฐํŒฉํŠธ ๋‹ค์šด๋กœ๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์žฌ๊ฐœ๋œ ์‹คํ–‰์€ Comet UI์˜ ๊ธฐ์กด ์‹คํ—˜์— ๊ณ„์† ๋กœ๊น…๋ฉ๋‹ˆ๋‹ค.

python train.py \
--resume "comet://<your run path>"

Comet ์ตœ์ ํ™” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ๊ฒ€์ƒ‰

YOLOv5 ๋Š” Comet ์˜ ์ตœ์ ํ™” ๋„๊ตฌ์™€ ํ†ตํ•ฉ๋˜์–ด Comet UI์—์„œ ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ์Šค์œ•์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ตํ‹ฐ๋งˆ์ด์ € ์Šค์œ• ๊ตฌ์„ฑ

Comet ์˜ตํ‹ฐ๋งˆ์ด์ €๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์Šค์œ•์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ JSON ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ œ ํŒŒ์ผ์€ utils/loggers/comet/optimizer_config.json

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json"

๊ทธ๋ฆฌ๊ณ  hpo.py ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ธ์ˆ˜๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. train.py. ์Šค์œ•์— ์ถ”๊ฐ€ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋ ค๋ฉด ์Šคํฌ๋ฆฝํŠธ ๋’ค์— ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

python utils/loggers/comet/hpo.py \
  --comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \
  --save-period 1 \
  --bbox_interval 1

๋ณ‘๋ ฌ๋กœ ์Šค์œ• ์‹คํ–‰

comet optimizer -j <set number of workers> utils/loggers/comet/hpo.py \
  utils/loggers/comet/optimizer_config.json"

๊ฒฐ๊ณผ ์‹œ๊ฐํ™”

Comet ๋Š” ์Šค์œ• ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์Šค์œ•์ด ์™„๋ฃŒ๋œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”.

ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ-yolo

๐Ÿ“…1 ๋…„ ์ „ ์ƒ์„ฑ๋จ โœ๏ธ 1๊ฐœ์›” ์ „ ์—…๋ฐ์ดํŠธ๋จ

๋Œ“๊ธ€