Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- name: "VGG_ILSVRC_16_layers"
- layer {
- name: 'input-data'
- type: 'Python'
- top: 'data'
- top: 'im_info'
- top: 'gt_boxes'
- python_param {
- module: 'roi_data_layer.layer'
- layer: 'RoIDataLayer'
- param_str: "'num_classes': 201"
- }
- }
- layer {
- name: "conv1_1"
- type: "Convolution"
- bottom: "data"
- top: "conv1_1"
- param {
- lr_mult: 0
- decay_mult: 0
- }
- param {
- lr_mult: 0
- decay_mult: 0
- }
- convolution_param {
- num_output: 64
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu1_1"
- type: "ReLU"
- bottom: "conv1_1"
- top: "conv1_1"
- }
- layer {
- name: "conv1_2"
- type: "Convolution"
- bottom: "conv1_1"
- top: "conv1_2"
- param {
- lr_mult: 0
- decay_mult: 0
- }
- param {
- lr_mult: 0
- decay_mult: 0
- }
- convolution_param {
- num_output: 64
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu1_2"
- type: "ReLU"
- bottom: "conv1_2"
- top: "conv1_2"
- }
- layer {
- name: "pool1"
- type: "Pooling"
- bottom: "conv1_2"
- top: "pool1"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- name: "conv2_1"
- type: "Convolution"
- bottom: "pool1"
- top: "conv2_1"
- param {
- lr_mult: 0
- decay_mult: 0
- }
- param {
- lr_mult: 0
- decay_mult: 0
- }
- convolution_param {
- num_output: 128
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu2_1"
- type: "ReLU"
- bottom: "conv2_1"
- top: "conv2_1"
- }
- layer {
- name: "conv2_2"
- type: "Convolution"
- bottom: "conv2_1"
- top: "conv2_2"
- param {
- lr_mult: 0
- decay_mult: 0
- }
- param {
- lr_mult: 0
- decay_mult: 0
- }
- convolution_param {
- num_output: 128
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu2_2"
- type: "ReLU"
- bottom: "conv2_2"
- top: "conv2_2"
- }
- layer {
- name: "pool2"
- type: "Pooling"
- bottom: "conv2_2"
- top: "pool2"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- name: "conv3_1"
- type: "Convolution"
- bottom: "pool2"
- top: "conv3_1"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 256
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu3_1"
- type: "ReLU"
- bottom: "conv3_1"
- top: "conv3_1"
- }
- layer {
- name: "conv3_2"
- type: "Convolution"
- bottom: "conv3_1"
- top: "conv3_2"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 256
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu3_2"
- type: "ReLU"
- bottom: "conv3_2"
- top: "conv3_2"
- }
- layer {
- name: "conv3_3"
- type: "Convolution"
- bottom: "conv3_2"
- top: "conv3_3"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 256
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu3_3"
- type: "ReLU"
- bottom: "conv3_3"
- top: "conv3_3"
- }
- layer {
- name: "pool3"
- type: "Pooling"
- bottom: "conv3_3"
- top: "pool3"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- name: "conv4_1"
- type: "Convolution"
- bottom: "pool3"
- top: "conv4_1"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu4_1"
- type: "ReLU"
- bottom: "conv4_1"
- top: "conv4_1"
- }
- layer {
- name: "conv4_2"
- type: "Convolution"
- bottom: "conv4_1"
- top: "conv4_2"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu4_2"
- type: "ReLU"
- bottom: "conv4_2"
- top: "conv4_2"
- }
- layer {
- name: "conv4_3"
- type: "Convolution"
- bottom: "conv4_2"
- top: "conv4_3"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu4_3"
- type: "ReLU"
- bottom: "conv4_3"
- top: "conv4_3"
- }
- layer {
- name: "pool4"
- type: "Pooling"
- bottom: "conv4_3"
- top: "pool4"
- pooling_param {
- pool: MAX
- kernel_size: 2
- stride: 2
- }
- }
- layer {
- name: "conv5_1"
- type: "Convolution"
- bottom: "pool4"
- top: "conv5_1"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu5_1"
- type: "ReLU"
- bottom: "conv5_1"
- top: "conv5_1"
- }
- layer {
- name: "conv5_2"
- type: "Convolution"
- bottom: "conv5_1"
- top: "conv5_2"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu5_2"
- type: "ReLU"
- bottom: "conv5_2"
- top: "conv5_2"
- }
- layer {
- name: "conv5_3"
- type: "Convolution"
- bottom: "conv5_2"
- top: "conv5_3"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- convolution_param {
- num_output: 512
- pad: 1
- kernel_size: 3
- }
- }
- layer {
- name: "relu5_3"
- type: "ReLU"
- bottom: "conv5_3"
- top: "conv5_3"
- }
- #========= RPN ============
- layer {
- name: "rpn_conv/3x3"
- type: "Convolution"
- bottom: "conv5_3"
- top: "rpn/output"
- param { lr_mult: 1.0 }
- param { lr_mult: 2.0 }
- convolution_param {
- num_output: 512
- kernel_size: 3 pad: 1 stride: 1
- weight_filler { type: "gaussian" std: 0.01 }
- bias_filler { type: "constant" value: 0 }
- }
- }
- layer {
- name: "rpn_relu/3x3"
- type: "ReLU"
- bottom: "rpn/output"
- top: "rpn/output"
- }
- layer {
- name: "rpn_cls_score"
- type: "Convolution"
- bottom: "rpn/output"
- top: "rpn_cls_score"
- param { lr_mult: 1.0 }
- param { lr_mult: 2.0 }
- convolution_param {
- num_output: 18 # 2(bg/fg) * 9(anchors)
- kernel_size: 1 pad: 0 stride: 1
- weight_filler { type: "gaussian" std: 0.01 }
- bias_filler { type: "constant" value: 0 }
- }
- }
- layer {
- name: "rpn_bbox_pred"
- type: "Convolution"
- bottom: "rpn/output"
- top: "rpn_bbox_pred"
- param { lr_mult: 1.0 }
- param { lr_mult: 2.0 }
- convolution_param {
- num_output: 36 # 4 * 9(anchors)
- kernel_size: 1 pad: 0 stride: 1
- weight_filler { type: "gaussian" std: 0.01 }
- bias_filler { type: "constant" value: 0 }
- }
- }
- layer {
- bottom: "rpn_cls_score"
- top: "rpn_cls_score_reshape"
- name: "rpn_cls_score_reshape"
- type: "Reshape"
- reshape_param { shape { dim: 0 dim: 2 dim: -1 dim: 0 } }
- }
- layer {
- name: 'rpn-data'
- type: 'Python'
- bottom: 'rpn_cls_score'
- bottom: 'gt_boxes'
- bottom: 'im_info'
- bottom: 'data'
- top: 'rpn_labels'
- top: 'rpn_bbox_targets'
- top: 'rpn_bbox_inside_weights'
- top: 'rpn_bbox_outside_weights'
- python_param {
- module: 'rpn.anchor_target_layer'
- layer: 'AnchorTargetLayer'
- param_str: "'feat_stride': 16"
- }
- }
- layer {
- name: "rpn_loss_cls"
- type: "SoftmaxWithLoss"
- bottom: "rpn_cls_score_reshape"
- bottom: "rpn_labels"
- propagate_down: 1
- propagate_down: 0
- top: "rpn_cls_loss"
- loss_weight: 1
- loss_param {
- ignore_label: -1
- normalize: true
- }
- }
- layer {
- name: "rpn_loss_bbox"
- type: "SmoothL1Loss"
- bottom: "rpn_bbox_pred"
- bottom: "rpn_bbox_targets"
- bottom: 'rpn_bbox_inside_weights'
- bottom: 'rpn_bbox_outside_weights'
- top: "rpn_loss_bbox"
- loss_weight: 1
- smooth_l1_loss_param { sigma: 3.0 }
- }
- #========= RoI Proposal ============
- layer {
- name: "rpn_cls_prob"
- type: "Softmax"
- bottom: "rpn_cls_score_reshape"
- top: "rpn_cls_prob"
- }
- layer {
- name: 'rpn_cls_prob_reshape'
- type: 'Reshape'
- bottom: 'rpn_cls_prob'
- top: 'rpn_cls_prob_reshape'
- reshape_param { shape { dim: 0 dim: 18 dim: -1 dim: 0 } }
- }
- layer {
- name: 'proposal'
- type: 'Python'
- bottom: 'rpn_cls_prob_reshape'
- bottom: 'rpn_bbox_pred'
- bottom: 'im_info'
- top: 'rpn_rois'
- # top: 'rpn_scores'
- python_param {
- module: 'rpn.proposal_layer'
- layer: 'ProposalLayer'
- param_str: "'feat_stride': 16"
- }
- }
- #layer {
- # name: 'debug-data'
- # type: 'Python'
- # bottom: 'data'
- # bottom: 'rpn_rois'
- # bottom: 'rpn_scores'
- # python_param {
- # module: 'rpn.debug_layer'
- # layer: 'RPNDebugLayer'
- # }
- #}
- layer {
- name: 'roi-data'
- type: 'Python'
- bottom: 'rpn_rois'
- bottom: 'gt_boxes'
- top: 'rois'
- top: 'labels'
- top: 'bbox_targets'
- top: 'bbox_inside_weights'
- top: 'bbox_outside_weights'
- python_param {
- module: 'rpn.proposal_target_layer'
- layer: 'ProposalTargetLayer'
- param_str: "'num_classes': 201"
- }
- }
- #========= RCNN ============
- layer {
- name: "roi_pool5"
- type: "ROIPooling"
- bottom: "conv5_3"
- bottom: "rois"
- top: "pool5"
- roi_pooling_param {
- pooled_w: 7
- pooled_h: 7
- spatial_scale: 0.0625 # 1/16
- }
- }
- layer {
- name: "fc6"
- type: "InnerProduct"
- bottom: "pool5"
- top: "fc6"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- inner_product_param {
- num_output: 4096
- }
- }
- layer {
- name: "relu6"
- type: "ReLU"
- bottom: "fc6"
- top: "fc6"
- }
- layer {
- name: "drop6"
- type: "Dropout"
- bottom: "fc6"
- top: "fc6"
- dropout_param {
- dropout_ratio: 0.5
- }
- }
- layer {
- name: "fc7"
- type: "InnerProduct"
- bottom: "fc6"
- top: "fc7"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- inner_product_param {
- num_output: 4096
- }
- }
- layer {
- name: "relu7"
- type: "ReLU"
- bottom: "fc7"
- top: "fc7"
- }
- layer {
- name: "drop7"
- type: "Dropout"
- bottom: "fc7"
- top: "fc7"
- dropout_param {
- dropout_ratio: 0.5
- }
- }
- layer {
- name: "cls_score"
- type: "InnerProduct"
- bottom: "fc7"
- top: "cls_score"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- inner_product_param {
- num_output: 201
- weight_filler {
- type: "gaussian"
- std: 0.01
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- name: "bbox_pred"
- type: "InnerProduct"
- bottom: "fc7"
- top: "bbox_pred"
- param {
- lr_mult: 1
- }
- param {
- lr_mult: 2
- }
- inner_product_param {
- num_output: 804
- weight_filler {
- type: "gaussian"
- std: 0.001
- }
- bias_filler {
- type: "constant"
- value: 0
- }
- }
- }
- layer {
- name: "loss_cls"
- type: "SoftmaxWithLoss"
- bottom: "cls_score"
- bottom: "labels"
- propagate_down: 1
- propagate_down: 0
- top: "loss_cls"
- loss_weight: 1
- }
- layer {
- name: "loss_bbox"
- type: "SmoothL1Loss"
- bottom: "bbox_pred"
- bottom: "bbox_targets"
- bottom: "bbox_inside_weights"
- bottom: "bbox_outside_weights"
- top: "loss_bbox"
- loss_weight: 1
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement