| 1 | layer { |
| 2 | bottom: "data" |
| 3 | top: "conv1" |
| 4 | name: "conv1" |
| 5 | type: "Convolution" |
| 6 | convolution_param { |
| 7 | num_output: 64 |
| 8 | kernel_size: 7 |
| 9 | pad: 3 |
| 10 | stride: 2 |
| 11 | } |
| 12 | } |
| 13 | |
| 14 | layer { |
| 15 | bottom: "conv1" |
| 16 | top: "conv1" |
| 17 | name: "bn_conv1" |
| 18 | type: "BatchNorm" |
| 19 | batch_norm_param { |
| 20 | use_global_stats: true |
| 21 | } |
| 22 | } |
| 23 | |
| 24 | layer { |
| 25 | bottom: "conv1" |
| 26 | top: "conv1" |
| 27 | name: "scale_conv1" |
| 28 | type: "Scale" |
| 29 | scale_param { |
| 30 | bias_term: true |
| 31 | } |
| 32 | } |
| 33 | |
| 34 | layer { |
| 35 | bottom: "conv1" |
| 36 | top: "conv1" |
| 37 | name: "conv1_relu" |
| 38 | type: "ReLU" |
| 39 | } |
| 40 | |
| 41 | layer { |
| 42 | bottom: "conv1" |
| 43 | top: "pool1" |
| 44 | name: "pool1" |
| 45 | type: "Pooling" |
| 46 | pooling_param { |
| 47 | kernel_size: 3 |
| 48 | stride: 2 |
| 49 | pool: MAX |
| 50 | } |
| 51 | } |
layer {
name: "does_not_matter_anyway"
bottom: "A"
top: "B"
...
}
layer {
bottom: "conv1"
top: "pool1"
name: "pool1"
type: "Pooling"
pooling_param {
kernel_size: 3
stride: 2
pool: MAX
}
}The `pool1` layers are bellow `conv1`, it means its input is `conv1` output. Is it right?
why they do not write as (...)
bottom: "conv1_relu"
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
...
}
layer {
name: "pool1"
type: "Pooling"
bottom: "conv1"
top: "pool1"
...
}
layer {
name: "conv2"
type: "Convolution"
bottom: "pool1"
top: "conv2"
...
}layer {
name: "my_convolution_layer"
type: "Convolution"
bottom: "data"
top: "conv1"
...
}
layer { name: "pooling_is_awesome"
type: "Pooling"
bottom: "conv1"
top: "pool1"
...
}
layer { name: "another_conv_yeah"
type: "Convolution"
bottom: "pool1"
top: "conv2"
...
}layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
...
}
layer {
name: "pool1"
type: "Pooling"
bottom: "conv1"
top: "pool1"
...
}
layer {
name: "conv2"
type: "Convolution"
bottom: "conv1"
top: "conv2"
...
}
layer {
bottom: "data"
top: "conv1"
name: "conv1"
type: "Convolution"
...
}
layer {
bottom: "conv1"
top: "conv1"
name: "bn_conv1"
...
}
layer {
bottom: "conv1"
top: "conv1"
name: "scale_conv1"
...
}
layer {
bottom: "conv1"
top: "conv1"
name: "conv1_relu"
type: "ReLU"
}
layer {
bottom: "conv1"
top: "pool1"
name: "pool1"
type: "Pooling"
...
}Yes, I was wrong when calling a layer as a blob. It must be a blob. A blob has input (defines by bottom tag) and output (defined by top tag).