From 168af40fe9a3cc81c6ee16b3e81f154780c36bdb Mon Sep 17 00:00:00 2001 From: Scheaven <xuepengqiang> Date: 星期四, 03 六月 2021 15:03:27 +0800 Subject: [PATCH] up new v4 --- lib/detecter_tools/darknet/network.h | 363 ++++++++++++++++++++++++++------------------------- 1 files changed, 184 insertions(+), 179 deletions(-) diff --git a/lib/detecter_tools/darknet/network.h b/lib/detecter_tools/darknet/network.h index 4043558..7661c8e 100644 --- a/lib/detecter_tools/darknet/network.h +++ b/lib/detecter_tools/darknet/network.h @@ -1,179 +1,184 @@ -// Oh boy, why am I about to do this.... -#ifndef NETWORK_H -#define NETWORK_H -#include "darknet.h" - -#include <stdint.h> -#include "layer.h" - - -#include "image.h" -#include "data.h" -#include "tree.h" - -#ifdef __cplusplus -extern "C" { -#endif -/* -typedef enum { - CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM -} learning_rate_policy; - -typedef struct network{ - float *workspace; - int n; - int batch; - uint64_t *seen; - float epoch; - int subdivisions; - float momentum; - float decay; - layer *layers; - int outputs; - float *output; - learning_rate_policy policy; - - float learning_rate; - float gamma; - float scale; - float power; - int time_steps; - int step; - int max_batches; - float *scales; - int *steps; - int num_steps; - int burn_in; - int cudnn_half; - - int adam; - float B1; - float B2; - float eps; - - int inputs; - int h, w, c; - int max_crop; - int min_crop; - int flip; // horizontal flip 50% probability augmentaiont for classifier training (default = 1) - float angle; - float aspect; - float exposure; - float saturation; - float hue; - int small_object; - - int gpu_index; - tree *hierarchy; - - #ifdef GPU - float *input_state_gpu; - - float **input_gpu; - float **truth_gpu; - float **input16_gpu; - float **output16_gpu; - size_t *max_input16_size; - size_t *max_output16_size; - int wait_stream; - #endif -} network; - - -typedef struct network_state { - float *truth; - float *input; - float *delta; - float *workspace; - int train; - int index; - network net; -} network_state; -*/ - -#ifdef GPU -float train_networks(network *nets, int n, data d, int interval); -void sync_nets(network *nets, int n, int interval); -float train_network_datum_gpu(network net, float *x, float *y); -float *network_predict_gpu(network net, float *input); -float * get_network_output_gpu_layer(network net, int i); -float * get_network_delta_gpu_layer(network net, int i); -float *get_network_output_gpu(network net); -void forward_network_gpu(network net, network_state state); -void backward_network_gpu(network net, network_state state); -void update_network_gpu(network net); -void forward_backward_network_gpu(network net, float *x, float *y); -#endif - -float get_current_seq_subdivisions(network net); -int get_sequence_value(network net); -float get_current_rate(network net); -int get_current_batch(network net); -int64_t get_current_iteration(network net); -//void free_network(network net); // darknet.h -void compare_networks(network n1, network n2, data d); -char *get_layer_string(LAYER_TYPE a); - -network make_network(int n); -void forward_network(network net, network_state state); -void backward_network(network net, network_state state); -void update_network(network net); - -float train_network(network net, data d); -float train_network_waitkey(network net, data d, int wait_key); -float train_network_batch(network net, data d, int n); -float train_network_sgd(network net, data d, int n); -float train_network_datum(network net, float *x, float *y); - -matrix network_predict_data(network net, data test); -//LIB_API float *network_predict(network net, float *input); -//LIB_API float *network_predict_ptr(network *net, float *input); -float network_accuracy(network net, data d); -float *network_accuracies(network net, data d, int n); -float network_accuracy_multi(network net, data d, int n); -void top_predictions(network net, int n, int *index); -float *get_network_output(network net); -float *get_network_output_layer(network net, int i); -float *get_network_delta_layer(network net, int i); -float *get_network_delta(network net); -int get_network_output_size_layer(network net, int i); -int get_network_output_size(network net); -image get_network_image(network net); -image get_network_image_layer(network net, int i); -int get_predicted_class_network(network net); -void print_network(network net); -void visualize_network(network net); -int resize_network(network *net, int w, int h); -void set_batch_network(network *net, int b); -int get_network_input_size(network net); -float get_network_cost(network net); -//LIB_API layer* get_network_layer(network* net, int i); -//LIB_API detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num, int letter); -//LIB_API detection *make_network_boxes(network *net, float thresh, int *num); -//LIB_API void free_detections(detection *dets, int n); -//LIB_API void reset_rnn(network *net); -//LIB_API network *load_network_custom(char *cfg, char *weights, int clear, int batch); -//LIB_API network *load_network(char *cfg, char *weights, int clear); -//LIB_API float *network_predict_image(network *net, image im); -//LIB_API float validate_detector_map(char *datacfg, char *cfgfile, char *weightfile, float thresh_calc_avg_iou, const float iou_thresh, int map_points, int letter_box, network *existing_net); -//LIB_API void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear, int dont_show, int calc_map, int mjpeg_port); -//LIB_API int network_width(network *net); -//LIB_API int network_height(network *net); -//LIB_API void optimize_picture(network *net, image orig, int max_layer, float scale, float rate, float thresh, int norm); - -int get_network_nuisance(network net); -int get_network_background(network net); -//LIB_API void fuse_conv_batchnorm(network net); -//LIB_API void calculate_binary_weights(network net); -network combine_train_valid_networks(network net_train, network net_map); -void copy_weights_net(network net_train, network *net_map); -void free_network_recurrent_state(network net); -void randomize_network_recurrent_state(network net); -void remember_network_recurrent_state(network net); -void restore_network_recurrent_state(network net); - -#ifdef __cplusplus -} -#endif - -#endif +// Oh boy, why am I about to do this.... +#ifndef NETWORK_H +#define NETWORK_H +#include "darknet.h" + +#include <stdint.h> +#include "layer.h" + + +#include "image.h" +#include "data.h" +#include "tree.h" + +#ifdef __cplusplus +extern "C" { +#endif +/* +typedef enum { + CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM +} learning_rate_policy; + +typedef struct network{ + float *workspace; + int n; + int batch; + uint64_t *seen; + float epoch; + int subdivisions; + float momentum; + float decay; + layer *layers; + int outputs; + float *output; + learning_rate_policy policy; + + float learning_rate; + float gamma; + float scale; + float power; + int time_steps; + int step; + int max_batches; + float *scales; + int *steps; + int num_steps; + int burn_in; + int cudnn_half; + + int adam; + float B1; + float B2; + float eps; + + int inputs; + int h, w, c; + int max_crop; + int min_crop; + int flip; // horizontal flip 50% probability augmentaiont for classifier training (default = 1) + float angle; + float aspect; + float exposure; + float saturation; + float hue; + int small_object; + + int gpu_index; + tree *hierarchy; + + #ifdef GPU + float *input_state_gpu; + + float **input_gpu; + float **truth_gpu; + float **input16_gpu; + float **output16_gpu; + size_t *max_input16_size; + size_t *max_output16_size; + int wait_stream; + #endif +} network; + + +typedef struct network_state { + float *truth; + float *input; + float *delta; + float *workspace; + int train; + int index; + network net; +} network_state; +*/ + +#ifdef GPU +float train_networks(network *nets, int n, data d, int interval); +void sync_nets(network *nets, int n, int interval); +float train_network_datum_gpu(network net, float *x, float *y); +float *network_predict_gpu(network net, float *input); +float * get_network_output_gpu_layer(network net, int i); +float * get_network_delta_gpu_layer(network net, int i); +float *get_network_output_gpu(network net); +void forward_network_gpu(network net, network_state state); +void backward_network_gpu(network net, network_state state); +void update_network_gpu(network net); +void forward_backward_network_gpu(network net, float *x, float *y); +#endif + +float get_current_seq_subdivisions(network net); +int get_sequence_value(network net); +float get_current_rate(network net); +int get_current_batch(network net); +int64_t get_current_iteration(network net); +//void free_network(network net); // darknet.h +void compare_networks(network n1, network n2, data d); +char *get_layer_string(LAYER_TYPE a); + +network make_network(int n); +void forward_network(network net, network_state state); +void backward_network(network net, network_state state); +void update_network(network net); + +float train_network(network net, data d); +float train_network_waitkey(network net, data d, int wait_key); +float train_network_batch(network net, data d, int n); +float train_network_sgd(network net, data d, int n); +float train_network_datum(network net, float *x, float *y); + +matrix network_predict_data(network net, data test); +//LIB_API float *network_predict(network net, float *input); +//LIB_API float *network_predict_ptr(network *net, float *input); +float network_accuracy(network net, data d); +float *network_accuracies(network net, data d, int n); +float network_accuracy_multi(network net, data d, int n); +void top_predictions(network net, int n, int *index); +float *get_network_output(network net); +float *get_network_output_layer(network net, int i); +float *get_network_delta_layer(network net, int i); +float *get_network_delta(network net); +int get_network_output_size_layer(network net, int i); +int get_network_output_size(network net); +image get_network_image(network net); +image get_network_image_layer(network net, int i); +int get_predicted_class_network(network net); +void print_network(network net); +void visualize_network(network net); +int resize_network(network *net, int w, int h); +void set_batch_network(network *net, int b); +int get_network_input_size(network net); +float get_network_cost(network net); +//LIB_API layer* get_network_layer(network* net, int i); +//LIB_API detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num, int letter); +//LIB_API detection *make_network_boxes(network *net, float thresh, int *num); +//LIB_API void free_detections(detection *dets, int n); +//LIB_API void reset_rnn(network *net); +//LIB_API network *load_network_custom(char *cfg, char *weights, int clear, int batch); +//LIB_API network *load_network(char *cfg, char *weights, int clear); +//LIB_API float *network_predict_image(network *net, image im); +//LIB_API float validate_detector_map(char *datacfg, char *cfgfile, char *weightfile, float thresh_calc_avg_iou, const float iou_thresh, int map_points, int letter_box, network *existing_net); +//LIB_API void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear, int dont_show, int calc_map, int mjpeg_port); +//LIB_API int network_width(network *net); +//LIB_API int network_height(network *net); +//LIB_API void optimize_picture(network *net, image orig, int max_layer, float scale, float rate, float thresh, int norm); + +int get_network_nuisance(network net); +int get_network_background(network net); +//LIB_API void fuse_conv_batchnorm(network net); +//LIB_API void calculate_binary_weights(network net); +network combine_train_valid_networks(network net_train, network net_map); +void copy_weights_net(network net_train, network *net_map); +void free_network_recurrent_state(network net); +void randomize_network_recurrent_state(network net); +void remember_network_recurrent_state(network net); +void restore_network_recurrent_state(network net); +int is_ema_initialized(network net); +void ema_update(network net, float ema_alpha); +void ema_apply(network net); +void reject_similar_weights(network net, float sim_threshold); + + +#ifdef __cplusplus +} +#endif + +#endif -- Gitblit v1.8.0