#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# caffe scale dosn't surpoort two bottom as input????

caffe scale dosn't surpoort two bottom as input????

• @xiaoshenhua The scale layer is meant to scale some input values by dividing by the standard deviation of those values. I've only seen it used with one bottom(input) in the networks that I've used.

• thank you but

### so how can i realize (N*C*W*H) * (N*C)?

message ScaleParameter {
// The first axis of bottom[0] (the first input Blob) along which to apply
// bottom[1] (the second input Blob). May be negative to index from the end
// (e.g., -1 for the last axis).
//
// For example, if bottom[0] is 4D with shape 100x3x40x60, the output
// top[0] will have the same shape, and bottom[1] may have any of the
// following shapes (for the given value of axis):
// (axis == 0 == -4) 100; 100x3; 100x3x40; 100x3x40x60
// (axis == 1 == -3) 3; 3x40; 3x40x60
// (axis == 2 == -2) 40; 40x60
// (axis == 3 == -1) 60
// Furthermore, bottom[1] may have the empty shape (regardless of the value of
// "axis") -- a scalar multiplier.
optional int32 axis = 1 [default = 1];

// (num_axes is ignored unless just one bottom is given and the scale is
// a learned parameter of the layer. Otherwise, num_axes is determined by the
// number of axes by the second bottom.)
// The number of axes of the input (bottom[0]) covered by the scale
// parameter, or -1 to cover all axes of bottom[0] starting from `axis`.
// Set num_axes := 0, to multiply with a zero-axis Blob: a scalar.
optional int32 num_axes = 2 [default = 1];
}