attention
#include "darknet.h"
#include <sys/time.h>
#include <assert.h>extend_data_truth
void extend_data_truth(data *d, int n, float val)
{
int i, j;
for(i = 0; i < d->y.rows; ++i){
d->y.vals[i] = realloc(d->y.vals[i], (d->y.cols+n)*sizeof(float));
for(j = 0; j < n; ++j){
d->y.vals[i][d->y.cols + j] = val;
}
}
d->y.cols += n;
}ํจ์ ์ด๋ฆ: extend_data_truth
์ ๋ ฅ:
(data *d): ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ
(int n): ์ถ๊ฐํ ์ด ์
(float val): ์ถ๊ฐํ ๊ฐ
๋์:
๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด d์ y ํ๋ ฌ์ ๊ฐ ํ์ ๋ํด n๊ฐ์ ์ด์ ์ถ๊ฐํ๊ณ , ํด๋น ์ด์ ๊ฐ์ ๋ชจ๋ val๋ก ์ค์ ํฉ๋๋ค.
์ค๋ช :
์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ d์ y ํ๋ ฌ์ n๊ฐ์ ์ด์ ์ถ๊ฐํ๊ณ , ๊ฐ ํ์ ์ถ๊ฐ๋ ์ด๋ค์ ๊ฐ์ ๋ชจ๋ val๋ก ์ค์ ํ๋ ํจ์์ ๋๋ค.
์ด ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ์ y๊ฐ์ ํ์ฅํ ์ ์์ต๋๋ค.
network_loss_data
ํจ์ ์ด๋ฆ: network_loss_data
์ ๋ ฅ:
network *net: ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๋ํ๋ด๋ ํฌ์ธํฐ
data test: ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์๋ ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ
๋์:
์ฃผ์ด์ง ์ ๊ฒฝ๋ง ๋ชจ๋ธ๊ณผ ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ชจ๋ธ์ ์์ค๊ฐ์ ๊ณ์ฐํ๋ ํจ์
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๊ฐ์ค์น๋ฅผ ๊ณ ์ ์ํค๊ณ , ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํตํด ์์ ํ(forward) ์ฐ์ฐ์ ์ํํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํ๊ณ , ์ด๋ฅผ ํ ๋๋ก ์์ค๊ฐ์ ๊ณ์ฐํจ
ํ ์คํธ ๋ฐ์ดํฐ๋ ๋ฐฐ์น(batch) ๋จ์๋ก ์ฒ๋ฆฌ๋จ
์ค๋ช :
์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ด๋ด ๋คํธ์ํฌ "net"์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํฉ๋๋ค:
"net->batch" ๊ฐ์ ๋งํผ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ๋ฉ๋ชจ๋ฆฌ "X"์ ์ ๋ต ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ๋ฉ๋ชจ๋ฆฌ "y"๋ฅผ ๋์ ์ผ๋ก ํ ๋นํฉ๋๋ค.
"test.X"์ "test.y"์์ "net->batch" ๊ฐ์ ๋งํผ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์ฌ "X"์ "y"์ ์ ์ฅํฉ๋๋ค.
"net->train" ๋ณ์๋ฅผ 0์ผ๋ก ์ค์ ํ์ฌ ๋ด๋ด ๋คํธ์ํฌ๋ฅผ ํ ์คํธ ๋ชจ๋๋ก ์ ํํฉ๋๋ค.
"net->delta" ๋ณ์๋ฅผ 0์ผ๋ก ์ด๊ธฐํํฉ๋๋ค.
"forward_network" ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ด๋ด ๋คํธ์ํฌ์ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํฉ๋๋ค.
๋ด๋ด ๋คํธ์ํฌ๋ฅผ ์๋์ ์ํ๋ก ๋๋๋ฆฝ๋๋ค.
๊ณ์ฐ๋ ์ถ๋ ฅ๊ฐ "delta"๋ฅผ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํฉ๋๋ค:
๊ฐ mini-batch์ ๋ํด ์ค์ฐจ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๊ณ์ฐ๋ ์ค์ฐจ๋ฅผ "matrix" ํํ๋ก ์ ์ฅํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๊ณ์ฐ๋ ์ค์ฐจ๋ฅผ ์ ์ฅํ "matrix"๋ฅผ ๋ฐํํฉ๋๋ค.
train_attention
ํจ์ ์ด๋ฆ: train_attention
์ ๋ ฅ:
datacfg (str): ๋ฐ์ดํฐ ๊ตฌ์ฑ์ ์ํ ์ค์ ํ์ผ
cfgfile (str): YOLOv3 ์ํคํ ์ฒ๋ฅผ ์ํ ์ค์ ํ์ผ
weightfile (str): YOLOv3์ ๊ฐ์ค์น ํ์ผ
gpus (list of int): ์ฌ์ฉํ GPU์ ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด
ngpus (int): ์ฌ์ฉํ GPU์ ๊ฐ์
clear (bool): ๋์ ๋ ๊ทธ๋๋์ธํธ๋ฅผ ์ง์ธ์ง ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ ํ๋๊ทธ
๋์:
YOLOv3 ๋คํธ์ํฌ๋ฅผ
load_networkํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๋ํ๋ค.ํ์ต๋ฅ ์
ngpus * learning_rate๋ก ์ค์ ํ๊ณ , ์ด๋learning_rate๋ ์ค์ ํ์ผ์ ์ ์๋ ํ์ดํผํ๋ผ๋ฏธํฐ์ด๋ค.train_list์์ ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ค.ํ์ต ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ ,
tile_dataํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ์ผ๋ก ๋๋์ด ๋คํธ์ํฌ์์ ํ์ตํ๋ค.์ต๋ ๋ฐฐ์น ์๊ฐ ๋๋ฌํ๊ฑฐ๋ ์ค์ ํ์ผ์
max_batches๋งค๊ฐ๋ณ์๊ฐ 0์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ, ํ์ต์ ๋ฌด๊ธฐํ์ผ๋ก ๊ณ์๋๋ค.๊ฐ ๋ฐ๋ณต์์, ๋ณ๋์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ฐฐ์น๋ฅผ ๋ก๋ํ๊ณ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ํ,
divs*divs์ต์ปค ๋ฐ์ค๋ฅผ ํฌํจํ๋ ์ง์ค ๊ฐ์ ํ์ฅํ์ฌ ์ ํ๋ ํ์ผ๋ก ๋คํธ์ํฌ๋ฅผ ํ์ตํ๊ณ ๊ทธ๋๋์ธํธ๋ฅผ ์ ๋ฐ์ดํธํ๋ค.์ต์์ ํ์ผ์ ์ ํํ๊ณ ๋ค๋ฅธ ํ์ผ์ ํด์ ํ ํ, ์ ํ๋ ํ์ผ์ ์ดํ ์ ๋งต์ ์ถ๋ ฅํ๊ณ ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ดํ ์ ๋งต์ ์๊ฐํํ๊ธฐ ์ํด ์ด๋ฏธ์ง๋ก ๋ณํํ๋ค.
ํจ์๋ ๋ฐํ๊ฐ์ด ์๋ค.
validate_attention_single
ํจ์ ์ด๋ฆ: validate_attention_single
์ ๋ ฅ:
datacfg: ๋ฐ์ดํฐ ์ค์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
filename: ๋คํธ์ํฌ ๊ตฌ์กฐ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
weightfile: ๋คํธ์ํฌ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
๋์:
์ฃผ์ด์ง ๋คํธ์ํฌ ๋ชจ๋ธ์ ๋ํด ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์ฆ์ ์ํํ๋ ํจ์์ ๋๋ค.
์ฃผ์ด์ง ๊ฒฝ๋ก์ ์๋ ์ค์ ํ์ผ์ ์ฝ์ด ๋ฐ์ดํฐ์ ๋คํธ์ํฌ ๊ตฌ์กฐ๋ฅผ ์ด๊ธฐํํ ํ, ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ฉฐ ๋คํธ์ํฌ ๋ชจ๋ธ์ ์ ์ฉํฉ๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ํ๊ฐํ๊ณ ์ถ๋ ฅํฉ๋๋ค.
์ด ํจ์๋ ๋ค์๊ณผ ๊ฐ์ ๋์์ ์ํํฉ๋๋ค:
๋ฐ์ดํฐ ์ค์ ํ์ผ(datacfg)์ ์ฝ์ด๋ค์ ๋๋ค.
์ ๋ ฅ ์ด๋ฏธ์ง์ ํด๋์ค ์(classes), ์์ K(topk) ๊ฐ์ ์ค์ ํฉ๋๋ค.
์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ , ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค.
ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ด๋ฏธ์ง๋ฅผ cropํฉ๋๋ค.
cropํ ์ด๋ฏธ์ง๋ฅผ ์ด์ฉํ์ฌ ๋คํธ์ํฌ ๋ชจ๋ธ์ ์ ์ฉํฉ๋๋ค.
๋คํธ์ํฌ ๋ชจ๋ธ์ ์ถ๋ ฅ ๊ฐ์ ์ด์ฉํ์ฌ ์ ํ๋๋ฅผ ํ๊ฐํฉ๋๋ค.
ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ Darknet ํ๋ ์์ํฌ์ ์ฝ๋ ์ค ํ๋์ ๋๋ค.
์ฃผ์ด์ง ๊ฒฝ๋ก์ ๋ฐ์ดํฐ ์ค์ ํ์ผ(datacfg), ๋คํธ์ํฌ ๊ตฌ์กฐ ํ์ผ(filename), ๋คํธ์ํฌ ๊ฐ์ค์น ํ์ผ(weightfile)์ ์ด์ฉํ์ฌ ๋คํธ์ํฌ ๋ชจ๋ธ์ ์ด๊ธฐํํ๊ณ , ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ฒ์ฆ์ ์ํํฉ๋๋ค.
๊ฒ์ฆ ๊ฒฐ๊ณผ๋ ํ๊ท ์ ํ๋(avg_acc)์ ํ๊ท ์์ K(topk) ์ ํ๋(avg_topk)๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
validate_attention_multi
ํจ์ ์ด๋ฆ: validate_attention_multi
์ ๋ ฅ:
char* datacfg: ๋ฐ์ดํฐ ์ค์ ํ์ผ ๊ฒฝ๋ก
char* filename: ๋คํธ์ํฌ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก
char* weightfile: ํ์ต๋ ๋ชจ๋ธ์ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
๋์:
๋ค์ค ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ๋ ๋คํธ์ํฌ๋ฅผ ๊ฒ์ฆํ๋ ํจ์์ ๋๋ค.
๋คํธ์ํฌ๊ฐ ์ ํํ๊ฒ ๋ถ๋ฅํ๋ ์ด๋ฏธ์ง์ ๋น์จ๊ณผ ์์ k๊ฐ ๋ถ๋ฅ ์ค ์ฌ๋ฐ๋ฅด๊ฒ ๋ถ๋ฅํ๋ ์ด๋ฏธ์ง์ ๋น์จ์ ์ถ๋ ฅํฉ๋๋ค.
์ค๋ช :
๋คํธ์ํฌ ๊ตฌ์ฑ ํ์ผ๊ณผ ๊ฐ์ค์น ํ์ผ์ ๋ก๋ํ๊ณ , ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ 1๋ก ์ค์ ํฉ๋๋ค.
๋ฐ์ดํฐ ์ค์ ํ์ผ์์ ๋ ์ด๋ธ ๋ชฉ๋ก, ๊ฒ์ฆ ์ด๋ฏธ์ง ๋ชฉ๋ก, ํด๋์ค ์, ์์ k๊ฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
๊ฒ์ฆ ์ด๋ฏธ์ง๋ฅผ ์ฝ์ด๋ค์ด๊ณ , ๋ค์ค ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์กฐ์ ํ๊ณ , ๋คํธ์ํฌ๋ฅผ ํตํด ์์ธกํฉ๋๋ค.
์์ธก ๊ฒฐ๊ณผ์์ ์์ k๊ฐ ๋ถ๋ฅ๋ฅผ ์ ํํ๊ณ , ์ ํ๋์ ์์ k๊ฐ์ ์ ํ๋๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๋ชจ๋ ๊ฒ์ฆ ์ด๋ฏธ์ง์ ๋ํด ์ ํ๋์ ์์ k๊ฐ์ ์ ํ๋๋ฅผ ๊ณ์ฐํ๊ณ ์ถ๋ ฅํฉ๋๋ค.
predict_attention
ํจ์ ์ด๋ฆ: predict_attention
์ ๋ ฅ:
char *datacfg: ๋ฐ์ดํฐ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ํฌ์ธํฐ
char *cfgfile: YOLO ๋คํธ์ํฌ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ํฌ์ธํฐ
char *weightfile: YOLO ๋คํธ์ํฌ ๊ฐ์ค์น ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ํฌ์ธํฐ
char *filename: ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ํฌ์ธํฐ (์ ํ์ )
int top: ์์ธก ๊ฒฐ๊ณผ์์ ์์ N๊ฐ์ ํด๋์ค๋ฅผ ๋ณด์ฌ์ค์ง ๊ฒฐ์ ํ๋ ์ ์
๋์:
YOLO ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ ์ ๋ ฅ ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๋ฅผ ๊ฐ์งํ์ฌ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํจ์
์ ๋ ฅ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ์ง์ ์ ๋ ฅํ๊ฑฐ๋ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉ
์์ธก ๊ฒฐ๊ณผ์์ ์์ N๊ฐ์ ํด๋์ค๋ฅผ ๋ณด์ฌ์ค
ํจ์๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ๊น์ง ๋ฌดํ ๋ฃจํ๋ฅผ ์คํํ์ฌ ๊ณ์ํด์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์ ์ ์์
์ค๋ช :
ํจ์๋ YOLO ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ , ์ด๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฅ ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๋ฅผ ๊ฐ์งํ๊ณ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํจ
์์ธก ๊ฒฐ๊ณผ์์ ๋ณด์ฌ์ค ํด๋์ค์ ์(top)๋ ์ ๋ ฅ์ผ๋ก ๋ฐ๊ฑฐ๋, ๋ฐ์ดํฐ ๊ตฌ์ฑ ํ์ผ์์ ์ฐพ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ 1๋ก ์ค์ ๋จ
ํจ์๋ ๋ฌดํ ๋ฃจํ๋ฅผ ์คํํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ง์ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ์์ธก์ ์ํํจ
์์ธก ๊ฒฐ๊ณผ์์๋ ๊ฐ ํด๋์ค์ ์ด๋ฆ๊ณผ ํด๋น ํด๋์ค์ผ ํ๋ฅ ์ด ๋ฐฑ๋ถ์จ๋ก ์ถ๋ ฅ๋จ
ํจ์๊ฐ ์คํ๋๋ฉด ๋จผ์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ , YOLO ๋คํธ์ํฌ์์ ์ฌ์ฉ๋๋ ํฌ๊ธฐ๋ก ์ด๋ฏธ์ง๋ฅผ ์กฐ์ ํจ
์ดํ, ์์ธก์ ์ํํ๊ณ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํจ
์์ธก ๊ฒฐ๊ณผ๋ ํด๋์ค์ ์ด๋ฆ๊ณผ ํ๋ฅ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์์ N๊ฐ์ ํด๋์ค๋ง ์ถ๋ ฅํจ
ํจ์๊ฐ ์ข ๋ฃ๋๊ธฐ ์ ๊น์ง ๋ฌดํ ๋ฃจํ๋ฅผ ์คํํ์ฌ ๊ณ์ํด์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์ ์ ์์
run_attention
ํจ์ ์ด๋ฆ: run_attention
์ ๋ ฅ:
argc: int, ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๋ฌ๋ ์ธ์์ ๊ฐ์
argv: char**, ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๋ฌ๋ ์ธ์๋ค์ ๋ฐฐ์ด
๋์:
์ฃผ์ด์ง ์ธ์๋ค์ ๋ถ์ํ์ฌ ํด๋นํ๋ ์์ ์ ์คํํจ
"predict" ์ธ์๊ฐ ์ฃผ์ด์ง๋ฉด, predict_attention ํจ์๋ฅผ ํธ์ถํ์ฌ ์ด๋ฏธ์ง ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ํด๋น ์ด๋ฏธ์ง์ ๋ํ ๊ฐ์ฒด ์ธ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํจ
"train" ์ธ์๊ฐ ์ฃผ์ด์ง๋ฉด, train_attention ํจ์๋ฅผ ํธ์ถํ์ฌ ์ง์ ๋ ๋ฐ์ดํฐ์ ์ผ๋ก๋ถํฐ ๋ชจ๋ธ์ ํ์ต์ํด
"valid" ์ธ์๊ฐ ์ฃผ์ด์ง๋ฉด, validate_attention_single ํจ์๋ฅผ ํธ์ถํ์ฌ ์ง์ ๋ ๋ฐ์ดํฐ์ ์ผ๋ก๋ถํฐ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํจ
"validmulti" ์ธ์๊ฐ ์ฃผ์ด์ง๋ฉด, validate_attention_multi ํจ์๋ฅผ ํธ์ถํ์ฌ ์ง์ ๋ ๋ฐ์ดํฐ์ ์ผ๋ก๋ถํฐ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํ๊ฐํจ
์ค๋ช :
gpu_list: char*, ์ฌ์ฉํ GPU ๋ชฉ๋ก์ ์ง์ ํจ
ngpus: int, ์ฌ์ฉํ GPU์ ๊ฐ์
gpus: int*, ์ฌ์ฉํ GPU์ ์ธ๋ฑ์ค
top: int, ๊ฐ์ฒด ์ธ์ ๊ฒฐ๊ณผ ์ค ์์ ๋ช ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ์ง ์ง์ ํจ
clear: int, ํ์ต์ ์์ํ๊ธฐ ์ ์ ์ด์ ์ ํ์ต๋ ๋ด์ฉ์ ์ญ์ ํ ์ง ์ฌ๋ถ๋ฅผ ์ง์ ํจ
data: char*, ๋ฐ์ดํฐ์ ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํจ
cfg: char*, ๋ชจ๋ธ์ ์ค์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํจ
weights: char*, ๋ชจ๋ธ์ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ง์ ํจ (์๋ต ๊ฐ๋ฅ)
filename: char*, ๊ฐ์ฒด ์ธ์์ ์ํํ ์ด๋ฏธ์ง ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์ ํจ (์๋ต ๊ฐ๋ฅ)
layer_s: char*, ๋ชจ๋ธ์์ ์ถ๋ ฅํ ๋ ์ด์ด ์ด๋ฆ์ ์ง์ ํจ (์๋ต ๊ฐ๋ฅ)
Last updated
Was this helpful?