dice
train_dice
ํจ์ ์ด๋ฆ: train_dice
์ ๋ ฅ:
cfgfile (char*): YOLO ๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก
weightfile (char*): ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
๋์:
YOLO ๋ชจ๋ธ์ ํ์ต์ํค๋ ํจ์์ ๋๋ค.
์ฃผ์ด์ง cfgfile๊ณผ weightfile์ ๊ธฐ๋ฐ์ผ๋ก YOLO ๋ชจ๋ธ์ ๊ตฌ์ฑํ๊ณ , ์ฃผ์ด์ง ์ด๋ฏธ์ง์ ๋ผ๋ฒจ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ตํฉ๋๋ค.
ํ์ต ์ค์๋ ๋งค 100๋ฒ์งธ ๋ฐ๋ณต๋ง๋ค ํ์ต๋ฅ ์ ๊ฐ์์ํค๊ณ , ๋งค 100๋ฒ์งธ ๋ฐ๋ณต๋ง๋ค ํ์ฌ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ์ง์ ๋ ๊ฒฝ๋ก์ ์ ์ฅํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ YOLO ๋ชจ๋ธ์ ํ์ต์ํค๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ํจ์๋ cfgfile์ ํ์ฑํ์ฌ ๋ชจ๋ธ์ ๊ตฌ์ฑํ๊ณ , weightfile์ด ์ฃผ์ด์ง๋ฉด ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
ํ์ต ๋ฐ์ดํฐ๋ "data/dice/dice.train.list"์์ ์ฝ์ด์ต๋๋ค.
๋งค ๋ฐ๋ณต๋ง๋ค ์ผ๋ถ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๋ ฅํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ , ๋คํธ์ํฌ๋ฅผ ํ์ต์ํค๊ณ , ํ๊ท ์์ค ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐฑ์ ํ๊ณ , ๋ฐ๋ณต ํ์๊ฐ ์ฆ๊ฐํ ๋๋ง๋ค ํ์ต๋ฅ ์ ์กฐ์ ํฉ๋๋ค.
ํจ์์์ ์ฌ์ฉ๋๋ ๋ค๋ฅธ ํจ์๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
basecfg(char *cfgfile): cfgfile ๊ฒฝ๋ก์์ ๊ตฌ์ฑ ํ์ผ ์ด๋ฆ์ ๋ฒ ์ด์ค ์ด๋ฆ์ ๋ฐํํฉ๋๋ค.
parse_network_cfg(char *filename): ๊ตฌ์ฑ ํ์ผ์ ํ์ฑํ์ฌ network ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
load_weights(network *net, char *filename): ์ง์ ๋ ๊ฐ์ค์น ํ์ผ์์ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋ก๋ํฉ๋๋ค.
get_paths(char *filename): ์ง์ ๋ ํ์ผ์์ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์ list ๊ตฌ์กฐ์ฒด์ ์ ์ฅํฉ๋๋ค.
list_to_array(list *l): list ๊ตฌ์กฐ์ฒด์ ์ ์ฅ๋ ๋ฌธ์์ด ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค.
load_data_old(char **paths, int n, int m, char **labels, int k, int w, int h): paths ๋ฐฐ์ด์ ์ง์ ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ก๋ํ๊ณ , labels ๋ฐฐ์ด์ ์ง์ ๋ ๋ผ๋ฒจ ํ์ผ์ ๋ก๋ํ์ฌ data ๊ตฌ์กฐ์ฒด์ ์ ์ฅํฉ๋๋ค.
train_network(network net, data d): ์ฃผ์ด์ง ๋ชจ๋ธ๊ณผ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ์ ํ์ต์ํค๊ณ , ์์ค ๊ฐ์ ๋ฐํํฉ๋๋ค.
free_data(data d): data ๊ตฌ์กฐ์ฒด์์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํฉ๋๋ค.
save_weights(network net, char *filename): ์ง์ ๋ ํ์ผ ์ด๋ฆ์ผ๋ก ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ์ ์ฅํฉ๋๋ค.
validate_dice
ํจ์ ์ด๋ฆ: validate_dice
์ ๋ ฅ:
char *filename: ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก
char *weightfile: ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
๋์:
์ฃผ์ด์ง ๊ตฌ์ฑ ํ์ผ๊ณผ ๊ฐ์ค์น ํ์ผ์ ์ฌ์ฉํ์ฌ ์ฃผ์ฌ์ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋คํธ์ํฌ๋ฅผ ๊ฒ์ฆํ๋ ํจ์์ ๋๋ค.
๋คํธ์ํฌ ์ ํ๋์ ๊ฒ์ฆ ์ด๋ฏธ์ง ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ค๋ช :
์ฃผ์ด์ง ๊ตฌ์ฑ ํ์ผ๋ก๋ถํฐ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
๋ง์ฝ ๊ฐ์ค์น ํ์ผ์ด ์ฃผ์ด์ก๋ค๋ฉด ํด๋น ๊ฐ์ค์น๋ฅผ ๋ก๋ํฉ๋๋ค.
๋์ ๋ฐ์๊ธฐ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
dice_labels ๋ฐฐ์ด์์ ๋ผ๋ฒจ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๊ฒ์ฆ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ํฌํจํ๋ ๋ฆฌ์คํธ๋ฅผ ์์ฑํฉ๋๋ค.
๋ฆฌ์คํธ๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํฉ๋๋ค.
๊ฒ์ฆ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํฉ๋๋ค.
๋ก๋๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ์ ์ ํ๋๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๊ฒ์ฆ ์ ํ๋์ ๊ฒ์ฆ ์ด๋ฏธ์ง ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํฉ๋๋ค.
test_dice
ํจ์ ์ด๋ฆ: test_dice
์ ๋ ฅ:
char *cfgfile: ๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก
char *weightfile: ํ์ต๋ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
char *filename (์ ํ์ ): ํ ์คํธํ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก
๋์:
์ฃผ์ด์ง cfgfile๊ณผ weightfile๋ก๋ถํฐ ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ์ฌ ํ ์คํธ ์ด๋ฏธ์ง์ ๋ํ ์์ธก์ ์ํํ๋ ํจ์
์ ๋ ฅ์ผ๋ก filename์ด ์ฃผ์ด์ง๋ฉด ํด๋น ์ด๋ฏธ์ง์ ๋ํ ์์ธก์ ์ถ๋ ฅํ๊ณ ์ข ๋ฃ
์ ๋ ฅ์ผ๋ก filename์ด ์ฃผ์ด์ง์ง ์์ผ๋ฉด ์ฌ์ฉ์๋ก๋ถํฐ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ธก์ ์ํํ๊ณ , ๋ค์ ์ด๋ฏธ์ง๋ฅผ ๊ณ์ํด์ ์ ๋ ฅ๋ฐ์
๊ฐ ํด๋์ค์ ๋ํ ํ๋ฅ ์์ธก๊ณผ ํจ๊ป ์์ธก์ด ๊ฐ์ฅ ๋์ ํด๋์ค๋ฅผ ์ถ๋ ฅํจ
์ค๋ช :
test_dice ํจ์๋ ์ฃผ์ด์ง cfgfile๊ณผ weightfile๋ก๋ถํฐ ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ์ฌ ํ ์คํธ ์ด๋ฏธ์ง์ ๋ํ ์์ธก์ ์ํํ๋ ํจ์์ ๋๋ค.
์ ๋ ฅ์ผ๋ก filename์ด ์ฃผ์ด์ง๋ฉด ํด๋น ์ด๋ฏธ์ง์ ๋ํ ์์ธก์ ์ถ๋ ฅํ๊ณ ์ข ๋ฃํฉ๋๋ค. ์ ๋ ฅ์ผ๋ก filename์ด ์ฃผ์ด์ง์ง ์์ผ๋ฉด ์ฌ์ฉ์๋ก๋ถํฐ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ธก์ ์ํํ๊ณ , ๋ค์ ์ด๋ฏธ์ง๋ฅผ ๊ณ์ํด์ ์ ๋ ฅ๋ฐ์ต๋๋ค.
๊ฐ ํด๋์ค์ ๋ํ ํ๋ฅ ์์ธก๊ณผ ํจ๊ป ์์ธก์ด ๊ฐ์ฅ ๋์ ํด๋์ค๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ์ด๋ฅผ ์ํด top_predictions ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ธก์ด ๊ฐ์ฅ ๋์ ํด๋์ค์ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ๊ณ , ํด๋น ํด๋์ค์ ์ด๋ฆ๊ณผ ์์ธก ํ๋ฅ ์ ์ถ๋ ฅํฉ๋๋ค.
run_dice
ํจ์ ์ด๋ฆ: run_dice
์ ๋ ฅ:
int argc: ๋ช ๋ นํ ์ธ์์ ์
char **argv: ๋ช ๋ นํ ์ธ์์ ๋ฐฐ์ด
๋์:
๋ช ๋ นํ์์ ์ ๋ ฅ๋ ์ธ์์ ๋ฐ๋ผ train_dice, test_dice, validate_dice ํจ์ ์ค ํ๋๋ฅผ ์คํํจ
"train"์ด ์ ๋ ฅ๋ ๊ฒฝ์ฐ train_dice(cfg, weights)๋ฅผ ํธ์ถํจ
"test"๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ test_dice(cfg, weights, filename)์ ํธ์ถํจ
"valid"๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ validate_dice(cfg, weights)๋ฅผ ํธ์ถํจ
์ธ์๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ(usage)์ ์ถ๋ ฅํจ
์ค๋ช :
cfg: ์ค์ ํ์ผ ๊ฒฝ๋ก
weights (optional): ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก (์ ํ์ )
filename (optional): ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก (์ ํ์ )
Last updated
Was this helpful?