8 #define SECRET_NUM -1234 14 #include "cuda_runtime.h" 16 #include "cublas_v2.h" 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" 57 LOGISTIC,
RELU,
RELIE,
LINEAR,
RAMP,
TANH,
PLSE,
LEAKY,
ELU,
LOGGY,
STAIR,
HARDTAN,
LHTAN,
SELU 351 float *prev_cell_gpu;
368 float * combine_delta_gpu;
370 float * prev_state_gpu;
371 float * forgot_state_gpu;
372 float * forgot_delta_gpu;
374 float * state_delta_gpu;
376 float * gate_delta_gpu;
378 float * save_delta_gpu;
380 float * concat_delta_gpu;
382 float * binary_input_gpu;
383 float * binary_weights_gpu;
388 float * rolling_mean_gpu;
389 float * rolling_variance_gpu;
391 float * variance_delta_gpu;
397 float * weight_updates_gpu;
398 float * weight_change_gpu;
401 float * bias_updates_gpu;
402 float * bias_change_gpu;
405 float * scale_updates_gpu;
406 float * scale_change_gpu;
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;
548 CLASSIFICATION_DATA,
DETECTION_DATA,
CAPTCHA_DATA,
REGION_DATA,
IMAGE_DATA,
COMPARE_DATA,
WRITING_DATA,
SWAG_DATA,
TAG_DATA,
OLD_CLASSIFICATION_DATA,
STUDY_DATA,
DET_DATA,
SUPER_DATA,
LETTERBOX_DATA,
REGRESSION_DATA,
SEGMENTATION_DATA,
INSTANCE_DATA,
ISEG_DATA 587 float left, right,
top, bottom;
611 unsigned char *
read_file(
char *filename);
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);
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);
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);
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);
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);
763 image get_image_from_stream(CvCapture *cap);
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);
781 char *
fgetl(FILE *fp);
783 float sec(clock_t clocks);
787 void error(
const char *s);
data load_cifar10_data(char *filename)
matrix csv_to_matrix(char *filename)
data load_data_old(char **paths, int n, int m, char **labels, int k, int w, int h)
data select_data(data *orig, int *inds)
float * network_predict(network *net, float *input)
void composite_3d(char *f1, char *f2, char *out, int delta)
void normalize_array(float *a, int n)
data * tile_data(data orig, int divs, int size)
void network_detect(network *net, image im, float thresh, float hier_thresh, float nms, detection *dets)
void reset_network_state(network *net, int b)
image resize_image(image im, int w, int h)
struct layer * input_gate_layer
image copy_image(image p)
void scale_array(float *a, int n, float s)
struct layer * input_state_layer
struct layer * input_h_layer
int best_3d_shift_r(image a, image b, int min, int max)
pthread_t load_data_in_thread(load_args args)
int find_arg(int argc, char *argv[], char *arg)
data resize_data(data orig, int w, int h)
load_args get_base_args(network *net)
float variance_array(float *a, int n)
struct layer * output_layer
struct layer * state_gate_layer
struct load_args load_args
void set_batch_network(network *net, int b)
box_label * read_boxes(char *filename, int *n)
float train_network_sgd(network *net, data d, int n)
int max_index(float *a, int n)
void(* update)(struct layer, update_args)
void(* forward_gpu)(struct layer, struct network)
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)
struct layer * state_z_layer
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)
void visualize_network(network *net)
int show_image(image p, const char *name, int ms)
char * find_char_arg(int argc, char **argv, char *arg, char *def)
char * basecfg(char *cfgfile)
int network_width(network *net)
float mse_array(float *a, int n)
void change_leaves(tree *t, char *leaf_list)
image resize_max(image im, int max)
void(* backward_gpu)(struct layer, struct network)
void ** list_to_array(list *l)
void censor_image(image im, int dx, int dy, int w, int h)
image grayscale_image(image im)
layer get_network_output_layer(network *net)
char * option_find_str(list *l, char *key, char *def)
float train_network(network *net, data d)
void top_k(float *a, int n, int k, int *index)
int * random_index_order(int min, int max)
void axpy_gpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
void(* update_gpu)(struct layer, update_args)
int get_yolo_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, int relative, detection *dets)
float * network_accuracies(network *net, data d, int n)
struct layer * state_save_layer
struct layer * update_layer
void save_image(image p, const char *name)
void denormalize_convolutional_layer(layer l)
list * read_cfg(char *filename)
void mean_delta_gpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
void(* forward)(struct layer, struct network)
void free_network(network *net)
image float_to_image(int w, int h, int c, float *data)
void save_weights(network *net, char *filename)
void draw_box_width(image a, int x1, int y1, int x2, int y2, int w, float r, float g, float b)
network * parse_network_cfg(char *filename)
void fill_image(image m, float s)
void test_resize(char *filename)
void save_weights_upto(network *net, char *filename, int cutoff)
void load_data_blocking(load_args args)
struct layer * input_r_layer
struct layer * state_layer
image threshold_image(image im, float thresh)
void fill_gpu(int N, float ALPHA, float *X, int INCX)
image make_random_image(int w, int h, int c)
image get_network_image(network *net)
data concat_data(data d1, data d2)
void save_image_png(image im, const char *name)
image get_label(image **characters, char *string, int size)
void get_detection_detections(layer l, int w, int h, float thresh, detection *dets)
void grayscale_image_3c(image im)
void load_weights_upto(network *net, char *filename, int start, int cutoff)
int resize_network(network *net, int w, int h)
image resize_min(image im, int min)
struct layer * reset_layer
struct layer * input_save_layer
void fill_cpu(int N, float ALPHA, float *X, int INCX)
tree * read_tree(char *filename)
image get_network_image_layer(network *net, int i)
int option_find_int_quiet(list *l, char *key, int def)
void scal_gpu(int N, float ALPHA, float *X, int INCX)
struct layer * input_z_layer
int * read_intlist(char *s, int *n, int d)
void draw_label(image a, int r, int c, image label, const float *rgb)
float mean_array(float *a, int n)
image center_crop_image(image im, int w, int h)
image make_image(int w, int h, int c)
image rotate_image(image m, float rad)
void forward_network(network *net)
void rescale_weights(layer l, float scale, float trans)
void get_next_batch(data d, int n, int offset, float *X, float *y)
void normalize_image(image p)
void axpy_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
image load_image_color(char *filename, int w, int h)
void(* backward)(struct layer, struct network)
float network_accuracy(network *net, data d)
struct layer * state_state_layer
float find_float_arg(int argc, char **argv, char *arg, float def)
void constrain_image(image im)
void backward_network(network *net)
float get_current_rate(network *net)
float * combine_delta_cpu
void scal_cpu(int N, float ALPHA, float *X, int INCX)
struct layer * input_layer
float sum_array(float *a, int n)
image load_image(char *filename, int w, int h, int c)
image letterbox_image(image im, int w, int h)
void normalize_cpu(float *x, float *mean, float *variance, int batch, int filters, int spatial)
float sec(clock_t clocks)
struct layer * state_r_layer
void copy_gpu(int N, float *X, int INCX, float *Y, int INCY)
void do_nms_obj(detection *dets, int total, int classes, float thresh)
int find_int_arg(int argc, char **argv, char *arg, int def)
network * load_network(char *cfg, char *weights, int clear)
char ** get_labels(char *filename)
void free_detections(detection *dets, int n)
void set_temp_network(network *net, float t)
image crop_image(image im, int dx, int dy, int w, int h)
matrix network_predict_data(network *net, data test)
void statistics_connected_layer(layer l)
void free_matrix(matrix m)
void update_network(network *net)
float box_iou(box a, box b)
void denormalize_connected_layer(layer l)
void cuda_set_device(int n)
float learning_rate_scale
float dot_cpu(int N, float *X, int INCX, float *Y, int INCY)
void random_distort_image(image im, float hue, float saturation, float exposure)
void rgbgr_weights(layer l)
list * read_data_cfg(char *filename)
void copy_cpu(int N, float *X, int INCX, float *Y, int INCY)
metadata get_metadata(char *file)
unsigned char * read_file(char *filename)
image * get_weights(layer l)
int * read_map(char *filename)
struct layer * state_h_layer
void matrix_add_matrix(matrix from, matrix to)
void rotate_image_cw(image im, int times)
void mean_gpu(float *x, int batch, int filters, int spatial, float *mean)
size_t get_current_batch(network *net)
void zero_objectness(layer l)
void do_nms_sort(detection *dets, int total, int classes, float thresh)
void draw_detections(image im, detection *dets, int num, float thresh, char **names, image **alphabet, int classes)
void find_replace(char *str, char *orig, char *rep, char *output)
matrix make_matrix(int rows, int cols)
void variance_gpu(float *x, float *mean, int batch, int filters, int spatial, float *variance)
int network_height(network *net)
float matrix_topk_accuracy(matrix truth, matrix guess, int k)
list * get_paths(char *filename)
void top_predictions(network *net, int n, int *index)
box float_to_box(float *f, int stride)
int max_int_index(int *a, int n)
void matrix_to_csv(matrix m)
detection * get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num)
float mag_array(float *a, int n)
struct detection detection
float rand_uniform(float min, float max)
float train_network_datum(network *net)
pthread_t load_data(load_args args)
void error(const char *s)
int sample_array(float *a, int n)
void free_ptrs(void **ptrs, int n)
learning_rate_policy policy
void load_weights(network *net, char *filename)
int option_find_int(list *l, char *key, int def)
image mask_to_rgb(image mask)
void scale_matrix(matrix m, float scale)
void hierarchy_predictions(float *predictions, int n, tree *hier, int only_leaves, int stride)
void rgbgr_image(image im)
double what_time_is_it_now()
float * network_predict_image(network *net, image im)
void ghost_image(image source, image dest, int dx, int dy)
struct layer * self_layer