Joseph Redmon
2016-03-14 68213b835b9f15cb449ad2037a8b51c17a3de07b
src/layer.h
@@ -3,6 +3,9 @@
#include "activations.h"
struct layer;
typedef struct layer layer;
typedef enum {
    CONVOLUTIONAL,
    DECONVOLUTIONAL,
@@ -15,33 +18,51 @@
    ROUTE,
    COST,
    NORMALIZATION,
    AVGPOOL
    AVGPOOL,
    LOCAL,
    SHORTCUT,
    ACTIVE,
    RNN,
    CRNN
} LAYER_TYPE;
typedef enum{
    SSE, MASKED
    SSE, MASKED, SMOOTH
} COST_TYPE;
typedef struct {
struct layer{
    LAYER_TYPE type;
    ACTIVATION activation;
    COST_TYPE cost_type;
    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 groups;
    int size;
    int side;
    int stride;
    int pad;
    int crop_width;
    int crop_height;
    int sqrt;
    int flip;
    int index;
    int binary;
    int steps;
    int hidden;
    float dot;
    float angle;
    float jitter;
    float saturation;
    float exposure;
    float shift;
    int softmax;
    int classes;
    int coords;
    int background;
@@ -49,24 +70,39 @@
    int objectness;
    int does_cost;
    int joint;
    int noadjust;
    float alpha;
    float beta;
    float kappa;
    int dontload;
    float coord_scale;
    float object_scale;
    float noobject_scale;
    float class_scale;
    int dontload;
    int dontloadscales;
    float temperature;
    float probability;
    float scale;
    int *indexes;
    float *rand;
    float *cost;
    float *filters;
    float *filter_updates;
    float *state;
    float *binary_filters;
    float *biases;
    float *bias_updates;
    float *scales;
    float *scale_updates;
    float *weights;
    float *weight_updates;
@@ -78,25 +114,68 @@
    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;
    #ifdef GPU
    int *indexes_gpu;
    float * state_gpu;
    float * filters_gpu;
    float * filter_updates_gpu;
    float *binary_filters_gpu;
    float *mean_filters_gpu;
    float * spatial_mean_gpu;
    float * spatial_variance_gpu;
    float * mean_gpu;
    float * variance_gpu;
    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;
    float * col_image_gpu;
    float * x_gpu;
    float * x_norm_gpu;
    float * weights_gpu;
    float * biases_gpu;
    float * weight_updates_gpu;
    float * biases_gpu;
    float * bias_updates_gpu;
    float * scales_gpu;
    float * scale_updates_gpu;
    float * output_gpu;
    float * delta_gpu;
    float * rand_gpu;
    float * squared_gpu;
    float * norms_gpu;
    #endif
} layer;
};
void free_layer(layer);
#endif