Joseph Redmon
2016-05-13 13209df7bb53de19aa3f82e870db11eb5b7587f1
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,12 @@
    LOCAL,
    SHORTCUT,
    ACTIVE,
    RNN
    RNN,
    GRU,
    CRNN,
    BATCHNORM,
    NETWORK,
    BLANK
} LAYER_TYPE;
typedef enum{
@@ -34,6 +40,7 @@
    ACTIVATION activation;
    COST_TYPE cost_type;
    int batch_normalize;
    int shortcut;
    int batch;
    int forced;
    int flipped;
@@ -52,8 +59,10 @@
    int flip;
    int index;
    int binary;
    int xnor;
    int steps;
    int hidden;
    float dot;
    float angle;
    float jitter;
    float saturation;
@@ -89,8 +98,13 @@
    float *rand;
    float *cost;
    float *filters;
    char  *cfilters;
    float *filter_updates;
    float *state;
    float *state_delta;
    float *concat;
    float *concat_delta;
    float *binary_filters;
@@ -128,17 +142,46 @@
    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;
    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;
@@ -146,9 +189,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;
@@ -170,6 +210,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
};