Joseph Redmon
2015-07-10 2f1fc380e950a29910ae011d61929ecd16baa62e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
#ifndef BASE_LAYER_H
#define BASE_LAYER_H
 
#include "activations.h"
 
typedef enum {
    CONVOLUTIONAL,
    DECONVOLUTIONAL,
    CONNECTED,
    MAXPOOL,
    SOFTMAX,
    DETECTION,
    DROPOUT,
    CROP,
    ROUTE,
    COST,
    NORMALIZATION
} LAYER_TYPE;
 
typedef enum{
    SSE, MASKED
} COST_TYPE;
 
typedef struct {
    LAYER_TYPE type;
    ACTIVATION activation;
    COST_TYPE cost_type;
    int batch;
    int inputs;
    int outputs;
    int h,w,c;
    int out_h, out_w, out_c;
    int n;
    int groups;
    int size;
    int stride;
    int pad;
    int crop_width;
    int crop_height;
    int flip;
    float angle;
    float saturation;
    float exposure;
    int classes;
    int coords;
    int background;
    int rescore;
    int objectness;
    int does_cost;
    int joint;
 
    float alpha;
    float beta;
    float kappa;
 
    int dontload;
 
    float probability;
    float scale;
    int *indexes;
    float *rand;
    float *cost;
    float *filters;
    float *filter_updates;
 
    float *biases;
    float *bias_updates;
 
    float *weights;
    float *weight_updates;
 
    float *col_image;
    int   * input_layers;
    int   * input_sizes;
    float * delta;
    float * output;
    float * squared;
    float * norms;
 
    #ifdef GPU
    int *indexes_gpu;
    float * filters_gpu;
    float * filter_updates_gpu;
 
    float * col_image_gpu;
 
    float * weights_gpu;
    float * biases_gpu;
 
    float * weight_updates_gpu;
    float * bias_updates_gpu;
 
    float * output_gpu;
    float * delta_gpu;
    float * rand_gpu;
    float * squared_gpu;
    float * norms_gpu;
    #endif
} layer;
 
#endif