Q:

caffe: What is ReLU split

Here is my blob shape:
data                        4096     4.10e+03    (1, 2, 1, 2048)
Convolution1              130944     1.31e+05    (1, 64, 1, 2046)
ReLU1                     130944     1.31e+05    (1, 64, 1, 2046)
Convolution2              130816     1.31e+05    (1, 64, 1, 2044)
ReLU2                     130816     1.31e+05    (1, 64, 1, 2044)
ReLU2_ReLU2_0_split_0     130816     1.31e+05    (1, 64, 1, 2044)
ReLU2_ReLU2_0_split_1     130816     1.31e+05    (1, 64, 1, 2044)
Pooling1                   65408     6.54e+04    (1, 64, 1, 1022)
Convolution3              130560     1.31e+05    (1, 128, 1, 1020)
ReLU3                     130560     1.31e+05    (1, 128, 1, 1020)
Convolution4              130304     1.30e+05    (1, 128, 1, 1018)
ReLU4                     130304     1.30e+05    (1, 128, 1, 1018)
ReLU4_ReLU4_0_split_0     130304     1.30e+05    (1, 128, 1, 1018)
ReLU4_ReLU4_0_split_1     130304     1.30e+05    (1, 128, 1, 1018)
Pooling2                   65152     6.52e+04    (1, 128, 1, 509)

What is 2 lines of "ReLU2_0_split_0" and "ReLU2_ReLU2_0_split_1"? where they come from?

A:

Your ReLU layer's output is used as a "bottom" for two layers. Therefore, Caffe automatically adds a "Split" layer that creates two copies of the ReLU output and feed each copy to one of the top layers. These two copies are named ReLU_split0 and ReLU_split1.

