YOLO（darknet）のコンフィグ(CFG)パラメーターおよびオプション一覧

YOLO（darknet）のコンフィグパラメーターについてあまり書かれていないので備忘録。
~.cfgファイルで定義するパラメーター群の一覧になります。
V3でのパラメーター群になります。
畳み込み（conv）だけでなくRNNやLSTMも用意されています。

便宜上オプションのtypeにstringを使っていますが、実態はC言語なのでcharポインターです。

####[~]:層の定義(src/parser.c#string_to_layer_typeにパーサーが記述されている)

|定義文字列|名称
|-----|-----
|shortcut | ショートカット層
|crop | クロップ層
|cost | cost層
|detection | detection層
|region | region層
|yolo | yolo層
|iseg | iseg層
|local | local層
|convまたはconvolutional | 畳み込み層
|deconvまたはdeconvolutional | 逆畳み込み層
|activation | activation層
|logistic | logistic層
|l2norm | l2norm層
|netまたはnetwork | ネットワーク層
|crnn | crnn層
|gru | gru層
|lstm | lstm層
|rnn | rnn層
|connまたはconnected | connected層
|maxまたはmaxpool | maxpool層
|reorg | reorg層
|avgまたはavgpool | avgpool層
|dropout | dropout層
|lrnまたはnormalization | normalization層
|batchnorm | batchnorm層
|softまたはsoftmax | softmax層
|route | route層
|upsample | upsample層

####shortcut層のオプション src/parser.c#parse_shortcut
|定義文字列| type | default値 
|---------|-------|---------------
|from|int|
|activation|string|linear
|alpha|float|
|beta|float|

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####crop層のオプション src/parser.c#parse_crop
|定義文字列| type | default値
|---------|-------|---------
|crop_height|int|1
|crop_width|int|1
|flip|int|0
|angle|float|0
|saturation|float|1
|exposure|float|1
|noadjust|int|0
|shift|float|0

####cost層のオプション src/parser.c#parse_cost
|定義文字列| type | default値
|---------|-------|----------
|type|string|sse
|scale|float|1
|ratio|float|0
|noobj|float|1
|thresh|float|0

costで指定できるのは
`seg`、`sse`、`masked`、`smooth`、`L1`、`wgan`

####detection層のオプション src/parser.c#parse_detection
|定義文字列| type | default値 
|---------|-------|----------
|coords|int|1
|classes|int|1
|rescore|int|0
|num|int|1
|side|int|7
|softmax|int|0
|sqrt|int|0
|max|int|90
|coord_scale|float|1
|forced|int|0
|object_scale|float|1
|noobject_scale|float|1
|class_scale|float|1
|jitter|float|2
|random|int|0
|reorg|int|0

####region層のオプション src/parser.c#parse_region
|定義文字列| type | default値 
|---------|-------|----------
|coords|int|4
|classes|int|20
|num|int|1
|log|int|0
|sqrt|int|0
|softmax|int|0
|background|int|0
|max|int|30
|jitter|float|0.2
|rescore|int|0
|thresh|float|0.5
|classfix|int|0
|absolute|int|0
|random|int|0
|coord_scale|float|1
|object_scale|float|1
|noobject_scale|float|1
|mask_scale|float|1
|class_scale|float|1
|bias_match|float|0
|tree|string|0
|map|int|0
|anchors|string|0

####yolo層のオプション src/parser.c#parse_yolo
|定義文字列| type | default値 
|---------|-------|----------
|classes|int|20
|num|int|1
|mask|int|0
|max|int|90
|jitter|float|0.2
|ignore_thresh|float|0.5
|truth_thresh|float|0.5
|random|int|0
|map|int|0
|anchors|string|0

####iseg層のオプション src/parser.c#parse_iseg
|定義文字列| type | default値 
|---------|-------|----------
|classes|int|20
|ids|int|32

####local層のオプション src/parser.c#parse_local
|定義文字列| type | default値 
|---------|-------|----------
|filters|int|1
|size|int|1
|stride|int|1
|pad|int|0
|activation|string|logistic

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####conv/convolutional層のオプション src/parser.c#parse_convolutional
|定義文字列| type | default値 
|---------|-------|----------
|filters|int|1
|size|int|1
|stride|int|1
|pad|int|0
|padding|int|0
|groups|int|1
|activation|string|logistic
|batch_normalize|int|0
|binary|int|0
|xnor|int|0
|flipped|int|0
|dot|float|0

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####deconv/deconvolutional層のオプション src/parser.c#parse_deconvolutional
|定義文字列| type | default値 
|---------|-------|----------
|filters|int|1
|size|int|1
|stride|int|1
|activation|string|logistic
|batch_normalize|int|0
|pad|int|0
|padding|int|0

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####activation層のオプション src/parser.c#parse_activation
|定義文字列| type | default値 
|---------|-------|----------
|activation|string|linear

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`


####logistic層のオプション src/parser.c#parse_logistic
オプションなし

####l2norm層のオプション src/parser.c#parse_l2norm
オプションなし

####net/network層のオプション src/parser.c#parse_net_options
|定義文字列| type | default値 
|---------|-------|----------
|batch|int|1
|learning_rate|float|.001
|momentum|float|.9
|decay|float|.0001
|subdivisions|int|1
|time_steps|int|1
|notruth|int|0
|random|int|0
|adam|int|0
|B1|float|.9(ただしadamが指定された場合のみ有効)
|B2|float|.999(ただしadamが指定された場合のみ有効)
|eps|float|.0000001(ただしadamが指定された場合のみ有効)
|height|int|0
|width|int|0
|channels|int|0
|inputs|int|height*width*channels
|max_crop|int|width*2
|min_crop|int|width
|max_ratio|float|max_crop/width
|min_ratio|float|min_crop/width
|center|int|0
|clip|float|0
|angle|float|0
|aspect|float|1
|saturation|float|1
|exposure|float|1
|hue|float|0
|policy|string|constant
|burn_in|int|0
|power|float|4
|step|int|1(policyがstepまたはsigの場合有効)
|scale|float|1(policyがstepの場合のみ有効)
|steps|string|(policyがstepsの場合のみ有効)
|scales|string|(policyがstepsの場合のみ有効)
|gamma|float|1(policyがexpまたはsigの場合有効)
|max_batches|int|0

policyで指定できるのは
`random`、`poly`、`constant`、`step`、`exp`、`sigmoid`、`steps`


####crnn層のオプション src/parser.c#parse_crnn
|定義文字列| type | default値 
|---------|-------|----------
|output_filters|int|1
|hidden_filters|int|1
|activation|string|logistic
|batch_normalize|int|0
|shortcut|int|0

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####gru層のオプション src/parser.c#parse_gru
|定義文字列| type | default値 
|---------|-------|----------
|output|int|1
|batch_normalize|int|0
|tanh|int|0

####lstm層のオプション src/parser.c#parse_lstm
|定義文字列| type | default値 
|---------|-------|----------
|output|int|1
|batch_normalize|int|0

####rnn層のオプション src/parser.c#parse_rnn
|定義文字列| type | default値 
|---------|-------|----------
|output|int|1
|activation|string|logistic
|batch_normalize|int|0
|shortcut|int|0

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####conn/connected層のオプション src/parser.c#parse_connected
|定義文字列| type | default値 
|---------|-------|----------
|output|int|1
|activation|string|logistic
|batch_normalize|int|0

activationで指定できるのは
`logistic`、`loggy`、`relu`、`elu`、`selu`、`relie`、`ramp`、`linear`、`tanh`、`plse`、`leaky`、`stair`、`hardtan`、`lhtan`

####max/maxpool層のオプション src/parser.c#parse_maxpool
|定義文字列| type | default値 
|---------|-------|----------
|stride|int|1
|size|int|stride
|padding|int|size-1

####reorg層のオプション src/parser.c#parse_reorg
|定義文字列| type | default値 
|---------|-------|----------
|stride|int|1
|reverse|int|0
|flatten|int|0
|extra|int|0

####avg/avgpool層のオプション src/parser.c#parse_avgpool
オプションなし

####dropout層のオプション src/parser.c#parse_dropout
|定義文字列| type | default値 
|---------|-------|----------
|probability|float|0.5

####lrn/normalization層のオプション src/parser.c#parse_normalization
|定義文字列| type | default値 
|---------|-------|----------
|alpha|float|0.0001
|beta|float|0.75
|kappa|float|1
|size|int|5

####batchnorm層のオプション src/parser.c#parse_batchnorm
オプションなし

####soft/softmax層のオプション src/parser.c#parse_softmax
|定義文字列| type | default値 
|---------|-------|----------
|groups|int|1
|temperature|int|1
|tree|string|0
|spatial|float|0
|noloss|int|0

####route層のオプション src/parser.c#parse_route
|定義文字列| type | default値 
|---------|-------|----------
|layers|string|カンマ区切りで複数指定できるためstring（ex:layers = -1, 36)

####upsample層のオプション src/parser.c#parse_upsample
|定義文字列| type | default値 
|---------|-------|----------
|stride|int|2
|scale|float|1