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