Joseph Redmon
2016-08-11 aebe937710ced03d03f73ab23f410f29685655c1
src/layer.h
@@ -2,6 +2,7 @@
#define BASE_LAYER_H
#include "activations.h"
#include "stddef.h"
struct layer;
typedef struct layer layer;
@@ -22,7 +23,15 @@
    LOCAL,
    SHORTCUT,
    ACTIVE,
    RNN
    RNN,
    GRU,
    CRNN,
    BATCHNORM,
    NETWORK,
    XNOR,
    REGION,
    REORG,
    BLANK
} LAYER_TYPE;
typedef enum{
@@ -44,6 +53,7 @@
    int h,w,c;
    int out_h, out_w, out_c;
    int n;
    int max_boxes;
    int groups;
    int size;
    int side;
@@ -53,8 +63,10 @@
    int flip;
    int index;
    int binary;
    int xnor;
    int steps;
    int hidden;
    float dot;
    float angle;
    float jitter;
    float saturation;
@@ -69,6 +81,7 @@
    int does_cost;
    int joint;
    int noadjust;
    int reorg;
    float alpha;
    float beta;
@@ -78,6 +91,7 @@
    float object_scale;
    float noobject_scale;
    float class_scale;
    int random;
    int dontload;
    int dontloadscales;
@@ -90,8 +104,16 @@
    float *rand;
    float *cost;
    float *filters;
    char  *cfilters;
    float *filter_updates;
    float *state;
    float *prev_state;
    float *forgot_state;
    float *forgot_delta;
    float *state_delta;
    float *concat;
    float *concat_delta;
    float *binary_filters;
@@ -129,17 +151,52 @@
    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;
    float * filters_gpu;
    float * filter_updates_gpu;
    float *binary_input_gpu;
    float *binary_filters_gpu;
    float *mean_filters_gpu;
    float * spatial_mean_gpu;
    float * spatial_variance_gpu;
    float * mean_gpu;
    float * variance_gpu;
@@ -147,9 +204,6 @@
    float * rolling_mean_gpu;
    float * rolling_variance_gpu;
    float * spatial_mean_delta_gpu;
    float * spatial_variance_delta_gpu;
    float * variance_delta_gpu;
    float * mean_delta_gpu;
@@ -171,6 +225,16 @@
    float * rand_gpu;
    float * squared_gpu;
    float * norms_gpu;
    #ifdef CUDNN
    cudnnTensorDescriptor_t srcTensorDesc, dstTensorDesc;
    cudnnTensorDescriptor_t dsrcTensorDesc, ddstTensorDesc;
    cudnnFilterDescriptor_t filterDesc;
    cudnnFilterDescriptor_t dfilterDesc;
    cudnnConvolutionDescriptor_t convDesc;
    cudnnConvolutionFwdAlgo_t fw_algo;
    cudnnConvolutionBwdDataAlgo_t bd_algo;
    cudnnConvolutionBwdFilterAlgo_t bf_algo;
    #endif
    #endif
};