darknet  v3
darknet.h
Go to the documentation of this file.
1 #ifndef DARKNET_API
2 #define DARKNET_API
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <string.h>
6 #include <pthread.h>
7 
8 #define SECRET_NUM -1234
9 extern int gpu_index;
10 
11 #ifdef GPU
12  #define BLOCK 512
13 
14  #include "cuda_runtime.h"
15  #include "curand.h"
16  #include "cublas_v2.h"
17 
18  #ifdef CUDNN
19  #include "cudnn.h"
20  #endif
21 #endif
22 
23 #ifndef __cplusplus
24  #ifdef OPENCV
25  #include "opencv2/highgui/highgui_c.h"
26  #include "opencv2/imgproc/imgproc_c.h"
27  #include "opencv2/core/version.hpp"
28  #if CV_MAJOR_VERSION == 3
29  #include "opencv2/videoio/videoio_c.h"
30  #include "opencv2/imgcodecs/imgcodecs_c.h"
31  #endif
32  #endif
33 #endif
34 
35 typedef struct{
36  int classes;
37  char **names;
38 } metadata;
39 
40 metadata get_metadata(char *file);
41 
42 typedef struct{
43  int *leaf;
44  int n;
45  int *parent;
46  int *child;
47  int *group;
48  char **name;
49 
50  int groups;
51  int *group_size;
53 } tree;
54 tree *read_tree(char *filename);
55 
56 typedef enum{
58 } ACTIVATION;
59 
60 typedef enum{
63 
64 typedef enum {
80  RNN,
81  GRU,
95 } LAYER_TYPE;
96 
97 typedef enum{
99 } COST_TYPE;
100 
101 typedef struct{
102  int batch;
104  float momentum;
105  float decay;
106  int adam;
107  float B1;
108  float B2;
109  float eps;
110  int t;
111 } update_args;
112 
113 struct network;
114 typedef struct network network;
115 
116 struct layer;
117 typedef struct layer layer;
118 
119 struct layer{
123  void (*forward) (struct layer, struct network);
124  void (*backward) (struct layer, struct network);
125  void (*update) (struct layer, update_args);
126  void (*forward_gpu) (struct layer, struct network);
127  void (*backward_gpu) (struct layer, struct network);
128  void (*update_gpu) (struct layer, update_args);
130  int shortcut;
131  int batch;
132  int forced;
133  int flipped;
134  int inputs;
135  int outputs;
136  int nweights;
137  int nbiases;
138  int extra;
139  int truths;
140  int h,w,c;
142  int n;
144  int groups;
145  int size;
146  int side;
147  int stride;
148  int reverse;
149  int flatten;
150  int spatial;
151  int pad;
152  int sqrt;
153  int flip;
154  int index;
155  int binary;
156  int xnor;
157  int steps;
158  int hidden;
159  int truth;
160  float smooth;
161  float dot;
162  float angle;
163  float jitter;
164  float saturation;
165  float exposure;
166  float shift;
167  float ratio;
169  float clip;
170  int noloss;
171  int softmax;
172  int classes;
173  int coords;
175  int rescore;
177  int joint;
178  int noadjust;
179  int reorg;
180  int log;
181  int tanh;
182  int *mask;
183  int total;
184 
185  float alpha;
186  float beta;
187  float kappa;
188 
189  float coord_scale;
192  float mask_scale;
193  float class_scale;
195  int random;
198  float thresh;
199  float focus;
200  int classfix;
201  int absolute;
202 
205  int dontload;
206  int dontsave;
208  int numload;
209 
210  float temperature;
211  float probability;
212  float scale;
213 
214  char * cweights;
215  int * indexes;
217  int * input_sizes;
218  int * map;
219  int * counts;
220  float ** sums;
221  float * rand;
222  float * cost;
223  float * state;
224  float * prev_state;
225  float * forgot_state;
226  float * forgot_delta;
227  float * state_delta;
228  float * combine_cpu;
230 
231  float * concat;
232  float * concat_delta;
233 
234  float * binary_weights;
235 
236  float * biases;
237  float * bias_updates;
238 
239  float * scales;
240  float * scale_updates;
241 
242  float * weights;
243  float * weight_updates;
244 
245  float * delta;
246  float * output;
247  float * loss;
248  float * squared;
249  float * norms;
250 
251  float * spatial_mean;
252  float * mean;
253  float * variance;
254 
255  float * mean_delta;
256  float * variance_delta;
257 
258  float * rolling_mean;
260 
261  float * x;
262  float * x_norm;
263 
264  float * m;
265  float * v;
266 
267  float * bias_m;
268  float * bias_v;
269  float * scale_m;
270  float * scale_v;
271 
272 
273  float *z_cpu;
274  float *r_cpu;
275  float *h_cpu;
276  float * prev_state_cpu;
277 
278  float *temp_cpu;
279  float *temp2_cpu;
280  float *temp3_cpu;
281 
282  float *dh_cpu;
283  float *hh_cpu;
285  float *cell_cpu;
286  float *f_cpu;
287  float *i_cpu;
288  float *g_cpu;
289  float *o_cpu;
290  float *c_cpu;
291  float *dc_cpu;
292 
293  float * binary_input;
294 
296  struct layer *self_layer;
298 
302 
309 
312 
315 
318 
319  struct layer *wz;
320  struct layer *uz;
321  struct layer *wr;
322  struct layer *ur;
323  struct layer *wh;
324  struct layer *uh;
325  struct layer *uo;
326  struct layer *wo;
327  struct layer *uf;
328  struct layer *wf;
329  struct layer *ui;
330  struct layer *wi;
331  struct layer *ug;
332  struct layer *wg;
333 
335 
337 
338 #ifdef GPU
339  int *indexes_gpu;
340 
341  float *z_gpu;
342  float *r_gpu;
343  float *h_gpu;
344 
345  float *temp_gpu;
346  float *temp2_gpu;
347  float *temp3_gpu;
348 
349  float *dh_gpu;
350  float *hh_gpu;
351  float *prev_cell_gpu;
352  float *cell_gpu;
353  float *f_gpu;
354  float *i_gpu;
355  float *g_gpu;
356  float *o_gpu;
357  float *c_gpu;
358  float *dc_gpu;
359 
360  float *m_gpu;
361  float *v_gpu;
362  float *bias_m_gpu;
363  float *scale_m_gpu;
364  float *bias_v_gpu;
365  float *scale_v_gpu;
366 
367  float * combine_gpu;
368  float * combine_delta_gpu;
369 
370  float * prev_state_gpu;
371  float * forgot_state_gpu;
372  float * forgot_delta_gpu;
373  float * state_gpu;
374  float * state_delta_gpu;
375  float * gate_gpu;
376  float * gate_delta_gpu;
377  float * save_gpu;
378  float * save_delta_gpu;
379  float * concat_gpu;
380  float * concat_delta_gpu;
381 
382  float * binary_input_gpu;
383  float * binary_weights_gpu;
384 
385  float * mean_gpu;
386  float * variance_gpu;
387 
388  float * rolling_mean_gpu;
389  float * rolling_variance_gpu;
390 
391  float * variance_delta_gpu;
392  float * mean_delta_gpu;
393 
394  float * x_gpu;
395  float * x_norm_gpu;
396  float * weights_gpu;
397  float * weight_updates_gpu;
398  float * weight_change_gpu;
399 
400  float * biases_gpu;
401  float * bias_updates_gpu;
402  float * bias_change_gpu;
403 
404  float * scales_gpu;
405  float * scale_updates_gpu;
406  float * scale_change_gpu;
407 
408  float * output_gpu;
409  float * loss_gpu;
410  float * delta_gpu;
411  float * rand_gpu;
412  float * squared_gpu;
413  float * norms_gpu;
414 #ifdef CUDNN
415  cudnnTensorDescriptor_t srcTensorDesc, dstTensorDesc;
416  cudnnTensorDescriptor_t dsrcTensorDesc, ddstTensorDesc;
417  cudnnTensorDescriptor_t normTensorDesc;
418  cudnnFilterDescriptor_t weightDesc;
419  cudnnFilterDescriptor_t dweightDesc;
420  cudnnConvolutionDescriptor_t convDesc;
421  cudnnConvolutionFwdAlgo_t fw_algo;
422  cudnnConvolutionBwdDataAlgo_t bd_algo;
423  cudnnConvolutionBwdFilterAlgo_t bf_algo;
424 #endif
425 #endif
426 };
427 
428 void free_layer(layer);
429 
430 typedef enum {
433 
434 typedef struct network{
435  int n;
436  int batch;
437  size_t *seen;
438  int *t;
439  float epoch;
442  float *output;
444 
446  float momentum;
447  float decay;
448  float gamma;
449  float scale;
450  float power;
452  int step;
454  float *scales;
455  int *steps;
457  int burn_in;
458 
459  int adam;
460  float B1;
461  float B2;
462  float eps;
463 
464  int inputs;
465  int outputs;
466  int truths;
467  int notruth;
468  int h, w, c;
469  int max_crop;
470  int min_crop;
471  float max_ratio;
472  float min_ratio;
473  int center;
474  float angle;
475  float aspect;
476  float exposure;
477  float saturation;
478  float hue;
479  int random;
480 
483 
484  float *input;
485  float *truth;
486  float *delta;
487  float *workspace;
488  int train;
489  int index;
490  float *cost;
491  float clip;
492 
493 #ifdef GPU
494  float *input_gpu;
495  float *truth_gpu;
496  float *delta_gpu;
497  float *output_gpu;
498 #endif
499 
500 } network;
501 
502 typedef struct {
503  int w;
504  int h;
505  float scale;
506  float rad;
507  float dx;
508  float dy;
509  float aspect;
510 } augment_args;
511 
512 typedef struct {
513  int w;
514  int h;
515  int c;
516  float *data;
517 } image;
518 
519 typedef struct{
520  float x, y, w, h;
521 } box;
522 
523 typedef struct detection{
525  int classes;
526  float *prob;
527  float *mask;
528  float objectness;
530 } detection;
531 
532 typedef struct matrix{
533  int rows, cols;
534  float **vals;
535 } matrix;
536 
537 
538 typedef struct{
539  int w, h;
542  int shallow;
543  int *num_boxes;
545 } data;
546 
547 typedef enum {
549 } data_type;
550 
551 typedef struct load_args{
552  int threads;
553  char **paths;
554  char *path;
555  int n;
556  int m;
557  char **labels;
558  int h;
559  int w;
560  int out_w;
561  int out_h;
562  int nh;
563  int nw;
565  int min, max, size;
566  int classes;
568  int scale;
569  int center;
570  int coords;
571  float jitter;
572  float angle;
573  float aspect;
574  float saturation;
575  float exposure;
576  float hue;
577  data *d;
582 } load_args;
583 
584 typedef struct{
585  int id;
586  float x,y,w,h;
587  float left, right, top, bottom;
588 } box_label;
589 
590 
591 network *load_network(char *cfg, char *weights, int clear);
593 
594 void free_data(data d);
595 
596 typedef struct node{
597  void *val;
598  struct node *next;
599  struct node *prev;
600 } node;
601 
602 typedef struct list{
603  int size;
606 } list;
607 
608 pthread_t load_data(load_args args);
609 list *read_data_cfg(char *filename);
610 list *read_cfg(char *filename);
611 unsigned char *read_file(char *filename);
612 data resize_data(data orig, int w, int h);
613 data *tile_data(data orig, int divs, int size);
614 data select_data(data *orig, int *inds);
615 
618 void update_network(network *net);
619 
620 
621 float dot_cpu(int N, float *X, int INCX, float *Y, int INCY);
622 void axpy_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY);
623 void copy_cpu(int N, float *X, int INCX, float *Y, int INCY);
624 void scal_cpu(int N, float ALPHA, float *X, int INCX);
625 void fill_cpu(int N, float ALPHA, float * X, int INCX);
626 void normalize_cpu(float *x, float *mean, float *variance, int batch, int filters, int spatial);
627 void softmax(float *input, int n, float temp, int stride, float *output);
628 
629 int best_3d_shift_r(image a, image b, int min, int max);
630 #ifdef GPU
631 void axpy_gpu(int N, float ALPHA, float * X, int INCX, float * Y, int INCY);
632 void fill_gpu(int N, float ALPHA, float * X, int INCX);
633 void scal_gpu(int N, float ALPHA, float * X, int INCX);
634 void copy_gpu(int N, float * X, int INCX, float * Y, int INCY);
635 
636 void cuda_set_device(int n);
637 void cuda_free(float *x_gpu);
638 float *cuda_make_array(float *x, size_t n);
639 void cuda_pull_array(float *x_gpu, float *x, size_t n);
640 float cuda_mag_array(float *x_gpu, size_t n);
641 void cuda_push_array(float *x_gpu, float *x, size_t n);
642 
643 void forward_network_gpu(network *net);
644 void backward_network_gpu(network *net);
645 void update_network_gpu(network *net);
646 
647 float train_networks(network **nets, int n, data d, int interval);
648 void sync_nets(network **nets, int n, int interval);
649 void harmless_update_network_gpu(network *net);
650 #endif
651 image get_label(image **characters, char *string, int size);
652 void draw_label(image a, int r, int c, image label, const float *rgb);
653 void save_image_png(image im, const char *name);
654 void get_next_batch(data d, int n, int offset, float *X, float *y);
656 void normalize_image(image p);
657 void matrix_to_csv(matrix m);
658 float train_network_sgd(network *net, data d, int n);
659 void rgbgr_image(image im);
660 data copy_data(data d);
661 data concat_data(data d1, data d2);
662 data load_cifar10_data(char *filename);
663 float matrix_topk_accuracy(matrix truth, matrix guess, int k);
664 void matrix_add_matrix(matrix from, matrix to);
665 void scale_matrix(matrix m, float scale);
666 matrix csv_to_matrix(char *filename);
667 float *network_accuracies(network *net, data d, int n);
669 image make_random_image(int w, int h, int c);
670 
674 void rescale_weights(layer l, float scale, float trans);
675 void rgbgr_weights(layer l);
677 
678 void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, int avg, float hier_thresh, int w, int h, int fps, int fullscreen);
679 void get_detection_detections(layer l, int w, int h, float thresh, detection *dets);
680 
681 char *option_find_str(list *l, char *key, char *def);
682 int option_find_int(list *l, char *key, int def);
683 int option_find_int_quiet(list *l, char *key, int def);
684 
685 network *parse_network_cfg(char *filename);
686 void save_weights(network *net, char *filename);
687 void load_weights(network *net, char *filename);
688 void save_weights_upto(network *net, char *filename, int cutoff);
689 void load_weights_upto(network *net, char *filename, int start, int cutoff);
690 
691 void zero_objectness(layer l);
692 void get_region_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, float tree_thresh, int relative, detection *dets);
693 int get_yolo_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, int relative, detection *dets);
694 void free_network(network *net);
695 void set_batch_network(network *net, int b);
696 void set_temp_network(network *net, float t);
697 image load_image(char *filename, int w, int h, int c);
698 image load_image_color(char *filename, int w, int h);
699 image make_image(int w, int h, int c);
700 image resize_image(image im, int w, int h);
701 void censor_image(image im, int dx, int dy, int w, int h);
702 image letterbox_image(image im, int w, int h);
703 image crop_image(image im, int dx, int dy, int w, int h);
704 image center_crop_image(image im, int w, int h);
705 image resize_min(image im, int min);
706 image resize_max(image im, int max);
709 int resize_network(network *net, int w, int h);
710 void free_matrix(matrix m);
711 void test_resize(char *filename);
712 void save_image(image p, const char *name);
713 int show_image(image p, const char *name, int ms);
715 void draw_box_width(image a, int x1, int y1, int x2, int y2, int w, float r, float g, float b);
717 void composite_3d(char *f1, char *f2, char *out, int delta);
718 data load_data_old(char **paths, int n, int m, char **labels, int k, int w, int h);
719 size_t get_current_batch(network *net);
720 void constrain_image(image im);
723 void top_predictions(network *net, int n, int *index);
724 void flip_image(image a);
725 image float_to_image(int w, int h, int c, float *data);
726 void ghost_image(image source, image dest, int dx, int dy);
727 float network_accuracy(network *net, data d);
728 void random_distort_image(image im, float hue, float saturation, float exposure);
729 void fill_image(image m, float s);
731 void rotate_image_cw(image im, int times);
732 double what_time_is_it_now();
733 image rotate_image(image m, float rad);
735 float box_iou(box a, box b);
737 box_label *read_boxes(char *filename, int *n);
738 box float_to_box(float *f, int stride);
739 void draw_detections(image im, detection *dets, int num, float thresh, char **names, image **alphabet, int classes);
740 
742 image **load_alphabet();
744 float *network_predict(network *net, float *input);
745 
749 void network_detect(network *net, image im, float thresh, float hier_thresh, float nms, detection *dets);
750 detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num);
751 void free_detections(detection *dets, int n);
752 
753 void reset_network_state(network *net, int b);
754 
755 char **get_labels(char *filename);
756 void do_nms_obj(detection *dets, int total, int classes, float thresh);
757 void do_nms_sort(detection *dets, int total, int classes, float thresh);
758 
759 matrix make_matrix(int rows, int cols);
760 
761 #ifndef __cplusplus
762 #ifdef OPENCV
763 image get_image_from_stream(CvCapture *cap);
764 #endif
765 #endif
766 void free_image(image m);
767 float train_network(network *net, data d);
768 pthread_t load_data_in_thread(load_args args);
769 void load_data_blocking(load_args args);
770 list *get_paths(char *filename);
771 void hierarchy_predictions(float *predictions, int n, tree *hier, int only_leaves, int stride);
772 void change_leaves(tree *t, char *leaf_list);
773 
774 int find_int_arg(int argc, char **argv, char *arg, int def);
775 float find_float_arg(int argc, char **argv, char *arg, float def);
776 int find_arg(int argc, char* argv[], char *arg);
777 char *find_char_arg(int argc, char **argv, char *arg, char *def);
778 char *basecfg(char *cfgfile);
779 void find_replace(char *str, char *orig, char *rep, char *output);
780 void free_ptrs(void **ptrs, int n);
781 char *fgetl(FILE *fp);
782 void strip(char *s);
783 float sec(clock_t clocks);
784 void **list_to_array(list *l);
785 void top_k(float *a, int n, int k, int *index);
786 int *read_map(char *filename);
787 void error(const char *s);
788 int max_index(float *a, int n);
789 int max_int_index(int *a, int n);
790 int sample_array(float *a, int n);
791 int *random_index_order(int min, int max);
792 void free_list(list *l);
793 float mse_array(float *a, int n);
794 float variance_array(float *a, int n);
795 float mag_array(float *a, int n);
796 void scale_array(float *a, int n, float s);
797 float mean_array(float *a, int n);
798 float sum_array(float *a, int n);
799 void normalize_array(float *a, int n);
800 int *read_intlist(char *s, int *n, int d);
801 size_t rand_size_t();
802 float rand_normal();
803 float rand_uniform(float min, float max);
804 
805 #endif
data load_cifar10_data(char *filename)
Definition: data.c:1422
Definition: darknet.h:61
float ignore_thresh
Definition: darknet.h:196
int max_boxes
Definition: darknet.h:143
Definition: darknet.h:82
int steps
Definition: darknet.h:157
float min_ratio
Definition: darknet.h:472
float * norms
Definition: darknet.h:249
matrix csv_to_matrix(char *filename)
Definition: matrix.c:133
data load_data_old(char **paths, int n, int m, char **labels, int k, int w, int h)
Definition: data.c:1204
Definition: darknet.h:57
size_t workspace_size
Definition: darknet.h:336
float momentum
Definition: darknet.h:104
ACTIVATION activation
Definition: darknet.h:121
ACTIVATION
Definition: darknet.h:56
data select_data(data *orig, int *inds)
Definition: data.c:1270
float * network_predict(network *net, float *input)
Definition: network.c:497
Definition: darknet.h:596
float thresh
Definition: darknet.h:198
int flip
Definition: darknet.h:153
float hue
Definition: darknet.h:576
void composite_3d(char *f1, char *f2, char *out, int delta)
Definition: image.c:913
void normalize_array(float *a, int n)
Definition: utils.c:554
float * o_cpu
Definition: darknet.h:289
Definition: darknet.h:61
int min_crop
Definition: darknet.h:470
float * scales
Definition: darknet.h:239
float decay
Definition: darknet.h:447
data * tile_data(data orig, int divs, int size)
Definition: data.c:1293
char ** paths
Definition: darknet.h:553
void network_detect(network *net, image im, float thresh, float hier_thresh, float nms, detection *dets)
void reset_network_state(network *net, int b)
Definition: network.c:69
int out_w
Definition: darknet.h:560
image resize_image(image im, int w, int h)
Definition: image.c:1351
struct layer * input_gate_layer
Definition: darknet.h:303
float object_scale
Definition: darknet.h:190
image copy_image(image p)
Definition: image.c:519
int id
Definition: darknet.h:585
float * mean
Definition: darknet.h:252
float * biases
Definition: darknet.h:236
int nh
Definition: darknet.h:562
int batch
Definition: darknet.h:436
void scale_array(float *a, int n, float s)
Definition: utils.c:584
int background
Definition: darknet.h:567
struct node node
image * im
Definition: darknet.h:578
struct layer * input_state_layer
Definition: darknet.h:307
float * rand
Definition: darknet.h:221
float * combine_cpu
Definition: darknet.h:228
struct layer * input_h_layer
Definition: darknet.h:316
int best_3d_shift_r(image a, image b, int min, int max)
Definition: image.c:881
float temperature
Definition: darknet.h:210
int noloss
Definition: darknet.h:170
int rows
Definition: darknet.h:533
pthread_t load_data_in_thread(load_args args)
Definition: data.c:1135
int find_arg(int argc, char *argv[], char *arg)
Definition: utils.c:120
float * weight_updates
Definition: darknet.h:243
data resize_data(data orig, int w, int h)
Definition: data.c:1320
int * map
Definition: darknet.h:218
float clip
Definition: darknet.h:169
load_args get_base_args(network *net)
Definition: network.c:35
int out_h
Definition: darknet.h:561
float variance_array(float *a, int n)
Definition: utils.c:514
int w
Definition: darknet.h:140
struct layer * output_layer
Definition: darknet.h:297
Definition: darknet.h:87
int * parent
Definition: darknet.h:45
int coords
Definition: darknet.h:570
struct layer * state_gate_layer
Definition: darknet.h:304
int pad
Definition: darknet.h:151
Definition: darknet.h:57
struct load_args load_args
void set_batch_network(network *net, int b)
Definition: network.c:339
int n
Definition: darknet.h:142
box_label * read_boxes(char *filename, int *n)
Definition: data.c:139
int truths
Definition: darknet.h:139
struct node * next
Definition: darknet.h:598
int rescore
Definition: darknet.h:175
struct layer * wg
Definition: darknet.h:332
int w
Definition: darknet.h:559
float learning_rate
Definition: darknet.h:445
float train_network_sgd(network *net, data d, int n)
Definition: network.c:300
float scale
Definition: darknet.h:212
int max_index(float *a, int n)
Definition: utils.c:619
int classes
Definition: darknet.h:36
float hue
Definition: darknet.h:478
float momentum
Definition: darknet.h:446
void(* update)(struct layer, update_args)
Definition: darknet.h:125
BINARY_ACTIVATION
Definition: darknet.h:60
float rad
Definition: darknet.h:506
void(* forward_gpu)(struct layer, struct network)
Definition: darknet.h:126
void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, int avg, float hier_thresh, int w, int h, int fps, int fullscreen)
Definition: demo.c:359
struct layer * state_z_layer
Definition: darknet.h:311
void free_data(data d)
Definition: data.c:665
int spatial
Definition: darknet.h:150
int * num_boxes
Definition: darknet.h:543
void get_region_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, float tree_thresh, int relative, detection *dets)
Definition: region_layer.c:364
float * scale_v
Definition: darknet.h:270
int binary
Definition: darknet.h:155
float learning_rate
Definition: darknet.h:103
float * forgot_state
Definition: darknet.h:225
int step
Definition: darknet.h:452
void visualize_network(network *net)
Definition: network.c:477
float * truth
Definition: darknet.h:485
float * rolling_variance
Definition: darknet.h:259
int show_image(image p, const char *name, int ms)
Definition: image.c:575
char * find_char_arg(int argc, char **argv, char *arg, char *def)
Definition: utils.c:163
int w
Definition: darknet.h:539
float aspect
Definition: darknet.h:573
char * basecfg(char *cfgfile)
Definition: utils.c:179
int network_width(network *net)
Definition: network.c:588
Definition: darknet.h:73
float smooth
Definition: darknet.h:160
float mse_array(float *a, int n)
Definition: utils.c:546
Definition: darknet.h:98
void change_leaves(tree *t, char *leaf_list)
Definition: tree.c:7
image resize_max(image im, int max)
Definition: image.c:985
void(* backward_gpu)(struct layer, struct network)
Definition: darknet.h:127
Definition: darknet.h:98
void ** list_to_array(list *l)
Definition: list.c:82
size_t * seen
Definition: darknet.h:437
void censor_image(image im, int dx, int dy, int w, int h)
Definition: image.c:411
int gpu_index
Definition: darknet.h:481
image grayscale_image(image im)
Definition: image.c:1212
layer get_network_output_layer(network *net)
Definition: network.c:699
float * hh_cpu
Definition: darknet.h:283
int stopbackward
Definition: darknet.h:204
char * option_find_str(list *l, char *key, char *def)
Definition: option_list.c:104
float train_network(network *net, data d)
Definition: network.c:314
void top_k(float *a, int n, int k, int *index)
Definition: utils.c:237
float * x
Definition: darknet.h:261
int * random_index_order(int min, int max)
Definition: utils.c:97
int size
Definition: darknet.h:603
void axpy_gpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
void(* update_gpu)(struct layer, update_args)
Definition: darknet.h:128
int get_yolo_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, int relative, detection *dets)
Definition: yolo_layer.c:316
float decay
Definition: darknet.h:105
void free_list(list *l)
Definition: list.c:67
float scale
Definition: darknet.h:449
int * child
Definition: darknet.h:46
Definition: darknet.h:512
float * state_delta
Definition: darknet.h:227
float ** sums
Definition: darknet.h:220
char ** names
Definition: darknet.h:37
int absolute
Definition: darknet.h:201
float * network_accuracies(network *net, data d, int n)
Definition: network.c:689
struct layer * state_save_layer
Definition: darknet.h:306
struct layer * update_layer
Definition: darknet.h:300
struct layer * uz
Definition: darknet.h:320
learning_rate_policy
Definition: darknet.h:430
void save_image(image p, const char *name)
Definition: image.c:717
float * binary_input
Definition: darknet.h:293
void denormalize_convolutional_layer(layer l)
float * temp3_cpu
Definition: darknet.h:280
list * read_cfg(char *filename)
Definition: parser.c:891
void mean_delta_gpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
float max_ratio
Definition: darknet.h:471
struct network network
Definition: darknet.h:114
float * g_cpu
Definition: darknet.h:288
void(* forward)(struct layer, struct network)
Definition: darknet.h:123
char ** name
Definition: darknet.h:48
int out_w
Definition: darknet.h:141
int * group
Definition: darknet.h:47
int h
Definition: darknet.h:558
float jitter
Definition: darknet.h:571
int notruth
Definition: darknet.h:467
void free_network(network *net)
Definition: network.c:716
int max_crop
Definition: darknet.h:469
void flip_image(image a)
Definition: image.c:349
struct layer * uh
Definition: darknet.h:324
data_type type
Definition: darknet.h:580
int * group_offset
Definition: darknet.h:52
image float_to_image(int w, int h, int c, float *data)
Definition: image.c:774
void save_weights(network *net, char *filename)
Definition: parser.c:1080
void draw_box_width(image a, int x1, int y1, int x2, int y2, int w, float r, float g, float b)
Definition: image.c:202
int size
Definition: darknet.h:565
network * parse_network_cfg(char *filename)
Definition: parser.c:742
int side
Definition: darknet.h:146
float * delta
Definition: darknet.h:486
void fill_image(image m, float s)
Definition: image.c:843
float kappa
Definition: darknet.h:187
float B1
Definition: darknet.h:107
float * spatial_mean
Definition: darknet.h:251
void test_resize(char *filename)
Definition: image.c:1396
int nweights
Definition: darknet.h:136
int burn_in
Definition: darknet.h:457
void save_weights_upto(network *net, char *filename, int cutoff)
Definition: parser.c:1007
float * prev_state_cpu
Definition: darknet.h:276
int classes
Definition: darknet.h:525
void load_data_blocking(load_args args)
Definition: data.c:1173
LAYER_TYPE
Definition: darknet.h:64
int out_c
Definition: darknet.h:141
float exposure
Definition: darknet.h:575
struct layer * input_r_layer
Definition: darknet.h:313
float * cell_cpu
Definition: darknet.h:285
float y
Definition: darknet.h:586
Definition: darknet.h:79
struct layer * state_layer
Definition: darknet.h:301
image threshold_image(image im, float thresh)
Definition: image.c:1228
void fill_gpu(int N, float ALPHA, float *X, int INCX)
image make_random_image(int w, int h, int c)
Definition: image.c:763
image get_network_image(network *net)
Definition: network.c:466
struct layer * wh
Definition: darknet.h:323
int * steps
Definition: darknet.h:455
image ** load_alphabet()
Definition: image.c:223
data concat_data(data d1, data d2)
Definition: data.c:1382
float class_scale
Definition: darknet.h:193
Definition: darknet.h:86
void save_image_png(image im, const char *name)
Definition: image.c:700
image get_label(image **characters, char *string, int size)
Definition: image.c:132
Definition: darknet.h:57
void get_detection_detections(layer l, int w, int h, float thresh, detection *dets)
int h
Definition: darknet.h:514
int * t
Definition: darknet.h:438
float * dh_cpu
Definition: darknet.h:282
int max_batches
Definition: darknet.h:453
void grayscale_image_3c(image im)
Definition: image.c:1194
int center
Definition: darknet.h:569
float clip
Definition: darknet.h:491
Definition: darknet.h:57
void load_weights_upto(network *net, char *filename, int start, int cutoff)
Definition: parser.c:1218
float * workspace
Definition: darknet.h:487
node * back
Definition: darknet.h:605
int resize_network(network *net, int w, int h)
Definition: network.c:358
image resize_min(image im, int min)
Definition: image.c:1001
float * variance_delta
Definition: darknet.h:256
struct layer * reset_layer
Definition: darknet.h:299
Definition: darknet.h:431
int nw
Definition: darknet.h:563
Definition: darknet.h:74
Definition: darknet.h:98
struct layer * ui
Definition: darknet.h:329
Definition: darknet.h:42
struct layer * input_save_layer
Definition: darknet.h:305
int * leaf
Definition: darknet.h:43
float * v
Definition: darknet.h:265
Definition: darknet.h:98
float shift
Definition: darknet.h:166
int groups
Definition: darknet.h:50
float * h_cpu
Definition: darknet.h:275
struct layer * wf
Definition: darknet.h:328
float aspect
Definition: darknet.h:475
struct matrix matrix
int batch_normalize
Definition: darknet.h:129
int threads
Definition: darknet.h:552
float * z_cpu
Definition: darknet.h:273
void fill_cpu(int N, float ALPHA, float *X, int INCX)
Definition: blas.c:190
int num_boxes
Definition: darknet.h:564
float * state
Definition: darknet.h:223
float truth_thresh
Definition: darknet.h:197
tree * read_tree(char *filename)
Definition: tree.c:83
int size
Definition: darknet.h:145
Definition: darknet.h:57
image get_network_image_layer(network *net, int i)
Definition: network.c:453
int batch
Definition: darknet.h:102
int option_find_int_quiet(list *l, char *key, int def)
Definition: option_list.c:120
void scal_gpu(int N, float ALPHA, float *X, int INCX)
Definition: darknet.h:61
int m
Definition: darknet.h:556
int sort_class
Definition: darknet.h:529
struct layer * input_z_layer
Definition: darknet.h:310
int center
Definition: darknet.h:473
layer * layers
Definition: darknet.h:441
float B1
Definition: darknet.h:460
int * read_intlist(char *s, int *n, int d)
Definition: utils.c:36
int xnor
Definition: darknet.h:156
float eps
Definition: darknet.h:462
int train
Definition: darknet.h:488
Definition: darknet.h:431
char * fgetl(FILE *fp)
Definition: utils.c:335
void draw_label(image a, int r, int c, image label, const float *rgb)
Definition: image.c:149
data * d
Definition: darknet.h:577
int * input_layers
Definition: darknet.h:216
float focus
Definition: darknet.h:199
int shortcut
Definition: darknet.h:130
float exposure
Definition: darknet.h:165
float * cost
Definition: darknet.h:490
float mean_array(float *a, int n)
Definition: utils.c:487
float * bias_m
Definition: darknet.h:267
image center_crop_image(image im, int w, int h)
Definition: image.c:796
int subdivisions
Definition: darknet.h:440
Definition: darknet.h:57
image make_image(int w, int h, int c)
Definition: image.c:756
int h
Definition: darknet.h:140
int numload
Definition: darknet.h:208
int * mask
Definition: darknet.h:182
image rotate_image(image m, float rad)
Definition: image.c:824
Definition: darknet.h:431
float probability
Definition: darknet.h:211
float * delta
Definition: darknet.h:245
void forward_network(network *net)
Definition: network.c:188
int out_h
Definition: darknet.h:141
int background
Definition: darknet.h:174
Definition: darknet.h:80
float * scales
Definition: darknet.h:454
void rescale_weights(layer l, float scale, float trans)
float beta
Definition: darknet.h:186
int inputs
Definition: darknet.h:134
void get_next_batch(data d, int n, int offset, float *X, float *y)
Definition: data.c:1459
struct layer * wi
Definition: darknet.h:330
data load_all_cifar10()
Definition: data.c:1481
void normalize_image(image p)
Definition: image.c:465
int adam
Definition: darknet.h:106
void axpy_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
Definition: blas.c:178
Definition: darknet.h:57
image load_image_color(char *filename, int w, int h)
Definition: image.c:1486
void(* backward)(struct layer, struct network)
Definition: darknet.h:124
float network_accuracy(network *net, data d)
Definition: network.c:681
float * x_norm
Definition: darknet.h:262
struct layer * state_state_layer
Definition: darknet.h:308
float find_float_arg(int argc, char **argv, char *arg, float def)
Definition: utils.c:148
void constrain_image(image im)
Definition: image.c:456
Definition: darknet.h:77
struct layer * wz
Definition: darknet.h:319
int dontload
Definition: darknet.h:205
float * prob
Definition: darknet.h:526
void backward_network(network *net)
Definition: network.c:263
int classes
Definition: darknet.h:566
int * input_sizes
Definition: darknet.h:217
float objectness
Definition: darknet.h:528
float get_current_rate(network *net)
Definition: network.c:90
float * combine_delta_cpu
Definition: darknet.h:229
int noadjust
Definition: darknet.h:178
int batch
Definition: darknet.h:131
tree * hierarchy
Definition: darknet.h:581
float B2
Definition: darknet.h:461
struct layer * ur
Definition: darknet.h:322
float * output
Definition: darknet.h:246
int onlyforward
Definition: darknet.h:203
void scal_cpu(int N, float ALPHA, float *X, int INCX)
Definition: blas.c:184
struct layer * input_layer
Definition: darknet.h:295
float * dc_cpu
Definition: darknet.h:291
float saturation
Definition: darknet.h:477
int index
Definition: darknet.h:489
float sum_array(float *a, int n)
Definition: utils.c:479
float * rolling_mean
Definition: darknet.h:258
float * r_cpu
Definition: darknet.h:274
float top
Definition: darknet.h:587
float * i_cpu
Definition: darknet.h:287
Definition: darknet.h:88
float mask_scale
Definition: darknet.h:192
int shallow
Definition: darknet.h:542
void * val
Definition: darknet.h:597
int scale
Definition: darknet.h:568
image load_image(char *filename, int w, int h, int c)
Definition: image.c:1470
image letterbox_image(image im, int w, int h)
Definition: image.c:964
int * group_size
Definition: darknet.h:51
void normalize_cpu(float *x, float *mean, float *variance, int batch, int filters, int spatial)
Definition: blas.c:147
int objectness
Definition: darknet.h:176
float sec(clock_t clocks)
Definition: utils.c:232
float saturation
Definition: darknet.h:574
float * mean_delta
Definition: darknet.h:255
Definition: darknet.h:431
struct layer * state_r_layer
Definition: darknet.h:314
void copy_gpu(int N, float *X, int INCX, float *Y, int INCY)
COST_TYPE
Definition: darknet.h:97
void do_nms_obj(detection *dets, int total, int classes, float thresh)
Definition: box.c:21
box bbox
Definition: darknet.h:524
int find_int_arg(int argc, char **argv, char *arg, int def)
Definition: utils.c:133
float dx
Definition: darknet.h:507
network * load_network(char *cfg, char *weights, int clear)
Definition: network.c:53
int truth
Definition: darknet.h:159
char ** get_labels(char *filename)
Definition: data.c:657
void free_detections(detection *dets, int n)
Definition: network.c:569
int joint
Definition: darknet.h:177
int random
Definition: darknet.h:479
void set_temp_network(network *net, float t)
Definition: network.c:330
int groups
Definition: darknet.h:144
Definition: darknet.h:61
struct layer * ug
Definition: darknet.h:331
node * front
Definition: darknet.h:604
int n
Definition: darknet.h:555
int sqrt
Definition: darknet.h:152
image crop_image(image im, int dx, int dy, int w, int h)
Definition: image.c:861
float rand_normal()
Definition: utils.c:654
int flatten
Definition: darknet.h:149
matrix network_predict_data(network *net, data test)
Definition: network.c:616
Definition: darknet.h:83
struct layer * wr
Definition: darknet.h:321
float * bias_updates
Definition: darknet.h:237
void statistics_connected_layer(layer l)
float angle
Definition: darknet.h:162
void free_matrix(matrix m)
Definition: matrix.c:10
int forced
Definition: darknet.h:132
int truths
Definition: darknet.h:466
void update_network(network *net)
Definition: network.c:213
float box_iou(box a, box b)
Definition: box.c:179
int c
Definition: darknet.h:515
int w
Definition: darknet.h:513
void denormalize_connected_layer(layer l)
float dot
Definition: darknet.h:161
struct node * prev
Definition: darknet.h:599
Definition: darknet.h:98
void free_layer(layer)
Definition: layer.c:6
void cuda_set_device(int n)
Definition: cuda.c:176
float learning_rate_scale
Definition: darknet.h:168
float * loss
Definition: darknet.h:247
float dot_cpu(int N, float *X, int INCX, float *Y, int INCY)
Definition: blas.c:297
char * path
Definition: darknet.h:554
void random_distort_image(image im, float hue, float saturation, float exposure)
Definition: image.c:1334
int stride
Definition: darknet.h:147
size_t rand_size_t()
Definition: utils.c:686
int coords
Definition: darknet.h:173
float alpha
Definition: darknet.h:185
void rgbgr_weights(layer l)
Definition: darknet.h:602
float * prev_cell_cpu
Definition: darknet.h:284
int hidden
Definition: darknet.h:158
int c
Definition: darknet.h:140
float eps
Definition: darknet.h:109
list * read_data_cfg(char *filename)
Definition: option_list.c:7
void copy_cpu(int N, float *X, int INCX, float *Y, int INCY)
Definition: blas.c:226
char ** labels
Definition: darknet.h:557
int random
Definition: darknet.h:195
matrix X
Definition: darknet.h:540
metadata get_metadata(char *file)
Definition: option_list.c:35
float * forgot_delta
Definition: darknet.h:226
int num_steps
Definition: darknet.h:456
unsigned char * read_file(char *filename)
Definition: utils.c:260
image * get_weights(layer l)
float scale
Definition: darknet.h:505
struct layer * uf
Definition: darknet.h:327
tree * hierarchy
Definition: darknet.h:482
int * read_map(char *filename)
Definition: utils.c:59
struct layer * state_h_layer
Definition: darknet.h:317
image * resized
Definition: darknet.h:579
void matrix_add_matrix(matrix from, matrix to)
Definition: matrix.c:66
float * concat
Definition: darknet.h:231
Definition: darknet.h:90
float * temp_cpu
Definition: darknet.h:278
Definition: darknet.h:98
int reverse
Definition: darknet.h:148
int classfix
Definition: darknet.h:200
int * indexes
Definition: darknet.h:215
float B2
Definition: darknet.h:108
int classes
Definition: darknet.h:172
float * mask
Definition: darknet.h:527
int softmax
Definition: darknet.h:171
float jitter
Definition: darknet.h:163
int gpu_index
Definition: cuda.c:1
float * temp2_cpu
Definition: darknet.h:279
float saturation
Definition: darknet.h:164
int outputs
Definition: darknet.h:465
LAYER_TYPE type
Definition: darknet.h:120
void rotate_image_cw(image im, int times)
Definition: image.c:328
float * scale_m
Definition: darknet.h:269
float * input
Definition: darknet.h:484
Definition: darknet.h:93
void mean_gpu(float *x, int batch, int filters, int spatial, float *mean)
size_t get_current_batch(network *net)
Definition: network.c:63
float * scale_updates
Definition: darknet.h:240
void zero_objectness(layer l)
Definition: region_layer.c:497
float * f_cpu
Definition: darknet.h:286
float ** vals
Definition: darknet.h:534
void do_nms_sort(detection *dets, int total, int classes, float thresh)
Definition: box.c:58
void draw_detections(image im, detection *dets, int num, float thresh, char **names, image **alphabet, int classes)
Definition: image.c:239
int dontloadscales
Definition: darknet.h:207
float aspect
Definition: darknet.h:509
void find_replace(char *str, char *orig, char *rep, char *output)
Definition: utils.c:216
matrix make_matrix(int rows, int cols)
Definition: matrix.c:91
int bias_match
Definition: darknet.h:194
int log
Definition: darknet.h:180
float * prev_state
Definition: darknet.h:224
int n
Definition: darknet.h:435
void variance_gpu(float *x, float *mean, int batch, int filters, int spatial, float *variance)
float * binary_weights
Definition: darknet.h:234
int time_steps
Definition: darknet.h:451
Definition: darknet.h:57
int network_height(network *net)
Definition: network.c:589
float y
Definition: darknet.h:520
float angle
Definition: darknet.h:572
float matrix_topk_accuracy(matrix truth, matrix guess, int k)
Definition: matrix.c:17
int flipped
Definition: darknet.h:133
list * get_paths(char *filename)
Definition: data.c:12
int tanh
Definition: darknet.h:181
float * output
Definition: darknet.h:442
struct list list
tree * softmax_tree
Definition: darknet.h:334
int dontsave
Definition: darknet.h:206
int total
Definition: darknet.h:183
void top_predictions(network *net, int n, int *index)
Definition: network.c:491
data copy_data(data d)
Definition: data.c:1592
box float_to_box(float *f, int stride)
Definition: box.c:91
Definition: darknet.h:81
float * squared
Definition: darknet.h:248
int outputs
Definition: darknet.h:135
int nbiases
Definition: darknet.h:137
float * m
Definition: darknet.h:264
float * variance
Definition: darknet.h:253
int max_int_index(int *a, int n)
Definition: utils.c:605
Definition: darknet.h:57
void matrix_to_csv(matrix m)
Definition: matrix.c:161
detection * get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num)
Definition: network.c:562
void free_image(image m)
Definition: image.c:1614
COST_TYPE cost_type
Definition: darknet.h:122
float ratio
Definition: darknet.h:167
int adam
Definition: darknet.h:459
float mag_array(float *a, int n)
Definition: utils.c:574
Definition: darknet.h:72
struct layer * uo
Definition: darknet.h:325
struct detection detection
float rand_uniform(float min, float max)
Definition: utils.c:698
Definition: darknet.h:57
int reorg
Definition: darknet.h:179
float * concat_delta
Definition: darknet.h:232
int extra
Definition: darknet.h:138
float train_network_datum(network *net)
Definition: network.c:289
float * c_cpu
Definition: darknet.h:290
struct layer * wo
Definition: darknet.h:326
char * cweights
Definition: darknet.h:214
pthread_t load_data(load_args args)
Definition: data.c:1180
Definition: darknet.h:431
void error(const char *s)
Definition: utils.c:253
int sample_array(float *a, int n)
Definition: utils.c:592
void free_ptrs(void **ptrs, int n)
Definition: utils.c:328
learning_rate_policy policy
Definition: darknet.h:443
float power
Definition: darknet.h:450
void load_weights(network *net, char *filename)
Definition: parser.c:1308
void strip(char *s)
Definition: utils.c:302
int option_find_int(list *l, char *key, int def)
Definition: option_list.c:112
int n
Definition: darknet.h:44
Definition: darknet.h:89
float coord_scale
Definition: darknet.h:189
int w
Definition: darknet.h:468
image mask_to_rgb(image mask)
Definition: image.c:28
void scale_matrix(matrix m, float scale)
Definition: matrix.c:37
float * bias_v
Definition: darknet.h:268
Definition: darknet.h:538
box ** boxes
Definition: darknet.h:544
void hierarchy_predictions(float *predictions, int n, tree *hier, int only_leaves, int stride)
Definition: tree.c:37
Definition: darknet.h:94
Definition: darknet.h:57
void rgbgr_image(image im)
Definition: image.c:527
double what_time_is_it_now()
Definition: utils.c:27
int * counts
Definition: darknet.h:219
float dy
Definition: darknet.h:508
int index
Definition: darknet.h:154
float epoch
Definition: darknet.h:439
float * cost
Definition: darknet.h:222
float noobject_scale
Definition: darknet.h:191
float * network_predict_image(network *net, image im)
Definition: network.c:579
void ghost_image(image source, image dest, int dx, int dy)
Definition: image.c:380
int inputs
Definition: darknet.h:464
data_type
Definition: darknet.h:547
struct layer * self_layer
Definition: darknet.h:296
Definition: darknet.h:519
Definition: darknet.h:119
float * data
Definition: darknet.h:516
matrix y
Definition: darknet.h:541
float exposure
Definition: darknet.h:476
float * weights
Definition: darknet.h:242
float gamma
Definition: darknet.h:448
float angle
Definition: darknet.h:474
Definition: darknet.h:57