DNN

caffe conv layer

Small Octopus 2017. 11. 24. 11:58


### LayerSetUp 

channel_axis_ = 1 // n c h w

first_spatial_axis = channel_axis_ + 1 // h , w

num_spatial_axes_ = 4 // n c h w


num_output_ = num of filters

conv_out_channels_ = num_output_


weight_shape0 = conv_out_channels_

weight_shape1 = conv_in_channels_ / group_

weight_shape2 = kernel_h

weight_shape3 = kernel_w


conv_out_spatial_dim_ = top_h * top_w

kernel_dim_ = kernel_c *kernel_h * kernel_w

weight_offset_ = conv_out_channels_ * kernel_dim_ / group_


col_offset_ = conv_out_spatial_dim_ * kernel_dim_

output_offset_ = conv_out_channels_ * conv_out_spatial_dim_ / group_

col_buffer_shape_ = kernel_dim_ x output_h x output_w


top_dim = top_c * top_h * top_w

bottom_dim = bottom_c * bottom_h * bottom_w


num_kernels_im2col_ = conv_in_channels_ * conv_out_spatial_dim_

num_kernels_col2im_ = bottom_dim_

out_spatial_dim_ = out_h * out_w



## offset

weight_offset_ = conv_out_channels_ * kernel_dim_ / group_

col_offset_ = conv_out_spatial_dim_ * kernel_dim_ // for column buffer

output_offset_ = conv_out_channels_ * conv_out_spatial_dim_ / group_