| | |
| | | |
| | | #include "activations.h" |
| | | #include "stddef.h" |
| | | #include "tree.h" |
| | | |
| | | struct network_state; |
| | | |
| | | struct layer; |
| | | typedef struct layer layer; |
| | |
| | | BATCHNORM, |
| | | NETWORK, |
| | | XNOR, |
| | | REGION, |
| | | YOLO, |
| | | REORG, |
| | | UPSAMPLE, |
| | | REORG_OLD, |
| | | BLANK |
| | | } LAYER_TYPE; |
| | | |
| | |
| | | SSE, MASKED, SMOOTH |
| | | } COST_TYPE; |
| | | |
| | | typedef struct { |
| | | int batch; |
| | | float learning_rate; |
| | | float momentum; |
| | | float decay; |
| | | int adam; |
| | | float B1; |
| | | float B2; |
| | | float eps; |
| | | int t; |
| | | } update_args; |
| | | |
| | | struct layer{ |
| | | LAYER_TYPE type; |
| | | ACTIVATION activation; |
| | | COST_TYPE cost_type; |
| | | void (*forward) (struct layer, struct network_state); |
| | | void (*backward) (struct layer, struct network_state); |
| | | void (*update) (struct layer, int, float, float, float); |
| | | void (*forward_gpu) (struct layer, struct network_state); |
| | | void (*backward_gpu) (struct layer, struct network_state); |
| | | void (*update_gpu) (struct layer, int, float, float, float); |
| | | int batch_normalize; |
| | | int shortcut; |
| | | int batch; |
| | |
| | | int out_h, out_w, out_c; |
| | | int n; |
| | | int max_boxes; |
| | | int small_object; |
| | | int groups; |
| | | int size; |
| | | int side; |
| | | int stride; |
| | | int reverse; |
| | | int pad; |
| | | int sqrt; |
| | | int flip; |
| | |
| | | float saturation; |
| | | float exposure; |
| | | float shift; |
| | | float ratio; |
| | | int focal_loss; |
| | | int softmax; |
| | | int classes; |
| | | int coords; |
| | |
| | | int does_cost; |
| | | int joint; |
| | | int noadjust; |
| | | int reorg; |
| | | int log; |
| | | int tanh; |
| | | int *mask; |
| | | int total; |
| | | |
| | | int adam; |
| | | float B1; |
| | | float B2; |
| | | float eps; |
| | | float *m_gpu; |
| | | float *v_gpu; |
| | | int t; |
| | | float *m; |
| | | float *v; |
| | | |
| | | tree *softmax_tree; |
| | | int *map; |
| | | |
| | | float alpha; |
| | | float beta; |
| | |
| | | float object_scale; |
| | | float noobject_scale; |
| | | float class_scale; |
| | | int bias_match; |
| | | int random; |
| | | float ignore_thresh; |
| | | float truth_thresh; |
| | | float thresh; |
| | | float focus; |
| | | int classfix; |
| | | int absolute; |
| | | |
| | | int onlyforward; |
| | | int stopbackward; |
| | | int dontload; |
| | | int dontloadscales; |
| | | |
| | |
| | | int *indexes; |
| | | float *rand; |
| | | float *cost; |
| | | float *filters; |
| | | char *cfilters; |
| | | float *filter_updates; |
| | | char *cweights; |
| | | float *state; |
| | | float *prev_state; |
| | | float *forgot_state; |
| | |
| | | float *concat; |
| | | float *concat_delta; |
| | | |
| | | float *binary_filters; |
| | | float *binary_weights; |
| | | |
| | | float *biases; |
| | | float *bias_updates; |
| | |
| | | float *r_cpu; |
| | | float *h_cpu; |
| | | |
| | | float *binary_input; |
| | | |
| | | size_t workspace_size; |
| | | |
| | | #ifdef GPU |
| | |
| | | float * save_delta_gpu; |
| | | float * concat_gpu; |
| | | float * concat_delta_gpu; |
| | | float * filters_gpu; |
| | | float * filter_updates_gpu; |
| | | |
| | | float *binary_input_gpu; |
| | | float *binary_filters_gpu; |
| | | float *binary_weights_gpu; |
| | | |
| | | float * mean_gpu; |
| | | float * variance_gpu; |
| | |
| | | float * weights_gpu; |
| | | float * weight_updates_gpu; |
| | | |
| | | float * weights_gpu16; |
| | | float * weight_updates_gpu16; |
| | | |
| | | float * biases_gpu; |
| | | float * bias_updates_gpu; |
| | | |
| | |
| | | #ifdef CUDNN |
| | | cudnnTensorDescriptor_t srcTensorDesc, dstTensorDesc; |
| | | cudnnTensorDescriptor_t dsrcTensorDesc, ddstTensorDesc; |
| | | cudnnFilterDescriptor_t filterDesc; |
| | | cudnnFilterDescriptor_t dfilterDesc; |
| | | cudnnTensorDescriptor_t normTensorDesc; |
| | | cudnnFilterDescriptor_t weightDesc; |
| | | cudnnFilterDescriptor_t dweightDesc; |
| | | cudnnConvolutionDescriptor_t convDesc; |
| | | cudnnConvolutionFwdAlgo_t fw_algo; |
| | | cudnnConvolutionBwdDataAlgo_t bd_algo; |