派生自 Algorithm/baseDetector

Scheaven
2021-06-03 168af40fe9a3cc81c6ee16b3e81f154780c36bdb
lib/detecter_tools/darknet/layer.h
@@ -1,338 +1,338 @@
#ifndef BASE_LAYER_H
#define BASE_LAYER_H
#include "activations.h"
#include "stddef.h"
#include "tree.h"
#ifdef __cplusplus
extern "C" {
#endif
//struct network_state;
//struct layer;
//typedef struct layer layer;
//typedef enum {
//    CONVOLUTIONAL,
//    DECONVOLUTIONAL,
//    CONNECTED,
//    MAXPOOL,
//    SOFTMAX,
//    DETECTION,
//    DROPOUT,
//    CROP,
//    ROUTE,
//    COST,
//    NORMALIZATION,
//    AVGPOOL,
//    LOCAL,
//    SHORTCUT,
//    ACTIVE,
//    RNN,
//    GRU,
//    CRNN,
//    BATCHNORM,
//    NETWORK,
//    XNOR,
//    REGION,
//   YOLO,
//    REORG,
//   UPSAMPLE,
//   REORG_OLD,
//    BLANK
//} LAYER_TYPE;
//typedef enum{
//    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 forced;
    int flipped;
    int inputs;
    int outputs;
    int truths;
    int h,w,c;
    int out_h, out_w, out_c;
    int n;
    int max_boxes;
    int groups;
    int size;
    int side;
    int stride;
    int reverse;
   int spatial;
    int pad;
    int sqrt;
    int flip;
    int index;
    int binary;
    int xnor;
    int use_bin_output;
    int steps;
    int hidden;
    float dot;
    float angle;
    float jitter;
    float saturation;
    float exposure;
    float shift;
    float ratio;
    float learning_rate_scale;
   int focal_loss;
   int noloss;
    int softmax;
    int classes;
    int coords;
    int background;
    int rescore;
    int objectness;
    int does_cost;
    int joint;
    int noadjust;
    int reorg;
    int log;
   int tanh;
   int *mask;
   int total;
   float bflops;
    int adam;
    float B1;
    float B2;
    float eps;
    int t;
    float *m;
    float *v;
    float * bias_m;
    float * bias_v;
    float * scale_m;
    float * scale_v;
    tree *softmax_tree;
    int  *map;
    float alpha;
    float beta;
    float kappa;
    float coord_scale;
    float object_scale;
    float noobject_scale;
   float mask_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;
    float temperature;
    float probability;
    float scale;
    int *indexes;
    float *rand;
    float *cost;
    char  *cweights;
    float *state;
    float *prev_state;
    float *forgot_state;
    float *forgot_delta;
    float *state_delta;
    float *concat;
    float *concat_delta;
    float *binary_weights;
    float *biases;
    float *bias_updates;
    float *scales;
    float *scale_updates;
    float *weights;
    float *weight_updates;
    char *align_bit_weights_gpu;
    float *mean_arr_gpu;
    float *align_workspace_gpu;
    float *transposed_align_workspace_gpu;
    int align_workspace_size;
    char *align_bit_weights;
    float *mean_arr;
    int align_bit_weights_size;
    int lda_align;
    int new_lda;
    int bit_align;
    float *col_image;
    int   * input_layers;
    int   * input_sizes;
    float * delta;
    float * output;
   float * loss;
    float * squared;
    float * norms;
    float * spatial_mean;
    float * mean;
    float * variance;
    float * mean_delta;
    float * variance_delta;
    float * rolling_mean;
    float * rolling_variance;
    float * x;
    float * x_norm;
    struct layer *input_layer;
    struct layer *self_layer;
    struct layer *output_layer;
    struct layer *input_gate_layer;
    struct layer *state_gate_layer;
    struct layer *input_save_layer;
    struct layer *state_save_layer;
    struct layer *input_state_layer;
    struct layer *state_state_layer;
    struct layer *input_z_layer;
    struct layer *state_z_layer;
    struct layer *input_r_layer;
    struct layer *state_r_layer;
    struct layer *input_h_layer;
    struct layer *state_h_layer;
    float *z_cpu;
    float *r_cpu;
    float *h_cpu;
    float *binary_input;
    size_t workspace_size;
#ifdef GPU
    float *z_gpu;
    float *r_gpu;
    float *h_gpu;
    int *indexes_gpu;
    float * prev_state_gpu;
    float * forgot_state_gpu;
    float * forgot_delta_gpu;
    float * state_gpu;
    float * state_delta_gpu;
    float * gate_gpu;
    float * gate_delta_gpu;
    float * save_gpu;
    float * save_delta_gpu;
    float * concat_gpu;
    float * concat_delta_gpu;
    // adam
    float *m_gpu;
    float *v_gpu;
    float *bias_m_gpu;
    float *scale_m_gpu;
    float *bias_v_gpu;
    float *scale_v_gpu;
    float *binary_input_gpu;
    float *binary_weights_gpu;
    float * mean_gpu;
    float * variance_gpu;
    float * rolling_mean_gpu;
    float * rolling_variance_gpu;
    float * variance_delta_gpu;
    float * mean_delta_gpu;
    float * col_image_gpu;
    float * x_gpu;
    float * x_norm_gpu;
    float * weights_gpu;
    float * weight_updates_gpu;
   float * weights_gpu16;
   float * weight_updates_gpu16;
    float * biases_gpu;
    float * bias_updates_gpu;
    float * scales_gpu;
    float * scale_updates_gpu;
    float * output_gpu;
   float * loss_gpu;
    float * delta_gpu;
    float * rand_gpu;
    float * squared_gpu;
    float * norms_gpu;
    #ifdef CUDNN
    cudnnTensorDescriptor_t srcTensorDesc, dstTensorDesc;
    cudnnTensorDescriptor_t srcTensorDesc16, dstTensorDesc16;
    cudnnTensorDescriptor_t dsrcTensorDesc, ddstTensorDesc;
    cudnnTensorDescriptor_t dsrcTensorDesc16, ddstTensorDesc16;
   cudnnTensorDescriptor_t normTensorDesc, normDstTensorDesc, normDstTensorDescF16;
    cudnnFilterDescriptor_t weightDesc, weightDesc16;
    cudnnFilterDescriptor_t dweightDesc, dweightDesc16;
    cudnnConvolutionDescriptor_t convDesc;
    cudnnConvolutionFwdAlgo_t fw_algo, fw_algo16;
    cudnnConvolutionBwdDataAlgo_t bd_algo, bd_algo16;
    cudnnConvolutionBwdFilterAlgo_t bf_algo, bf_algo16;
    cudnnPoolingDescriptor_t poolingDesc;
    #endif  // CUDNN
#endif  // GPU
};
*/
//void free_layer(layer);
#ifdef __cplusplus
}
#endif
#endif
#ifndef BASE_LAYER_H
#define BASE_LAYER_H
#include "activations.h"
#include "stddef.h"
#include "tree.h"
#ifdef __cplusplus
extern "C" {
#endif
//struct network_state;
//struct layer;
//typedef struct layer layer;
//typedef enum {
//    CONVOLUTIONAL,
//    DECONVOLUTIONAL,
//    CONNECTED,
//    MAXPOOL,
//    SOFTMAX,
//    DETECTION,
//    DROPOUT,
//    CROP,
//    ROUTE,
//    COST,
//    NORMALIZATION,
//    AVGPOOL,
//    LOCAL,
//    SHORTCUT,
//    ACTIVE,
//    RNN,
//    GRU,
//    CRNN,
//    BATCHNORM,
//    NETWORK,
//    XNOR,
//    REGION,
//   YOLO,
//    REORG,
//   UPSAMPLE,
//   REORG_OLD,
//    BLANK
//} LAYER_TYPE;
//typedef enum{
//    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 forced;
    int flipped;
    int inputs;
    int outputs;
    int truths;
    int h,w,c;
    int out_h, out_w, out_c;
    int n;
    int max_boxes;
    int groups;
    int size;
    int side;
    int stride;
    int reverse;
   int spatial;
    int pad;
    int sqrt;
    int flip;
    int index;
    int binary;
    int xnor;
    int use_bin_output;
    int steps;
    int hidden;
    float dot;
    float angle;
    float jitter;
    float saturation;
    float exposure;
    float shift;
    float ratio;
    float learning_rate_scale;
   int focal_loss;
   int noloss;
    int softmax;
    int classes;
    int coords;
    int background;
    int rescore;
    int objectness;
    int does_cost;
    int joint;
    int noadjust;
    int reorg;
    int log;
   int tanh;
   int *mask;
   int total;
   float bflops;
    int adam;
    float B1;
    float B2;
    float eps;
    int t;
    float *m;
    float *v;
    float * bias_m;
    float * bias_v;
    float * scale_m;
    float * scale_v;
    tree *softmax_tree;
    int  *map;
    float alpha;
    float beta;
    float kappa;
    float coord_scale;
    float object_scale;
    float noobject_scale;
   float mask_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;
    float temperature;
    float probability;
    float scale;
    int *indexes;
    float *rand;
    float *cost;
    char  *cweights;
    float *state;
    float *prev_state;
    float *forgot_state;
    float *forgot_delta;
    float *state_delta;
    float *concat;
    float *concat_delta;
    float *binary_weights;
    float *biases;
    float *bias_updates;
    float *scales;
    float *scale_updates;
    float *weights;
    float *weight_updates;
    char *align_bit_weights_gpu;
    float *mean_arr_gpu;
    float *align_workspace_gpu;
    float *transposed_align_workspace_gpu;
    int align_workspace_size;
    char *align_bit_weights;
    float *mean_arr;
    int align_bit_weights_size;
    int lda_align;
    int new_lda;
    int bit_align;
    float *col_image;
    int   * input_layers;
    int   * input_sizes;
    float * delta;
    float * output;
   float * loss;
    float * squared;
    float * norms;
    float * spatial_mean;
    float * mean;
    float * variance;
    float * mean_delta;
    float * variance_delta;
    float * rolling_mean;
    float * rolling_variance;
    float * x;
    float * x_norm;
    struct layer *input_layer;
    struct layer *self_layer;
    struct layer *output_layer;
    struct layer *input_gate_layer;
    struct layer *state_gate_layer;
    struct layer *input_save_layer;
    struct layer *state_save_layer;
    struct layer *input_state_layer;
    struct layer *state_state_layer;
    struct layer *input_z_layer;
    struct layer *state_z_layer;
    struct layer *input_r_layer;
    struct layer *state_r_layer;
    struct layer *input_h_layer;
    struct layer *state_h_layer;
    float *z_cpu;
    float *r_cpu;
    float *h_cpu;
    float *binary_input;
    size_t workspace_size;
#ifdef GPU
    float *z_gpu;
    float *r_gpu;
    float *h_gpu;
    int *indexes_gpu;
    float * prev_state_gpu;
    float * forgot_state_gpu;
    float * forgot_delta_gpu;
    float * state_gpu;
    float * state_delta_gpu;
    float * gate_gpu;
    float * gate_delta_gpu;
    float * save_gpu;
    float * save_delta_gpu;
    float * concat_gpu;
    float * concat_delta_gpu;
    // adam
    float *m_gpu;
    float *v_gpu;
    float *bias_m_gpu;
    float *scale_m_gpu;
    float *bias_v_gpu;
    float *scale_v_gpu;
    float *binary_input_gpu;
    float *binary_weights_gpu;
    float * mean_gpu;
    float * variance_gpu;
    float * rolling_mean_gpu;
    float * rolling_variance_gpu;
    float * variance_delta_gpu;
    float * mean_delta_gpu;
    float * col_image_gpu;
    float * x_gpu;
    float * x_norm_gpu;
    float * weights_gpu;
    float * weight_updates_gpu;
   float * weights_gpu16;
   float * weight_updates_gpu16;
    float * biases_gpu;
    float * bias_updates_gpu;
    float * scales_gpu;
    float * scale_updates_gpu;
    float * output_gpu;
   float * loss_gpu;
    float * delta_gpu;
    float * rand_gpu;
    float * squared_gpu;
    float * norms_gpu;
    #ifdef CUDNN
    cudnnTensorDescriptor_t srcTensorDesc, dstTensorDesc;
    cudnnTensorDescriptor_t srcTensorDesc16, dstTensorDesc16;
    cudnnTensorDescriptor_t dsrcTensorDesc, ddstTensorDesc;
    cudnnTensorDescriptor_t dsrcTensorDesc16, ddstTensorDesc16;
   cudnnTensorDescriptor_t normTensorDesc, normDstTensorDesc, normDstTensorDescF16;
    cudnnFilterDescriptor_t weightDesc, weightDesc16;
    cudnnFilterDescriptor_t dweightDesc, dweightDesc16;
    cudnnConvolutionDescriptor_t convDesc;
    cudnnConvolutionFwdAlgo_t fw_algo, fw_algo16;
    cudnnConvolutionBwdDataAlgo_t bd_algo, bd_algo16;
    cudnnConvolutionBwdFilterAlgo_t bf_algo, bf_algo16;
    cudnnPoolingDescriptor_t poolingDesc;
    #endif  // CUDNN
#endif  // GPU
};
*/
//void free_layer(layer);
#ifdef __cplusplus
}
#endif
#endif