diff --git a/.gitignore b/.gitignore index 99a5d09eb..6a12a0b35 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ lib/build lib/pycocotools/_mask.c lib/pycocotools/_mask.so +*.caffemodel diff --git a/.gitmodules b/.gitmodules index 28e6d5be2..70ac05595 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ -[submodule "caffe-fast-rcnn"] +[submodule "caffe-for-pva"] path = caffe-fast-rcnn - url = https://github.com/rbgirshick/caffe-fast-rcnn.git - branch = fast-rcnn + url = https://github.com/sanghoon/caffe.git + branch = dev_pvanet diff --git a/README.md b/README.md index 0276a3ad2..973130bca 100644 --- a/README.md +++ b/README.md @@ -1,217 +1,127 @@ -### Disclaimer +## PVANet: Lightweight Deep Neural Networks for Real-time Object Detection +by Sanghoon Hong, Byungseok Roh, Kye-hyeon Kim, Yeongjae Cheon, Minje Park (Intel Imaging and Camera Technology) +Presented in [EMDNN2016](http://allenai.org/plato/emdnn/), a NIPS2016 workshop ([arXiv link](https://arxiv.org/abs/1611.08588)) -The official Faster R-CNN code (written in MATLAB) is available [here](https://github.com/ShaoqingRen/faster_rcnn). -If your goal is to reproduce the results in our NIPS 2015 paper, please use the [official code](https://github.com/ShaoqingRen/faster_rcnn). +### Introduction -This repository contains a Python *reimplementation* of the MATLAB code. -This Python implementation is built on a fork of [Fast R-CNN](https://github.com/rbgirshick/fast-rcnn). -There are slight differences between the two implementations. -In particular, this Python port - - is ~10% slower at test-time, because some operations execute on the CPU in Python layers (e.g., 220ms / image vs. 200ms / image for VGG16) - - gives similar, but not exactly the same, mAP as the MATLAB version - - is *not compatible* with models trained using the MATLAB code due to the minor implementation differences - - **includes approximate joint training** that is 1.5x faster than alternating optimization (for VGG16) -- see these [slides](https://www.dropbox.com/s/xtr4yd4i5e0vw8g/iccv15_tutorial_training_rbg.pdf?dl=0) for more information +This repository is a fork from [py-faster-rcnn](https://github.com/rbgirshick/py-faster-rcnn) and demonstrates the performance of PVANet. -# *Faster* R-CNN: Towards Real-Time Object Detection with Region Proposal Networks +You can refer to [py-faster-rcnn README.md](https://github.com/rbgirshick/py-faster-rcnn/blob/master/README.md) and [faster-rcnn README.md](https://github.com/ShaoqingRen/faster_rcnn/blob/master/README.md) for more information. -By Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun (Microsoft Research) +### Desclaimer -This Python implementation contains contributions from Sean Bell (Cornell) written during an MSR internship. +Please note that this repository doesn't contain our in-house codes used in the published article. +- This version of py-faster-rcnn is slower than our in-house runtime code (e.g. image pre-processing code written in Python) +- PVANet was trained by our in-house deep learning library, not by this implementation. +- There might be a tiny difference in VOC2012 test results, because some hidden parameters in py-faster-rcnn may be set differently with ours. -Please see the official [README.md](https://github.com/ShaoqingRen/faster_rcnn/blob/master/README.md) for more details. +### Citing PVANet -Faster R-CNN was initially described in an [arXiv tech report](http://arxiv.org/abs/1506.01497) and was subsequently published in NIPS 2015. - -### License - -Faster R-CNN is released under the MIT License (refer to the LICENSE file for details). - -### Citing Faster R-CNN - -If you find Faster R-CNN useful in your research, please consider citing: - - @inproceedings{renNIPS15fasterrcnn, - Author = {Shaoqing Ren and Kaiming He and Ross Girshick and Jian Sun}, - Title = {Faster {R-CNN}: Towards Real-Time Object Detection - with Region Proposal Networks}, - Booktitle = {Advances in Neural Information Processing Systems ({NIPS})}, - Year = {2015} - } - -### Contents -1. [Requirements: software](#requirements-software) -2. [Requirements: hardware](#requirements-hardware) -3. [Basic installation](#installation-sufficient-for-the-demo) -4. [Demo](#demo) -5. [Beyond the demo: training and testing](#beyond-the-demo-installation-for-training-and-testing-models) -6. [Usage](#usage) - -### Requirements: software - -1. Requirements for `Caffe` and `pycaffe` (see: [Caffe installation instructions](http://caffe.berkeleyvision.org/installation.html)) - - **Note:** Caffe *must* be built with support for Python layers! - - ```make - # In your Makefile.config, make sure to have this line uncommented - WITH_PYTHON_LAYER := 1 - # Unrelatedly, it's also recommended that you use CUDNN - USE_CUDNN := 1 - ``` - - You can download my [Makefile.config](http://www.cs.berkeley.edu/~rbg/fast-rcnn-data/Makefile.config) for reference. -2. Python packages you might not have: `cython`, `python-opencv`, `easydict` -3. [Optional] MATLAB is required for **official** PASCAL VOC evaluation only. The code now includes unofficial Python evaluation code. - -### Requirements: hardware - -1. For training smaller networks (ZF, VGG_CNN_M_1024) a good GPU (e.g., Titan, K20, K40, ...) with at least 3G of memory suffices -2. For training Fast R-CNN with VGG16, you'll need a K40 (~11G of memory) -3. For training the end-to-end version of Faster R-CNN with VGG16, 3G of GPU memory is sufficient (using CUDNN) - -### Installation (sufficient for the demo) +If you want to cite this work in your publication: +``` +@article{hong2016pvanet, + title={{PVANet}: Lightweight Deep Neural Networks for Real-time Object Detection}, + author={Hong, Sanghoon and Roh, Byungseok and Kim, Kye-Hyeon and Cheon, Yeongjae and Park, Minje}, + journal={arXiv preprint arXiv:1611.08588}, + year={2016} +} +``` +### Installation 1. Clone the Faster R-CNN repository - ```Shell - # Make sure to clone with --recursive - git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git - ``` - -2. We'll call the directory that you cloned Faster R-CNN into `FRCN_ROOT` - - *Ignore notes 1 and 2 if you followed step 1 above.* - - **Note 1:** If you didn't clone Faster R-CNN with the `--recursive` flag, then you'll need to manually clone the `caffe-fast-rcnn` submodule: ```Shell - git submodule update --init --recursive + # Make sure to clone with --recursive + git clone --recursive https://github.com/sanghoon/pva-faster-rcnn.git ``` - **Note 2:** The `caffe-fast-rcnn` submodule needs to be on the `faster-rcnn` branch (or equivalent detached state). This will happen automatically *if you followed step 1 instructions*. -3. Build the Cython modules +2. We'll call the directory that you cloned Faster R-CNN into `FRCN_ROOT`. Build the Cython modules ```Shell cd $FRCN_ROOT/lib make ``` -4. Build Caffe and pycaffe +3. Build Caffe and pycaffe ```Shell cd $FRCN_ROOT/caffe-fast-rcnn # Now follow the Caffe installation instructions here: # http://caffe.berkeleyvision.org/installation.html + # For your Makefile.config: + # Uncomment `WITH_PYTHON_LAYER := 1` - # If you're experienced with Caffe and have all of the requirements installed - # and your Makefile.config in place, then simply do: + cp Makefile.config.example Makefile.config make -j8 && make pycaffe ``` -5. Download pre-computed Faster R-CNN detectors +4. Download PVANet detection model for VOC2007 ```Shell cd $FRCN_ROOT - ./data/scripts/fetch_faster_rcnn_models.sh + ./models/pvanet/download_voc2007.sh ``` - This will populate the `$FRCN_ROOT/data` folder with `faster_rcnn_models`. See `data/README.md` for details. - These models were trained on VOC 2007 trainval. - -### Demo - -*After successfully completing [basic installation](#installation-sufficient-for-the-demo)*, you'll be ready to run the demo. - -To run the demo -```Shell -cd $FRCN_ROOT -./tools/demo.py -``` -The demo performs detection using a VGG16 network trained for detection on PASCAL VOC 2007. - -### Beyond the demo: installation for training and testing models -1. Download the training, validation, test data and VOCdevkit - - ```Shell - wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar - wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar - wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar - ``` - -2. Extract all of these tars into one directory named `VOCdevkit` - - ```Shell - tar xvf VOCtrainval_06-Nov-2007.tar - tar xvf VOCtest_06-Nov-2007.tar - tar xvf VOCdevkit_08-Jun-2007.tar - ``` - -3. It should have this basic structure - - ```Shell - $VOCdevkit/ # development kit - $VOCdevkit/VOCcode/ # VOC utility code - $VOCdevkit/VOC2007 # image sets, annotations, etc. - # ... and several other directories ... - ``` - -4. Create symlinks for the PASCAL VOC dataset - - ```Shell - cd $FRCN_ROOT/data - ln -s $VOCdevkit VOCdevkit2007 +5. Download PVANet detection model for VOC2012 (published model) + ```Shell + cd $FRCN_ROOT + ./models/pvanet/download_voc_best.sh + ``` + +6. (Optional) Download all available models (including pre-trained and compressed models) + ```Shell + cd $FRCN_ROOT + ./models/pvanet/download_all_models.sh ``` - Using symlinks is a good idea because you will likely want to share the same PASCAL dataset installation between multiple projects. -5. [Optional] follow similar steps to get PASCAL VOC 2010 and 2012 -6. [Optional] If you want to use COCO, please see some notes under `data/README.md` -7. Follow the next sections to download pre-trained ImageNet models - -### Download pre-trained ImageNet models - -Pre-trained ImageNet models can be downloaded for the three networks described in the paper: ZF and VGG16. -```Shell -cd $FRCN_ROOT -./data/scripts/fetch_imagenet_models.sh -``` -VGG16 comes from the [Caffe Model Zoo](https://github.com/BVLC/caffe/wiki/Model-Zoo), but is provided here for your convenience. -ZF was trained at MSRA. +7. (Optional) Download ILSVRC2012 (ImageNet) classification model + ```Shell + cd $FRCN_ROOT + ./models/pvanet/download_imagenet_model.sh + ``` -### Usage +8. (Optional) If the scripts don't work, please download the models from ... -To train and test a Faster R-CNN detector using the **alternating optimization** algorithm from our NIPS 2015 paper, use `experiments/scripts/faster_rcnn_alt_opt.sh`. -Output is written underneath `$FRCN_ROOT/output`. + | Model | Google Drive | + | ------ | ---- | + | PVANet for VOC2007 | [link](https://drive.google.com/open?id=0Bw_6VpHzQoMVRGZOSEctOEVMLXc) | + | PVANet for VOC2012 | [link](https://drive.google.com/open?id=0Bw_6VpHzQoMVa3M0Zm5zNnEtQUE) | + | PVANet for VOC2012 (compressed) | [link](https://drive.google.com/open?id=0Bw_6VpHzQoMVZU1BdEJDZG5MVXM) | + | PVANet for ILSVRC2012 (ImageNet) | [link](https://drive.google.com/open?id=0Bw_6VpHzQoMVTjctVVhjMXo1X3c) | + | PVANet pre-trained | [link](https://drive.google.com/open?id=0Bw_6VpHzQoMVak5FVFBWU0Uyb3M) | -```Shell -cd $FRCN_ROOT -./experiments/scripts/faster_rcnn_alt_opt.sh [GPU_ID] [NET] [--set ...] -# GPU_ID is the GPU you want to train on -# NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use -# --set ... allows you to specify fast_rcnn.config options, e.g. -# --set EXP_DIR seed_rng1701 RNG_SEED 1701 -``` +### How to run the demo -("alt opt" refers to the alternating optimization training algorithm described in the NIPS paper.) +1. Download PASCAL VOC 2007 and 2012 +-- Follow the instructions in [py-faster-rcnn README.md](https://github.com/rbgirshick/py-faster-rcnn#beyond-the-demo-installation-for-training-and-testing-models) -To train and test a Faster R-CNN detector using the **approximate joint training** method, use `experiments/scripts/faster_rcnn_end2end.sh`. -Output is written underneath `$FRCN_ROOT/output`. +2. PVANet on PASCAL VOC 2007 + ```Shell + cd $FRCN_ROOT + ./tools/test_net.py --net models/pvanet/pva9.1/PVA9.1_ImgNet_COCO_VOC0712.caffemodel --def models/pvanet/pva9.1/faster_rcnn_train_test_21cls.pt --cfg models/pvanet/cfgs/submit_1019.yml --gpu 0 + ``` -```Shell -cd $FRCN_ROOT -./experiments/scripts/faster_rcnn_end2end.sh [GPU_ID] [NET] [--set ...] -# GPU_ID is the GPU you want to train on -# NET in {ZF, VGG_CNN_M_1024, VGG16} is the network arch to use -# --set ... allows you to specify fast_rcnn.config options, e.g. -# --set EXP_DIR seed_rng1701 RNG_SEED 1701 -``` +3. PVANet (compressed) + ```Shell + cd $FRCN_ROOT + ./tools/test_net.py --net models/pvanet/pva9.1/PVA9.1_ImgNet_COCO_VOC0712plus_compressed.caffemodel --def models/pvanet/pva9.1/faster_rcnn_train_test_ft_rcnn_only_plus_comp.pt --cfg models/pvanet/cfgs/submit_1019.yml --gpu 0 + ``` + 4.Visualization:run the demo.py + ./tools/demo.py --gpu 0 --def models/pvanet/comp/test.pt --net models/pvanet/comp/test.model + -This method trains the RPN module jointly with the Fast R-CNN network, rather than alternating between training the two. It results in faster (~ 1.5x speedup) training times and similar detection accuracy. See these [slides](https://www.dropbox.com/s/xtr4yd4i5e0vw8g/iccv15_tutorial_training_rbg.pdf?dl=0) for more details. +### Expected results -Artifacts generated by the scripts in `tools` are written in this directory. +#### Mean Average Precision on VOC detection tasks -Trained Fast R-CNN networks are saved under: +| Model | VOC2007 mAP (%) | VOC2012 mAP (%) | +| --------- | ------- | ------- | +| PVANet+ (VOC2007) | **84.9** | N/A | +| PVANet+ (VOC2012) | *89.8* | **84.2** | +| PVANet+ (VOC2012 + compressed) | *87.8* | 83.7 | +- The training set for the VOC2012 model includes the VOC2007 test set. Therefore the accuracies on VOC2007 of the model are not meaningful; They're shown here just for reference -``` -output/// -``` +#### Validation error on ILSVRC2012 -Test outputs are saved under: +| Input size | Top-1 error (%) | Top-5 error (%) | +| --- | --- | --- | +| 192x192 | 30.00 | N/A | +| 224x224 | 27.66 | 8.84 | +- We re-trained a 224x224 model from the '192x192' model as a base model. -``` -output//// -``` diff --git a/caffe-fast-rcnn b/caffe-fast-rcnn index 0dcd397b2..6068dd04e 160000 --- a/caffe-fast-rcnn +++ b/caffe-fast-rcnn @@ -1 +1 @@ -Subproject commit 0dcd397b29507b8314e252e850518c5695efbb83 +Subproject commit 6068dd04ea93cca9fcee036628fdb3ea95b4ebcd diff --git a/lib/fast_rcnn/config.py b/lib/fast_rcnn/config.py index 253017369..ff3eae95b 100644 --- a/lib/fast_rcnn/config.py +++ b/lib/fast_rcnn/config.py @@ -37,6 +37,9 @@ # Each scale is the pixel size of an image's shortest side __C.TRAIN.SCALES = (600,) +# Resize test images so that its width and height are multiples of ... +__C.TRAIN.SCALE_MULTIPLE_OF = 1 + # Max pixel size of the longest side of a scaled input image __C.TRAIN.MAX_SIZE = 1000 @@ -134,6 +137,9 @@ # Each scale is the pixel size of an image's shortest side __C.TEST.SCALES = (600,) +# Resize test images so that its width and height are multiples of ... +__C.TEST.SCALE_MULTIPLE_OF = 1 + # Max pixel size of the longest side of a scaled input image __C.TEST.MAX_SIZE = 1000 @@ -163,6 +169,13 @@ # Proposal height and width both need to be greater than RPN_MIN_SIZE (at orig image scale) __C.TEST.RPN_MIN_SIZE = 16 +# Apply bounding box voting +__C.TEST.BBOX_VOTE = False + +# Apply box scoring heuristics +__C.TEST.BBOX_VOTE_N_WEIGHTED_SCORE = 1 +__C.TEST.BBOX_VOTE_WEIGHT_EMPTY = 0.5 + # # MISC diff --git a/lib/fast_rcnn/test.py b/lib/fast_rcnn/test.py index f889d0977..6355cbea1 100644 --- a/lib/fast_rcnn/test.py +++ b/lib/fast_rcnn/test.py @@ -18,6 +18,8 @@ import cPickle from utils.blob import im_list_to_blob import os +from utils.cython_bbox import bbox_overlaps + def _get_image_blob(im): """Converts an image into a network input. @@ -45,9 +47,13 @@ def _get_image_blob(im): # Prevent the biggest axis from being more than MAX_SIZE if np.round(im_scale * im_size_max) > cfg.TEST.MAX_SIZE: im_scale = float(cfg.TEST.MAX_SIZE) / float(im_size_max) - im = cv2.resize(im_orig, None, None, fx=im_scale, fy=im_scale, + + # Make width and height be multiples of a specified number + im_scale_x = np.floor(im.shape[1] * im_scale / cfg.TEST.SCALE_MULTIPLE_OF) * cfg.TEST.SCALE_MULTIPLE_OF / im.shape[1] + im_scale_y = np.floor(im.shape[0] * im_scale / cfg.TEST.SCALE_MULTIPLE_OF) * cfg.TEST.SCALE_MULTIPLE_OF / im.shape[0] + im = cv2.resize(im_orig, None, None, fx=im_scale_x, fy=im_scale_y, interpolation=cv2.INTER_LINEAR) - im_scale_factors.append(im_scale) + im_scale_factors.append(np.array([im_scale_x, im_scale_y, im_scale_x, im_scale_y])) processed_ims.append(im) # Create a blob to hold the input images @@ -105,7 +111,7 @@ def _get_blobs(im, rois): blobs['rois'] = _get_rois_blob(rois, im_scale_factors) return blobs, im_scale_factors -def im_detect(net, im, boxes=None): +def im_detect(net, im, _t, boxes=None): """Detect object classes in an image given object proposals. Arguments: @@ -118,6 +124,7 @@ def im_detect(net, im, boxes=None): background as object category 0) boxes (ndarray): R x (4*K) array of predicted bounding boxes """ + _t['im_preproc'].tic() blobs, im_scales = _get_blobs(im, boxes) # When mapping from image ROIs to feature map ROIs, there's some aliasing @@ -135,7 +142,7 @@ def im_detect(net, im, boxes=None): if cfg.TEST.HAS_RPN: im_blob = blobs['data'] blobs['im_info'] = np.array( - [[im_blob.shape[2], im_blob.shape[3], im_scales[0]]], + [np.hstack((im_blob.shape[2], im_blob.shape[3], im_scales[0]))], dtype=np.float32) # reshape network inputs @@ -146,13 +153,22 @@ def im_detect(net, im, boxes=None): net.blobs['rois'].reshape(*(blobs['rois'].shape)) # do forward - forward_kwargs = {'data': blobs['data'].astype(np.float32, copy=False)} + net.blobs['data'].data[...] = blobs['data'] + #forward_kwargs = {'data': blobs['data'].astype(np.float32, copy=False)} if cfg.TEST.HAS_RPN: - forward_kwargs['im_info'] = blobs['im_info'].astype(np.float32, copy=False) + net.blobs['im_info'].data[...] = blobs['im_info'] + #forward_kwargs['im_info'] = blobs['im_info'].astype(np.float32, copy=False) else: - forward_kwargs['rois'] = blobs['rois'].astype(np.float32, copy=False) - blobs_out = net.forward(**forward_kwargs) + net.blobs['rois'].data[...] = blobs['rois'] + #forward_kwargs['rois'] = blobs['rois'].astype(np.float32, copy=False) + _t['im_preproc'].toc() + _t['im_net'].tic() + blobs_out = net.forward() + _t['im_net'].toc() + #blobs_out = net.forward(**forward_kwargs) + + _t['im_postproc'].tic() if cfg.TEST.HAS_RPN: assert len(im_scales) == 1, "Only single-image batch implemented" rois = net.blobs['rois'].data.copy() @@ -180,6 +196,7 @@ def im_detect(net, im, boxes=None): # Map scores and predictions back to the original set of boxes scores = scores[inv_index, :] pred_boxes = pred_boxes[inv_index, :] + _t['im_postproc'].toc() return scores, pred_boxes @@ -224,7 +241,44 @@ def apply_nms(all_boxes, thresh): nms_boxes[cls_ind][im_ind] = dets[keep, :].copy() return nms_boxes -def test_net(net, imdb, max_per_image=100, thresh=0.05, vis=False): +def bbox_vote(dets_NMS, dets_all, thresh=0.5): + dets_voted = np.zeros_like(dets_NMS) # Empty matrix with the same shape and type + + _overlaps = bbox_overlaps( + np.ascontiguousarray(dets_NMS[:, 0:4], dtype=np.float), + np.ascontiguousarray(dets_all[:, 0:4], dtype=np.float)) + + # for each survived box + for i, det in enumerate(dets_NMS): + dets_overlapped = dets_all[np.where(_overlaps[i, :] >= thresh)[0]] + assert(len(dets_overlapped) > 0) + + boxes = dets_overlapped[:, 0:4] + scores = dets_overlapped[:, 4] + + out_box = np.dot(scores, boxes) + + dets_voted[i][0:4] = out_box / sum(scores) # Weighted bounding boxes + dets_voted[i][4] = det[4] # Keep the original score + + # Weighted scores (if enabled) + if cfg.TEST.BBOX_VOTE_N_WEIGHTED_SCORE > 1: + n_agreement = cfg.TEST.BBOX_VOTE_N_WEIGHTED_SCORE + w_empty = cfg.TEST.BBOX_VOTE_WEIGHT_EMPTY + + n_detected = len(scores) + + if n_detected >= n_agreement: + top_scores = -np.sort(-scores)[:n_agreement] + new_score = np.average(top_scores) + else: + new_score = np.average(scores) * (n_detected * 1.0 + (n_agreement - n_detected) * w_empty) / n_agreement + + dets_voted[i][4] = min(new_score, dets_voted[i][4]) + + return dets_voted + +def test_net(net, imdb, max_per_image=100, thresh=0.01, vis=False): """Test a Fast R-CNN network on an image database.""" num_images = len(imdb.image_index) # all detections are collected into: @@ -236,7 +290,7 @@ def test_net(net, imdb, max_per_image=100, thresh=0.05, vis=False): output_dir = get_output_dir(imdb, net) # timers - _t = {'im_detect' : Timer(), 'misc' : Timer()} + _t = {'im_preproc': Timer(), 'im_net' : Timer(), 'im_postproc': Timer(), 'misc' : Timer()} if not cfg.TEST.HAS_RPN: roidb = imdb.roidb @@ -254,9 +308,7 @@ def test_net(net, imdb, max_per_image=100, thresh=0.05, vis=False): box_proposals = roidb[i]['boxes'][roidb[i]['gt_classes'] == 0] im = cv2.imread(imdb.image_path_at(i)) - _t['im_detect'].tic() - scores, boxes = im_detect(net, im, box_proposals) - _t['im_detect'].toc() + scores, boxes = im_detect(net, im, _t, box_proposals) _t['misc'].tic() # skip j = 0, because it's the background class @@ -267,7 +319,13 @@ def test_net(net, imdb, max_per_image=100, thresh=0.05, vis=False): cls_dets = np.hstack((cls_boxes, cls_scores[:, np.newaxis])) \ .astype(np.float32, copy=False) keep = nms(cls_dets, cfg.TEST.NMS) - cls_dets = cls_dets[keep, :] + + dets_NMSed = cls_dets[keep, :] + if cfg.TEST.BBOX_VOTE: + cls_dets = bbox_vote(dets_NMSed, cls_dets) + else: + cls_dets = dets_NMSed + if vis: vis_detections(im, imdb.classes[j], cls_dets) all_boxes[j][i] = cls_dets @@ -283,8 +341,9 @@ def test_net(net, imdb, max_per_image=100, thresh=0.05, vis=False): all_boxes[j][i] = all_boxes[j][i][keep, :] _t['misc'].toc() - print 'im_detect: {:d}/{:d} {:.3f}s {:.3f}s' \ - .format(i + 1, num_images, _t['im_detect'].average_time, + print 'im_detect: {:d}/{:d} net {:.3f}s preproc {:.3f}s postproc {:.3f}s misc {:.3f}s' \ + .format(i + 1, num_images, _t['im_net'].average_time, + _t['im_preproc'].average_time, _t['im_postproc'].average_time, _t['misc'].average_time) det_file = os.path.join(output_dir, 'detections.pkl') diff --git a/lib/roi_data_layer/layer.py b/lib/roi_data_layer/layer.py index 9f145fea8..04f41728b 100644 --- a/lib/roi_data_layer/layer.py +++ b/lib/roi_data_layer/layer.py @@ -84,7 +84,7 @@ def setup(self, bottom, top): """Setup the RoIDataLayer.""" # parse the layer parameter string, which must be valid YAML - layer_params = yaml.load(self.param_str_) + layer_params = yaml.load(self.param_str) self._num_classes = layer_params['num_classes'] diff --git a/lib/roi_data_layer/minibatch.py b/lib/roi_data_layer/minibatch.py index f4535b022..3ae496356 100644 --- a/lib/roi_data_layer/minibatch.py +++ b/lib/roi_data_layer/minibatch.py @@ -40,7 +40,7 @@ def get_minibatch(roidb, num_classes): gt_boxes[:, 4] = roidb[0]['gt_classes'][gt_inds] blobs['gt_boxes'] = gt_boxes blobs['im_info'] = np.array( - [[im_blob.shape[2], im_blob.shape[3], im_scales[0]]], + [np.hstack((im_blob.shape[2], im_blob.shape[3], im_scales[0]))], dtype=np.float32) else: # not using RPN # Now, build the region of interest and label blobs @@ -139,7 +139,7 @@ def _get_image_blob(roidb, scale_inds): im = im[:, ::-1, :] target_size = cfg.TRAIN.SCALES[scale_inds[i]] im, im_scale = prep_im_for_blob(im, cfg.PIXEL_MEANS, target_size, - cfg.TRAIN.MAX_SIZE) + cfg.TRAIN.MAX_SIZE, cfg.TRAIN.SCALE_MULTIPLE_OF) im_scales.append(im_scale) processed_ims.append(im) diff --git a/lib/rpn/anchor_target_layer.py b/lib/rpn/anchor_target_layer.py index 4563df1d2..24ae405c8 100644 --- a/lib/rpn/anchor_target_layer.py +++ b/lib/rpn/anchor_target_layer.py @@ -24,9 +24,10 @@ class AnchorTargetLayer(caffe.Layer): """ def setup(self, bottom, top): - layer_params = yaml.load(self.param_str_) + layer_params = yaml.load(self.param_str) anchor_scales = layer_params.get('scales', (8, 16, 32)) - self._anchors = generate_anchors(scales=np.array(anchor_scales)) + anchor_ratios = layer_params.get('ratios', ((0.5, 1, 2))) + self._anchors = generate_anchors(ratios=anchor_ratios, scales=np.array(anchor_scales)) self._num_anchors = self._anchors.shape[0] self._feat_stride = layer_params['feat_stride'] diff --git a/lib/rpn/generate.py b/lib/rpn/generate.py index 060daf434..d805580f0 100644 --- a/lib/rpn/generate.py +++ b/lib/rpn/generate.py @@ -71,9 +71,11 @@ def _get_image_blob(im): # Prevent the biggest axis from being more than MAX_SIZE if np.round(im_scale * im_size_max) > cfg.TEST.MAX_SIZE: im_scale = float(cfg.TEST.MAX_SIZE) / float(im_size_max) - im = cv2.resize(im_orig, None, None, fx=im_scale, fy=im_scale, + im_scale_x = np.floor(im.shape[1] * im_scale / cfg.TEST.SCALE_MULTIPLE_OF) * cfg.TEST.SCALE_MULTIPLE_OF / im.shape[1] + im_scale_y = np.floor(im.shape[0] * im_scale / cfg.TEST.SCALE_MULTIPLE_OF) * cfg.TEST.SCALE_MULTIPLE_OF / im.shape[0] + im = cv2.resize(im_orig, None, None, fx=im_scale_x, fy=im_scale_y, interpolation=cv2.INTER_LINEAR) - im_info = np.hstack((im.shape[:2], im_scale))[np.newaxis, :] + im_info = np.hstack((im.shape[:2], np.array([im_scale_x, im_scale_y, im_scale_x, im_scale_y])))[np.newaxis, :] processed_ims.append(im) # Create a blob to hold the input images @@ -91,7 +93,7 @@ def im_proposals(net, im): data=blobs['data'].astype(np.float32, copy=False), im_info=blobs['im_info'].astype(np.float32, copy=False)) - scale = blobs['im_info'][0, 2] + scale = blobs['im_info'][0, 2:] boxes = blobs_out['rois'][:, 1:].copy() / scale scores = blobs_out['scores'].copy() return boxes, scores diff --git a/lib/rpn/proposal_layer.py b/lib/rpn/proposal_layer.py index b157160b3..f946836ed 100644 --- a/lib/rpn/proposal_layer.py +++ b/lib/rpn/proposal_layer.py @@ -23,11 +23,12 @@ class ProposalLayer(caffe.Layer): def setup(self, bottom, top): # parse the layer parameter string, which must be valid YAML - layer_params = yaml.load(self.param_str_) + layer_params = yaml.load(self.param_str) self._feat_stride = layer_params['feat_stride'] anchor_scales = layer_params.get('scales', (8, 16, 32)) - self._anchors = generate_anchors(scales=np.array(anchor_scales)) + anchor_ratios = layer_params.get('ratios', ((0.5, 1, 2))) + self._anchors = generate_anchors(ratios=anchor_ratios, scales=np.array(anchor_scales)) self._num_anchors = self._anchors.shape[0] if DEBUG: @@ -61,11 +62,15 @@ def forward(self, bottom, top): assert bottom[0].data.shape[0] == 1, \ 'Only single item batches are supported' - cfg_key = str(self.phase) # either 'TRAIN' or 'TEST' - pre_nms_topN = cfg[cfg_key].RPN_PRE_NMS_TOP_N - post_nms_topN = cfg[cfg_key].RPN_POST_NMS_TOP_N - nms_thresh = cfg[cfg_key].RPN_NMS_THRESH - min_size = cfg[cfg_key].RPN_MIN_SIZE + cfg_key = self.phase # either 'TRAIN' or 'TEST' + if cfg_key == 0: + cfg_ = cfg.TRAIN + else: + cfg_ = cfg.TEST + pre_nms_topN = cfg_.RPN_PRE_NMS_TOP_N + post_nms_topN = cfg_.RPN_POST_NMS_TOP_N + nms_thresh = cfg_.RPN_NMS_THRESH + min_size = cfg_.RPN_MIN_SIZE # the first set of _num_anchors channels are bg probs # the second set are the fg probs, which we want diff --git a/lib/rpn/proposal_target_layer.py b/lib/rpn/proposal_target_layer.py index 38e1f2c88..89f2c6e41 100644 --- a/lib/rpn/proposal_target_layer.py +++ b/lib/rpn/proposal_target_layer.py @@ -22,7 +22,7 @@ class ProposalTargetLayer(caffe.Layer): """ def setup(self, bottom, top): - layer_params = yaml.load(self.param_str_) + layer_params = yaml.load(self.param_str) self._num_classes = layer_params['num_classes'] # sampled rois (0, x1, y1, x2, y2) diff --git a/lib/utils/bbox.pyx b/lib/utils/bbox.pyx index e14780ddd..2e6e98289 100644 --- a/lib/utils/bbox.pyx +++ b/lib/utils/bbox.pyx @@ -53,3 +53,54 @@ def bbox_overlaps( ) overlaps[n, k] = iw * ih / ua return overlaps + +# Compute bounding box voting +def bbox_vote( + np.ndarray[float, ndim=2] dets_NMS, + np.ndarray[float, ndim=2] dets_all): + cdef np.ndarray[float, ndim=2] dets_voted = np.zeros((dets_NMS.shape[0], dets_NMS.shape[1]), dtype=np.float32) + cdef unsigned int N = dets_NMS.shape[0] + cdef unsigned int M = dets_all.shape[0] + + cdef np.ndarray[float, ndim=1] det + cdef np.ndarray[float, ndim=1] acc_box + cdef float acc_score + + cdef np.ndarray[float, ndim=1] det2 + cdef float bi0, bi1, bit2, bi3 + cdef float iw, ih, ua + + cdef float thresh=0.5 + + for i in range(N): + det = dets_NMS[i, :] + acc_box = np.zeros((4), dtype=np.float32) + acc_score = 0.0 + + for m in range(M): + det2 = dets_all[m, :] + + bi0 = max(det[0], det2[0]) + bi1 = max(det[1], det2[1]) + bi2 = min(det[2], det2[2]) + bi3 = min(det[3], det2[3]) + + iw = bi2 - bi0 + 1 + ih = bi3 - bi1 + 1 + + if not (iw > 0 and ih > 0): + continue + + ua = (det[2] - det[0] + 1) * (det[3] - det[1] + 1) + (det2[2] - det2[0] + 1) * (det2[3] - det2[1] + 1) - iw * ih + ov = iw * ih / ua + + if (ov < thresh): + continue + + acc_box += det2[4] * det2[0:4] + acc_score += det2[4] + + dets_voted[i][0:4] = acc_box / acc_score + dets_voted[i][4] = det[4] # Keep the original score + + return dets_voted \ No newline at end of file diff --git a/lib/utils/blob.py b/lib/utils/blob.py index 1c316427a..034e0cb2a 100644 --- a/lib/utils/blob.py +++ b/lib/utils/blob.py @@ -28,7 +28,7 @@ def im_list_to_blob(ims): blob = blob.transpose(channel_swap) return blob -def prep_im_for_blob(im, pixel_means, target_size, max_size): +def prep_im_for_blob(im, pixel_means, target_size, max_size, multiple): """Mean subtract and scale an image for use in a blob.""" im = im.astype(np.float32, copy=False) im -= pixel_means @@ -39,7 +39,9 @@ def prep_im_for_blob(im, pixel_means, target_size, max_size): # Prevent the biggest axis from being more than MAX_SIZE if np.round(im_scale * im_size_max) > max_size: im_scale = float(max_size) / float(im_size_max) - im = cv2.resize(im, None, None, fx=im_scale, fy=im_scale, + im_scale_x = np.floor(im.shape[1] * im_scale / multiple) * multiple / im.shape[1] + im_scale_y = np.floor(im.shape[0] * im_scale / multiple) * multiple / im.shape[0] + im = cv2.resize(im, None, None, fx=im_scale_x, fy=im_scale_y, interpolation=cv2.INTER_LINEAR) - return im, im_scale + return im, np.array([im_scale_x, im_scale_y, im_scale_x, im_scale_y]) diff --git a/models/pvanet/cfgs/submit_0716.yml b/models/pvanet/cfgs/submit_0716.yml new file mode 100644 index 000000000..97d4c4f02 --- /dev/null +++ b/models/pvanet/cfgs/submit_0716.yml @@ -0,0 +1,11 @@ +EXP_DIR: submit_0716 +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + MAX_SIZE: 2000 + SCALES: + - 640 + BBOX_VOTE: True + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 200 diff --git a/models/pvanet/cfgs/submit_1019.yml b/models/pvanet/cfgs/submit_1019.yml new file mode 100644 index 000000000..189e6960f --- /dev/null +++ b/models/pvanet/cfgs/submit_1019.yml @@ -0,0 +1,13 @@ +EXP_DIR: submit_1019 +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + MAX_SIZE: 2000 + SCALES: + - 640 + BBOX_VOTE: True + BBOX_VOTE_N_WEIGHTED_SCORE: 5 + BBOX_VOTE_WEIGHT_EMPTY: 0.3 + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 200 \ No newline at end of file diff --git a/models/pvanet/cfgs/train.yml b/models/pvanet/cfgs/train.yml new file mode 100644 index 000000000..ab88fbc84 --- /dev/null +++ b/models/pvanet/cfgs/train.yml @@ -0,0 +1,27 @@ +EXP_DIR: faster_rcnn_pvanet +TRAIN: + HAS_RPN: True + IMS_PER_BATCH: 1 + BBOX_NORMALIZE_TARGETS_PRECOMPUTED: True + RPN_POSITIVE_OVERLAP: 0.7 + RPN_BATCHSIZE: 256 + PROPOSAL_METHOD: gt + BG_THRESH_LO: 0.0 + SCALE_MULTIPLE_OF: 32 + MAX_SIZE: 1440 + SCALES: + - 416 + - 448 + - 480 + - 512 + - 544 + - 576 + - 608 + - 640 + - 672 + - 704 + - 736 + - 768 + - 800 + - 832 + - 864 diff --git a/models/pvanet/download_all_models.sh b/models/pvanet/download_all_models.sh new file mode 100755 index 000000000..3efc4d348 --- /dev/null +++ b/models/pvanet/download_all_models.sh @@ -0,0 +1,13 @@ +#/bin/bash + +# ImageNet pre-trained (for fine-tuning) +wget https://www.dropbox.com/s/g9ly0fc0fspdfz8/pva9.1_pretrained_no_fc6.caffemodel?dl=1 -O models/pvanet/pretrained/pva9.1_pretrained_no_fc6.caffemodel + +# COCO train/val + VOC0712 train/val +wget https://www.dropbox.com/s/sq1kujjil5qg5bw/PVA9.1_ImgNet_COCO_VOC0712.caffemodel?dl=1 -O models/pvanet/pva9.1/PVA9.1_ImgNet_COCO_VOC0712.caffemodel + +# COCO train/val + VOC0712 train/val + VOC07 test +wget https://www.dropbox.com/s/m65ioxcguevsacc/PVA9.1_ImgNet_COCO_VOC0712plus.caffemodel?dl=1 -O models/pvanet/pva9.1/PVA9.1_ImgNet_COCO_VOC0712plus.caffemodel + +# COCO train/val + VOC0712 train/val + VOC07 test + network compression +wget https://www.dropbox.com/s/76q7pdym70ji986/PVA9.1_ImgNet_COCO_VOC0712plus_compressed.caffemodel?dl=1 -O models/pvanet/pva9.1/PVA9.1_ImgNet_COCO_VOC0712plus_compressed.caffemodel \ No newline at end of file diff --git a/models/pvanet/download_imagenet_model.sh b/models/pvanet/download_imagenet_model.sh new file mode 100755 index 000000000..49cf3ed8a --- /dev/null +++ b/models/pvanet/download_imagenet_model.sh @@ -0,0 +1,3 @@ +#/bin/bash +# ImageNet pre-trained +wget https://www.dropbox.com/s/a2y0e12kmu8wjsf/pva9.1_preAct_train_iter_1900000.caffemodel?dl=1 -O models/pvanet/pretrained/pva9.1_preAct_train_iter_1900000.caffemodel \ No newline at end of file diff --git a/models/pvanet/download_voc_best.sh b/models/pvanet/download_voc_best.sh new file mode 100755 index 000000000..61fdea354 --- /dev/null +++ b/models/pvanet/download_voc_best.sh @@ -0,0 +1,3 @@ +#/bin/bash +# COCO train/val + VOC0712 train/val + VOC07 test +wget https://www.dropbox.com/s/m65ioxcguevsacc/PVA9.1_ImgNet_COCO_VOC0712plus.caffemodel?dl=1 -O models/pvanet/pva9.1/PVA9.1_ImgNet_COCO_VOC0712plus.caffemodel \ No newline at end of file diff --git a/models/pvanet/example_train/README.md b/models/pvanet/example_train/README.md new file mode 100644 index 000000000..98e8cf374 --- /dev/null +++ b/models/pvanet/example_train/README.md @@ -0,0 +1,28 @@ +## PVANet: Lightweight Deep Neural Networks for Real-time Object Detection +by Sanghoon Hong, Byungseok Roh, Kye-hyeon Kim, Yeongjae Cheon, Minje Park (Intel Imaging and Camera Technology) +Presented in [EMDNN2016](http://allenai.org/plato/emdnn/), a NIPS2016 workshop ([arXiv link](https://arxiv.org/abs/1611.08588)) + +### Notes +- The training of PVANet 9.1 on the VOC2012 leaderboard wasn't done with this code. + +### Sample command +- Training for 100k iterations (toy) + ``` + tools/train_net.py + --gpu 0 + --solver models/pvanet/example_train/solver.prototxt + --weights models/pvanet/pretrained/pva9.1_pretrained_no_fc6.caffemodel + --iters 100000 + --cfg models/pvanet/cfgs/train.yml + --imdb voc_2007_trainval + ``` + +- Testing + + ``` + tools/test_net.py + --gpu 0 + --def models/pvanet/example_train/test.prototxt + --net output/faster_rcnn_pvanet/voc_2007_trainval/pvanet_frcnn_iter_100000.caffemodel + --cfg models/pvanet/cfgs/submit_160715.yml + ``` diff --git a/models/pvanet/example_train/solver.prototxt b/models/pvanet/example_train/solver.prototxt new file mode 100644 index 000000000..e4043a174 --- /dev/null +++ b/models/pvanet/example_train/solver.prototxt @@ -0,0 +1,22 @@ +train_net: "models/pvanet/example_train/train.prototxt" + +base_lr: 0.001 +lr_policy: "plateau" +gamma: 0.1 +stepsize: 50000 +display: 20 +average_loss: 100 +momentum: 0.9 +weight_decay: 0.0002 + +plateau_winsize: 50000 +plateau_winsize: 75000 +plateau_winsize: 100000 + + +# We disable standard caffe solver snapshotting and implement our own snapshot +# function +snapshot: 0 +# We still use the snapshot prefix, though +snapshot_prefix: "pvanet_frcnn" +iter_size: 2 diff --git a/models/pvanet/example_train/test.prototxt b/models/pvanet/example_train/test.prototxt new file mode 100644 index 000000000..357895873 --- /dev/null +++ b/models/pvanet/example_train/test.prototxt @@ -0,0 +1,6683 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} + +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/bn_scale" + type: "Scale" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/2/pre" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/2" + top: "conv2_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/neg" + type: "Power" + bottom: "conv2_1/3/pre" + top: "conv2_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/3/concat" + type: "Concat" + bottom: "conv2_1/3/pre" + bottom: "conv2_1/3/neg" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/scale" + type: "Scale" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/3/relu" + type: "ReLU" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_1" + top: "conv2_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_2/1/pre" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/bn_scale" + type: "Scale" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/2/pre" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/2" + top: "conv2_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/neg" + type: "Power" + bottom: "conv2_2/3/pre" + top: "conv2_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/3/concat" + type: "Concat" + bottom: "conv2_2/3/pre" + bottom: "conv2_2/3/neg" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/scale" + type: "Scale" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/3/relu" + type: "ReLU" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_2" + top: "conv2_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_3/1/pre" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/bn_scale" + type: "Scale" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/2/pre" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/2" + top: "conv2_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/neg" + type: "Power" + bottom: "conv2_3/3/pre" + top: "conv2_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/3/concat" + type: "Concat" + bottom: "conv2_3/3/pre" + bottom: "conv2_3/3/neg" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/scale" + type: "Scale" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/3/relu" + type: "ReLU" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv2_3" + top: "conv3_1/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/bn_scale" + type: "Scale" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/2/pre" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/2" + top: "conv3_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/neg" + type: "Power" + bottom: "conv3_1/3/pre" + top: "conv3_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/3/concat" + type: "Concat" + bottom: "conv3_1/3/pre" + bottom: "conv3_1/3/neg" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/scale" + type: "Scale" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/3/relu" + type: "ReLU" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_1" + top: "conv3_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_2/1/pre" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/bn_scale" + type: "Scale" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/2/pre" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/2" + top: "conv3_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/neg" + type: "Power" + bottom: "conv3_2/3/pre" + top: "conv3_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/3/concat" + type: "Concat" + bottom: "conv3_2/3/pre" + bottom: "conv3_2/3/neg" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/scale" + type: "Scale" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/3/relu" + type: "ReLU" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_2" + top: "conv3_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_3/1/pre" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/bn_scale" + type: "Scale" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/2/pre" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/2" + top: "conv3_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/neg" + type: "Power" + bottom: "conv3_3/3/pre" + top: "conv3_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/3/concat" + type: "Concat" + bottom: "conv3_3/3/pre" + bottom: "conv3_3/3/neg" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/scale" + type: "Scale" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/3/relu" + type: "ReLU" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_3" + top: "conv3_4/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_4/1/pre" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/bn_scale" + type: "Scale" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/2/pre" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/2" + top: "conv3_4/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/neg" + type: "Power" + bottom: "conv3_4/3/pre" + top: "conv3_4/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/3/concat" + type: "Concat" + bottom: "conv3_4/3/pre" + bottom: "conv3_4/3/neg" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/scale" + type: "Scale" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/3/relu" + type: "ReLU" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/bn" + type: "BatchNorm" + bottom: "conv3_4" + top: "conv4_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/relu" + type: "ReLU" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/bn" + type: "BatchNorm" + bottom: "conv4_1" + top: "conv4_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/relu" + type: "ReLU" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/bn" + type: "BatchNorm" + bottom: "conv4_2" + top: "conv4_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/relu" + type: "ReLU" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/bn" + type: "BatchNorm" + bottom: "conv4_3" + top: "conv4_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/relu" + type: "ReLU" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/bn" + type: "BatchNorm" + bottom: "conv4_4" + top: "conv5_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/relu" + type: "ReLU" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/bn" + type: "BatchNorm" + bottom: "conv5_1" + top: "conv5_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/relu" + type: "ReLU" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/bn" + type: "BatchNorm" + bottom: "conv5_2" + top: "conv5_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/relu" + type: "ReLU" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/bn" + type: "BatchNorm" + bottom: "conv5_3" + top: "conv5_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/relu" + type: "ReLU" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/last_bn" + type: "BatchNorm" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/last_bn_scale" + type: "Scale" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/last_relu" + type: "ReLU" + bottom: "conv5_4" + top: "conv5_4" +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { kernel_size: 3 stride: 2 pad: 0 pool: MAX } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { lr_mult: 0 decay_mult: 0} + convolution_param { + num_output: 384 kernel_size: 4 pad: 1 stride: 2 group: 384 + weight_filler: {type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { axis: 1 } +} + +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} + + +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} + +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { axis: 1 } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 84 # 2(bg/fg) * 42(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 168 # 4 * 42(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 } } +} + +################################################################################ +## 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: 84 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Python' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + bottom: 'gt_boxes' + top: 'rois' + top: 'labels' + top: 'bbox_targets' + top: 'bbox_inside_weights' + top: 'bbox_outside_weights' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer2' + param_str: "{'feat_stride': 16, 'num_classes': 21, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} +layer { + name: 'proposal' + type: 'Python' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + include { phase: TEST } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 21 + 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.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" + include { phase: TEST } + loss_param { + ignore_label: -1 + normalize: true + } +} diff --git a/models/pvanet/example_train/train.prototxt b/models/pvanet/example_train/train.prototxt new file mode 100644 index 000000000..8a751f1da --- /dev/null +++ b/models/pvanet/example_train/train.prototxt @@ -0,0 +1,6764 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +layer { + name: 'input-data' + type: 'Python' + top: 'data' + top: 'im_info' + top: 'gt_boxes' + include { phase: TRAIN } + python_param { + module: 'roi_data_layer.layer' + layer: 'RoIDataLayer' + param_str: "'num_classes': 21" + } +} + +layer { + name: "input-data" + type: "DummyData" + top: "data" + top: "im_info" + include { phase: TEST } + dummy_data_param { + shape { dim: 1 dim: 3 dim: 224 dim: 224 } + shape { dim: 1 dim: 3 } + } +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/bn_scale" + type: "Scale" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/2/pre" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/2" + top: "conv2_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/neg" + type: "Power" + bottom: "conv2_1/3/pre" + top: "conv2_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/3/concat" + type: "Concat" + bottom: "conv2_1/3/pre" + bottom: "conv2_1/3/neg" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/scale" + type: "Scale" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/3/relu" + type: "ReLU" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_1" + top: "conv2_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_2/1/pre" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/bn_scale" + type: "Scale" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/2/pre" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/2" + top: "conv2_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/neg" + type: "Power" + bottom: "conv2_2/3/pre" + top: "conv2_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/3/concat" + type: "Concat" + bottom: "conv2_2/3/pre" + bottom: "conv2_2/3/neg" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/scale" + type: "Scale" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/3/relu" + type: "ReLU" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_2" + top: "conv2_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_3/1/pre" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/bn_scale" + type: "Scale" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/2/pre" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/2" + top: "conv2_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/neg" + type: "Power" + bottom: "conv2_3/3/pre" + top: "conv2_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/3/concat" + type: "Concat" + bottom: "conv2_3/3/pre" + bottom: "conv2_3/3/neg" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/scale" + type: "Scale" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/3/relu" + type: "ReLU" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv2_3" + top: "conv3_1/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/bn_scale" + type: "Scale" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/2/pre" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/2" + top: "conv3_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/neg" + type: "Power" + bottom: "conv3_1/3/pre" + top: "conv3_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/3/concat" + type: "Concat" + bottom: "conv3_1/3/pre" + bottom: "conv3_1/3/neg" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/scale" + type: "Scale" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/3/relu" + type: "ReLU" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_1" + top: "conv3_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_2/1/pre" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/bn_scale" + type: "Scale" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/2/pre" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/2" + top: "conv3_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/neg" + type: "Power" + bottom: "conv3_2/3/pre" + top: "conv3_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/3/concat" + type: "Concat" + bottom: "conv3_2/3/pre" + bottom: "conv3_2/3/neg" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/scale" + type: "Scale" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/3/relu" + type: "ReLU" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_2" + top: "conv3_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_3/1/pre" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/bn_scale" + type: "Scale" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/2/pre" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/2" + top: "conv3_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/neg" + type: "Power" + bottom: "conv3_3/3/pre" + top: "conv3_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/3/concat" + type: "Concat" + bottom: "conv3_3/3/pre" + bottom: "conv3_3/3/neg" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/scale" + type: "Scale" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/3/relu" + type: "ReLU" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_3" + top: "conv3_4/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_4/1/pre" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/bn_scale" + type: "Scale" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/2/pre" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/2" + top: "conv3_4/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/neg" + type: "Power" + bottom: "conv3_4/3/pre" + top: "conv3_4/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/3/concat" + type: "Concat" + bottom: "conv3_4/3/pre" + bottom: "conv3_4/3/neg" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/scale" + type: "Scale" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/3/relu" + type: "ReLU" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/bn" + type: "BatchNorm" + bottom: "conv3_4" + top: "conv4_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/relu" + type: "ReLU" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/bn" + type: "BatchNorm" + bottom: "conv4_1" + top: "conv4_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/relu" + type: "ReLU" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/bn" + type: "BatchNorm" + bottom: "conv4_2" + top: "conv4_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/relu" + type: "ReLU" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/bn" + type: "BatchNorm" + bottom: "conv4_3" + top: "conv4_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/relu" + type: "ReLU" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/bn" + type: "BatchNorm" + bottom: "conv4_4" + top: "conv5_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/relu" + type: "ReLU" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/bn" + type: "BatchNorm" + bottom: "conv5_1" + top: "conv5_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/relu" + type: "ReLU" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/bn" + type: "BatchNorm" + bottom: "conv5_2" + top: "conv5_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/relu" + type: "ReLU" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/bn" + type: "BatchNorm" + bottom: "conv5_3" + top: "conv5_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/relu" + type: "ReLU" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/last_bn" + type: "BatchNorm" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/last_bn_scale" + type: "Scale" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/last_relu" + type: "ReLU" + bottom: "conv5_4" + top: "conv5_4" +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { kernel_size: 3 stride: 2 pad: 0 pool: MAX } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { lr_mult: 0 decay_mult: 0} + convolution_param { + num_output: 384 kernel_size: 4 pad: 1 stride: 2 group: 384 + weight_filler: {type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { axis: 1 } +} + +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} + + +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} + +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { axis: 1 } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 84 # 2(bg/fg) * 42(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 168 # 4 * 42(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' + include { phase: TRAIN } + python_param { + module: 'rpn.anchor_target_layer' + layer: 'AnchorTargetLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} +layer { + name: "rpn_loss_cls" + type: "SoftmaxWithLoss" + bottom: "rpn_cls_score_reshape" + bottom: "rpn_labels" + propagate_down: 1 + propagate_down: 0 + top: "rpn_loss_cls" + include { phase: TRAIN } + 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" + include { phase: TRAIN } + loss_weight: 1 + smooth_l1_loss_param { sigma: 3.0 } +} + +################################################################################ +## 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: 84 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' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} +layer { + name: 'mute_rpn_scores' + bottom: 'rpn_scores' + type: 'Silence' + include { phase: TRAIN } +} +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' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_target_layer' + layer: 'ProposalTargetLayer' + param_str: "'num_classes': 21" + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 21 + 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.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 84 + 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" + include { phase: TRAIN } + loss_weight: 1 + loss_param { ignore_label: -1 normalize: true } +} +layer { + name: "loss_bbox" + type: "SmoothL1Loss" + bottom: "bbox_pred" + bottom: "bbox_targets" + bottom: "bbox_inside_weights" + bottom: "bbox_outside_weights" + top: "loss_bbox" + include { phase: TRAIN } + loss_weight: 1 +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" + include { phase: TEST } + loss_param { + ignore_label: -1 + normalize: true + } +} diff --git a/models/pvanet/imagenet/descriptions.txt b/models/pvanet/imagenet/descriptions.txt new file mode 100644 index 000000000..62e99931e --- /dev/null +++ b/models/pvanet/imagenet/descriptions.txt @@ -0,0 +1,25 @@ +PVA9.1 ImageNet +70.0% top-1 with 4.17 GMAC (conv) + +A PVA9.0 variant with the following changes +- Multi-GPU training + * larger batch size + * additional regularization through BN +- Fixed a bug in the prototxt (shift) +- Data augmentation (multi-scale training images) +- Pre-activation structure + +Structure +- Output size: 1/32, 384 chns +- Inspired by DRN, GoogLeNet and CReLU +- Introduced a modificed CReLU + +Training +- Trained with a multi-scale ILSVRC2012 training set. + * image size: 256x256, 384x384, 512x512 + +Testing +- 70.0% top-1 with 192x192 inputs + +Contact Sanghoon Hong for any questions + diff --git a/models/pvanet/imagenet/pva9.1_preAct_test.prototxt b/models/pvanet/imagenet/pva9.1_preAct_test.prototxt new file mode 100644 index 000000000..d2cadd166 --- /dev/null +++ b/models/pvanet/imagenet/pva9.1_preAct_test.prototxt @@ -0,0 +1,6556 @@ +# conv1_1 , 240.84 MMAC, 320, 32 +# pool1 , 0.00 MAC, 160, 32 +# conv2_1 , 283.44 MMAC, 160, 64 +# conv2_2 , 250.68 MMAC, 160, 64 +# conv2_3 , 250.68 MMAC, 160, 64 +# conv3_1 , 283.44 MMAC, 80, 128 +# conv3_2 , 250.68 MMAC, 80, 128 +# conv3_3 , 250.68 MMAC, 80, 128 +# conv3_4 , 250.68 MMAC, 80, 128 +# conv4_1 , 395.47 MMAC, 40, 256 +# conv4_2 , 328.29 MMAC, 40, 256 +# conv4_3 , 328.29 MMAC, 40, 256 +# conv4_4 , 328.29 MMAC, 40, 256 +# conv5_1 , 229.38 MMAC, 20, 384 +# conv5_2 , 167.12 MMAC, 20, 384 +# conv5_3 , 167.12 MMAC, 20, 384 +# conv5_4 , 167.12 MMAC, 20, 384 +# None , 0.00 MAC, 20, 384 +# conv5_4/last_relu, 0.00 MAC, 20, 384 +# pool5 , 0.00 MAC, 20, 384 +# Total: 4.17 GMAC + +# conv1_1 , 29.50 MMAC, 112, 32 +# pool1 , 0.00 MAC, 56, 32 +# conv2_1 , 34.72 MMAC, 56, 64 +# conv2_2 , 30.71 MMAC, 56, 64 +# conv2_3 , 30.71 MMAC, 56, 64 +# conv3_1 , 34.72 MMAC, 28, 128 +# conv3_2 , 30.71 MMAC, 28, 128 +# conv3_3 , 30.71 MMAC, 28, 128 +# conv3_4 , 30.71 MMAC, 28, 128 +# conv4_1 , 48.44 MMAC, 14, 256 +# conv4_2 , 40.22 MMAC, 14, 256 +# conv4_3 , 40.22 MMAC, 14, 256 +# conv4_4 , 40.22 MMAC, 14, 256 +# conv5_1 , 28.10 MMAC, 7, 384 +# conv5_2 , 20.47 MMAC, 7, 384 +# conv5_3 , 20.47 MMAC, 7, 384 +# conv5_4 , 20.47 MMAC, 7, 384 +# None , 0.00 MAC, 7, 384 +# conv5_4/last_relu, 0.00 MAC, 7, 384 +# pool5 , 0.00 MAC, 7, 384 +# fc6 , 77.07 MMAC, 1, 4096 +# fc7 , 16.78 MMAC, 1, 4096 +# Total: 604.94 MMAC + +name: "pvanet_9.0" +layer { + # comment test + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + crop_size: 192 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "data/ILSVRC2012_160720/ilsvrc12_train_lmdb" + batch_size: 96 + backend: LMDB + } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TEST + } + transform_param { + mirror: false + crop_size: 192 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "data/ILSVRC2012_160720/ilsvrc12_val_lmdb" + batch_size: 32 + backend: LMDB + } +} + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/bn_scale" + type: "Scale" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/2/pre" + top: "conv2_1/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/2" + top: "conv2_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/neg" + type: "Power" + bottom: "conv2_1/3/pre" + top: "conv2_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/3/concat" + type: "Concat" + bottom: "conv2_1/3/pre" + bottom: "conv2_1/3/neg" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/scale" + type: "Scale" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/3/relu" + type: "ReLU" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_1" + top: "conv2_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_2/1/pre" + top: "conv2_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/bn_scale" + type: "Scale" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/2/pre" + top: "conv2_2/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/2" + top: "conv2_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/neg" + type: "Power" + bottom: "conv2_2/3/pre" + top: "conv2_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/3/concat" + type: "Concat" + bottom: "conv2_2/3/pre" + bottom: "conv2_2/3/neg" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/scale" + type: "Scale" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/3/relu" + type: "ReLU" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_2" + top: "conv2_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_3/1/pre" + top: "conv2_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/bn_scale" + type: "Scale" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/2/pre" + top: "conv2_3/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/2" + top: "conv2_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/neg" + type: "Power" + bottom: "conv2_3/3/pre" + top: "conv2_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/3/concat" + type: "Concat" + bottom: "conv2_3/3/pre" + bottom: "conv2_3/3/neg" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/scale" + type: "Scale" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/3/relu" + type: "ReLU" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv2_3" + top: "conv3_1/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/bn_scale" + type: "Scale" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/2/pre" + top: "conv3_1/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/2" + top: "conv3_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/neg" + type: "Power" + bottom: "conv3_1/3/pre" + top: "conv3_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/3/concat" + type: "Concat" + bottom: "conv3_1/3/pre" + bottom: "conv3_1/3/neg" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/scale" + type: "Scale" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/3/relu" + type: "ReLU" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_1" + top: "conv3_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_2/1/pre" + top: "conv3_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/bn_scale" + type: "Scale" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/2/pre" + top: "conv3_2/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/2" + top: "conv3_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/neg" + type: "Power" + bottom: "conv3_2/3/pre" + top: "conv3_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/3/concat" + type: "Concat" + bottom: "conv3_2/3/pre" + bottom: "conv3_2/3/neg" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/scale" + type: "Scale" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/3/relu" + type: "ReLU" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_2" + top: "conv3_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_3/1/pre" + top: "conv3_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/bn_scale" + type: "Scale" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/2/pre" + top: "conv3_3/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/2" + top: "conv3_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/neg" + type: "Power" + bottom: "conv3_3/3/pre" + top: "conv3_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/3/concat" + type: "Concat" + bottom: "conv3_3/3/pre" + bottom: "conv3_3/3/neg" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/scale" + type: "Scale" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/3/relu" + type: "ReLU" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_3" + top: "conv3_4/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_4/1/pre" + top: "conv3_4/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/bn_scale" + type: "Scale" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/2/pre" + top: "conv3_4/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/2" + top: "conv3_4/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/neg" + type: "Power" + bottom: "conv3_4/3/pre" + top: "conv3_4/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/3/concat" + type: "Concat" + bottom: "conv3_4/3/pre" + bottom: "conv3_4/3/neg" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/scale" + type: "Scale" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/3/relu" + type: "ReLU" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/bn" + type: "BatchNorm" + bottom: "conv3_4" + top: "conv4_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/relu" + type: "ReLU" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/bn" + type: "BatchNorm" + bottom: "conv4_1" + top: "conv4_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/relu" + type: "ReLU" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/bn" + type: "BatchNorm" + bottom: "conv4_2" + top: "conv4_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/relu" + type: "ReLU" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/bn" + type: "BatchNorm" + bottom: "conv4_3" + top: "conv4_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/relu" + type: "ReLU" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/bn" + type: "BatchNorm" + bottom: "conv4_4" + top: "conv5_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/relu" + type: "ReLU" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/bn" + type: "BatchNorm" + bottom: "conv5_1" + top: "conv5_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/relu" + type: "ReLU" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/bn" + type: "BatchNorm" + bottom: "conv5_2" + top: "conv5_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/relu" + type: "ReLU" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/bn" + type: "BatchNorm" + bottom: "conv5_3" + top: "conv5_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/relu" + type: "ReLU" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/last_bn" + type: "BatchNorm" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/last_bn_scale" + type: "Scale" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/last_relu" + type: "ReLU" + bottom: "conv5_4" + top: "conv5_4" +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5_4" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 1 + stride: 1 + pad: 0 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/bn_scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/bn_scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} + + + +layer { + name: "fc8" + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + param { lr_mult: 1.0 decay_mult: 1.0 } + inner_product_param { + num_output: 1000 + weight_filler { type: "xavier" } + bias_filler { type: "constant" value: 0.1 } + } +} + +### Loss +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss" +} + +layer { + name: "accuracy" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy" + include { + phase: TEST + } + accuracy_param { + top_k: 1 + } +} diff --git a/models/pvanet/pva9.1/faster_rcnn_train_test_21cls.pt b/models/pvanet/pva9.1/faster_rcnn_train_test_21cls.pt new file mode 100644 index 000000000..ae505afe8 --- /dev/null +++ b/models/pvanet/pva9.1/faster_rcnn_train_test_21cls.pt @@ -0,0 +1,6779 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +layer { + name: 'input-data' + type: 'Python' + top: 'data' + top: 'im_info' + top: 'gt_boxes' + include { phase: TRAIN } + python_param { + module: 'roi_data_layer.layer' + layer: 'RoIDataLayer' + param_str: "'num_classes': 21" + } +} + +layer { + name: "input-data" + type: "DummyData" + top: "data" + top: "im_info" + include { phase: TEST } + dummy_data_param { + shape { dim: 1 dim: 3 dim: 224 dim: 224 } + shape { dim: 1 dim: 3 } + } +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/bn_scale" + type: "Scale" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/2/pre" + top: "conv2_1/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/2" + top: "conv2_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/neg" + type: "Power" + bottom: "conv2_1/3/pre" + top: "conv2_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/3/concat" + type: "Concat" + bottom: "conv2_1/3/pre" + bottom: "conv2_1/3/neg" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/scale" + type: "Scale" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/3/relu" + type: "ReLU" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_1" + top: "conv2_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_2/1/pre" + top: "conv2_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/bn_scale" + type: "Scale" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/2/pre" + top: "conv2_2/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/2" + top: "conv2_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/neg" + type: "Power" + bottom: "conv2_2/3/pre" + top: "conv2_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/3/concat" + type: "Concat" + bottom: "conv2_2/3/pre" + bottom: "conv2_2/3/neg" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/scale" + type: "Scale" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/3/relu" + type: "ReLU" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_2" + top: "conv2_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_3/1/pre" + top: "conv2_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/bn_scale" + type: "Scale" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/2/pre" + top: "conv2_3/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/2" + top: "conv2_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/neg" + type: "Power" + bottom: "conv2_3/3/pre" + top: "conv2_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/3/concat" + type: "Concat" + bottom: "conv2_3/3/pre" + bottom: "conv2_3/3/neg" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/scale" + type: "Scale" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/3/relu" + type: "ReLU" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv2_3" + top: "conv3_1/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/bn_scale" + type: "Scale" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/2/pre" + top: "conv3_1/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/2" + top: "conv3_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/neg" + type: "Power" + bottom: "conv3_1/3/pre" + top: "conv3_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/3/concat" + type: "Concat" + bottom: "conv3_1/3/pre" + bottom: "conv3_1/3/neg" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/scale" + type: "Scale" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/3/relu" + type: "ReLU" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_1" + top: "conv3_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_2/1/pre" + top: "conv3_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/bn_scale" + type: "Scale" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/2/pre" + top: "conv3_2/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/2" + top: "conv3_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/neg" + type: "Power" + bottom: "conv3_2/3/pre" + top: "conv3_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/3/concat" + type: "Concat" + bottom: "conv3_2/3/pre" + bottom: "conv3_2/3/neg" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/scale" + type: "Scale" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/3/relu" + type: "ReLU" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_2" + top: "conv3_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_3/1/pre" + top: "conv3_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/bn_scale" + type: "Scale" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/2/pre" + top: "conv3_3/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/2" + top: "conv3_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/neg" + type: "Power" + bottom: "conv3_3/3/pre" + top: "conv3_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/3/concat" + type: "Concat" + bottom: "conv3_3/3/pre" + bottom: "conv3_3/3/neg" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/scale" + type: "Scale" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/3/relu" + type: "ReLU" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_3" + top: "conv3_4/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_4/1/pre" + top: "conv3_4/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/bn_scale" + type: "Scale" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/2/pre" + top: "conv3_4/2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/2" + top: "conv3_4/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/neg" + type: "Power" + bottom: "conv3_4/3/pre" + top: "conv3_4/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/3/concat" + type: "Concat" + bottom: "conv3_4/3/pre" + bottom: "conv3_4/3/neg" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/scale" + type: "Scale" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/3/relu" + type: "ReLU" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/bn" + type: "BatchNorm" + bottom: "conv3_4" + top: "conv4_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/relu" + type: "ReLU" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/bn" + type: "BatchNorm" + bottom: "conv4_1" + top: "conv4_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/relu" + type: "ReLU" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/bn" + type: "BatchNorm" + bottom: "conv4_2" + top: "conv4_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/relu" + type: "ReLU" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/bn" + type: "BatchNorm" + bottom: "conv4_3" + top: "conv4_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/relu" + type: "ReLU" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/bn" + type: "BatchNorm" + bottom: "conv4_4" + top: "conv5_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/relu" + type: "ReLU" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/bn" + type: "BatchNorm" + bottom: "conv5_1" + top: "conv5_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/relu" + type: "ReLU" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/bn" + type: "BatchNorm" + bottom: "conv5_2" + top: "conv5_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/relu" + type: "ReLU" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/bn" + type: "BatchNorm" + bottom: "conv5_3" + top: "conv5_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/relu" + type: "ReLU" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/last_bn" + type: "BatchNorm" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/last_bn_scale" + type: "Scale" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/last_relu" + type: "ReLU" + bottom: "conv5_4" + top: "conv5_4" +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { kernel_size: 3 stride: 2 pad: 0 pool: MAX } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { lr_mult: 0 decay_mult: 0} + convolution_param { + num_output: 384 kernel_size: 4 pad: 1 stride: 2 group: 384 + weight_filler: {type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { axis: 1 } +} + +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} + + +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} + +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { axis: 1 } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 84 # 2(bg/fg) * 42(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 168 # 4 * 42(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' + include { phase: TRAIN } + python_param { + module: 'rpn.anchor_target_layer' + layer: 'AnchorTargetLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} +layer { + name: "rpn_loss_cls" + type: "SoftmaxWithLoss" + bottom: "rpn_cls_score_reshape" + bottom: "rpn_labels" + propagate_down: 1 + propagate_down: 0 + top: "rpn_loss_cls" + include { phase: TRAIN } + 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" + include { phase: TRAIN } + loss_weight: 1 + smooth_l1_loss_param { sigma: 3.0 } +} + +################################################################################ +## 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: 84 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' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} +layer { + name: 'mute_rpn_scores' + bottom: 'rpn_scores' + type: 'Silence' + include { phase: TRAIN } +} +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' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_target_layer' + layer: 'ProposalTargetLayer' + param_str: "'num_classes': 21" + } +} +layer { + name: 'proposal' + type: 'Python' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + include { phase: TEST } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 21 + 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.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 84 + 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" + include { phase: TRAIN } + loss_weight: 1 + loss_param { ignore_label: -1 normalize: true } +} +layer { + name: "loss_bbox" + type: "SmoothL1Loss" + bottom: "bbox_pred" + bottom: "bbox_targets" + bottom: "bbox_inside_weights" + bottom: "bbox_outside_weights" + top: "loss_bbox" + include { phase: TRAIN } + loss_weight: 1 +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" + include { phase: TEST } + loss_param { + ignore_label: -1 + normalize: true + } +} diff --git a/models/pvanet/pva9.1/faster_rcnn_train_test_ft_rcnn_only_plus_comp.pt b/models/pvanet/pva9.1/faster_rcnn_train_test_ft_rcnn_only_plus_comp.pt new file mode 100644 index 000000000..b0d4cea21 --- /dev/null +++ b/models/pvanet/pva9.1/faster_rcnn_train_test_ft_rcnn_only_plus_comp.pt @@ -0,0 +1,6740 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +layer { + name: 'input-data' + type: 'Python' + top: 'data' + top: 'im_info' + top: 'gt_boxes' + include { phase: TRAIN } + python_param { + module: 'roi_data_layer.layer' + layer: 'RoIDataLayer' + param_str: "'num_classes': 21" + } +} + +layer { + name: "input-data" + type: "DummyData" + top: "data" + top: "im_info" + include { phase: TEST } + dummy_data_param { + shape { dim: 1 dim: 3 dim: 224 dim: 224 } + shape { dim: 1 dim: 3 } + } +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/bn_scale" + type: "Scale" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2/pre" + top: "conv2_1/2/pre" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/2/pre" + top: "conv2_1/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/2" + top: "conv2_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/neg" + type: "Power" + bottom: "conv2_1/3/pre" + top: "conv2_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/3/concat" + type: "Concat" + bottom: "conv2_1/3/pre" + bottom: "conv2_1/3/neg" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/scale" + type: "Scale" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/3/relu" + type: "ReLU" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3/preAct" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/3/preAct" + top: "conv2_1/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_1" + top: "conv2_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1/pre" + top: "conv2_2/1/pre" +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_2/1/pre" + top: "conv2_2/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/bn_scale" + type: "Scale" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2/pre" + top: "conv2_2/2/pre" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/2/pre" + top: "conv2_2/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/2" + top: "conv2_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/neg" + type: "Power" + bottom: "conv2_2/3/pre" + top: "conv2_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/3/concat" + type: "Concat" + bottom: "conv2_2/3/pre" + bottom: "conv2_2/3/neg" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/scale" + type: "Scale" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/3/relu" + type: "ReLU" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3/preAct" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/3/preAct" + top: "conv2_2/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_2" + top: "conv2_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1/pre" + top: "conv2_3/1/pre" +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_3/1/pre" + top: "conv2_3/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/bn_scale" + type: "Scale" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2/pre" + top: "conv2_3/2/pre" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/2/pre" + top: "conv2_3/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/2" + top: "conv2_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/neg" + type: "Power" + bottom: "conv2_3/3/pre" + top: "conv2_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/3/concat" + type: "Concat" + bottom: "conv2_3/3/pre" + bottom: "conv2_3/3/neg" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/scale" + type: "Scale" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/3/relu" + type: "ReLU" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3/preAct" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/3/preAct" + top: "conv2_3/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv2_3" + top: "conv3_1/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1/pre" + top: "conv3_1/1/pre" +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/bn_scale" + type: "Scale" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2/pre" + top: "conv3_1/2/pre" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/2/pre" + top: "conv3_1/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/2" + top: "conv3_1/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/neg" + type: "Power" + bottom: "conv3_1/3/pre" + top: "conv3_1/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/3/concat" + type: "Concat" + bottom: "conv3_1/3/pre" + bottom: "conv3_1/3/neg" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/scale" + type: "Scale" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/3/relu" + type: "ReLU" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3/preAct" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/3/preAct" + top: "conv3_1/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv3_1/1/pre" + top: "conv3_1/proj" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_1" + top: "conv3_2/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1/pre" + top: "conv3_2/1/pre" +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_2/1/pre" + top: "conv3_2/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/bn_scale" + type: "Scale" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2/pre" + top: "conv3_2/2/pre" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/2/pre" + top: "conv3_2/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/2" + top: "conv3_2/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/neg" + type: "Power" + bottom: "conv3_2/3/pre" + top: "conv3_2/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/3/concat" + type: "Concat" + bottom: "conv3_2/3/pre" + bottom: "conv3_2/3/neg" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/scale" + type: "Scale" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/3/relu" + type: "ReLU" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3/preAct" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/3/preAct" + top: "conv3_2/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_2" + top: "conv3_3/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1/pre" + top: "conv3_3/1/pre" +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_3/1/pre" + top: "conv3_3/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/bn_scale" + type: "Scale" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2/pre" + top: "conv3_3/2/pre" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/2/pre" + top: "conv3_3/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/2" + top: "conv3_3/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/neg" + type: "Power" + bottom: "conv3_3/3/pre" + top: "conv3_3/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/3/concat" + type: "Concat" + bottom: "conv3_3/3/pre" + bottom: "conv3_3/3/neg" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/scale" + type: "Scale" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/3/relu" + type: "ReLU" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3/preAct" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/3/preAct" + top: "conv3_3/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_3" + top: "conv3_4/1/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1/pre" + top: "conv3_4/1/pre" +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_4/1/pre" + top: "conv3_4/1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/2/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/bn_scale" + type: "Scale" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2/pre" + top: "conv3_4/2/pre" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/2/pre" + top: "conv3_4/2" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/2" + top: "conv3_4/3/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/neg" + type: "Power" + bottom: "conv3_4/3/pre" + top: "conv3_4/3/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/3/concat" + type: "Concat" + bottom: "conv3_4/3/pre" + bottom: "conv3_4/3/neg" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/scale" + type: "Scale" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/3/relu" + type: "ReLU" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3/preAct" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/3/preAct" + top: "conv3_4/3" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/bn" + type: "BatchNorm" + bottom: "conv3_4" + top: "conv4_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/relu" + type: "ReLU" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pre" +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv4_1/incep/pre" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/bn" + type: "BatchNorm" + bottom: "conv4_1" + top: "conv4_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/relu" + type: "ReLU" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/pre" +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2/incep/pre" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/bn" + type: "BatchNorm" + bottom: "conv4_2" + top: "conv4_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/relu" + type: "ReLU" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/pre" +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3/incep/pre" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/bn" + type: "BatchNorm" + bottom: "conv4_3" + top: "conv4_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/relu" + type: "ReLU" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/pre" +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4/incep/pre" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/bn" + type: "BatchNorm" + bottom: "conv4_4" + top: "conv5_1/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/relu" + type: "ReLU" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pre" +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv5_1/incep/pre" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/bn" + type: "BatchNorm" + bottom: "conv5_1" + top: "conv5_2/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/relu" + type: "ReLU" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/pre" +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2/incep/pre" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/bn" + type: "BatchNorm" + bottom: "conv5_2" + top: "conv5_3/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/relu" + type: "ReLU" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/pre" +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3/incep/pre" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/bn" + type: "BatchNorm" + bottom: "conv5_3" + top: "conv5_4/incep/pre" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/relu" + type: "ReLU" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/pre" +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_4/incep/pre" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/last_bn" + type: "BatchNorm" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/last_bn_scale" + type: "Scale" + bottom: "conv5_4" + top: "conv5_4" + param { + lr_mult: 0.0 + decay_mult: 0 + } + param { + lr_mult: 0.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/last_relu" + type: "ReLU" + bottom: "conv5_4" + top: "conv5_4" +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { kernel_size: 3 stride: 2 pad: 0 pool: MAX } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { lr_mult: 0 decay_mult: 0} + convolution_param { + num_output: 384 kernel_size: 4 pad: 1 stride: 2 group: 384 + weight_filler: {type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { axis: 1 } +} + +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { lr_mult: 0.0 decay_mult: 0.0 } + param { lr_mult: 0.0 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} + + +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} + +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { axis: 1 } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 0.0 decay_mult: 0.0 } + param { lr_mult: 0.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 0.0 decay_mult: 0.0 } + param { lr_mult: 0.0 decay_mult: 0 } + convolution_param { + num_output: 84 # 2(bg/fg) * 42(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 0.0 decay_mult: 0.0 } + param { lr_mult: 0.0 decay_mult: 0 } + convolution_param { + num_output: 168 # 4 * 42(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 } } +} + +################################################################################ +## 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: 84 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' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} +layer { + name: 'mute_rpn_scores' + bottom: 'rpn_scores' + type: 'Silence' + include { phase: TRAIN } +} +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' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_target_layer' + layer: 'ProposalTargetLayer' + param_str: "'num_classes': 21" + } +} +layer { + name: 'proposal' + type: 'Python' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + include { phase: TEST } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.333, 0.5, 0.667, 1, 1.5, 2, 3], 'scales': [2, 3, 5, 9, 16, 32]}" + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6_L" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6_L" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + inner_product_param { + num_output: 512 + } +} +layer { + name: "fc6_U" + type: "InnerProduct" + bottom: "fc6_L" + top: "fc6" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7_L" + type: "InnerProduct" + bottom: "fc6" + top: "fc7_L" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + inner_product_param { + num_output: 512 + } +} +layer { + name: "fc7_U" + type: "InnerProduct" + bottom: "fc7_L" + top: "fc7" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 21 + 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.0 } + param { lr_mult: 2.0 } + inner_product_param { + num_output: 84 + 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" + include { phase: TRAIN } + loss_weight: 1 + loss_param { ignore_label: -1 normalize: true } +} +layer { + name: "loss_bbox" + type: "SmoothL1Loss" + bottom: "bbox_pred" + bottom: "bbox_targets" + bottom: "bbox_inside_weights" + bottom: "bbox_outside_weights" + top: "loss_bbox" + include { phase: TRAIN } + loss_weight: 1 +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" + include { phase: TEST } + loss_param { + ignore_label: -1 + normalize: true + } +} diff --git a/models/pvanet_obsolete/cfgs/100prop.yml b/models/pvanet_obsolete/cfgs/100prop.yml new file mode 100644 index 000000000..091fee441 --- /dev/null +++ b/models/pvanet_obsolete/cfgs/100prop.yml @@ -0,0 +1,9 @@ +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + SCALES: + - 640 + BBOX_VOTE: False + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 100 diff --git a/models/pvanet_obsolete/cfgs/200prop.yml b/models/pvanet_obsolete/cfgs/200prop.yml new file mode 100644 index 000000000..b8dafc98e --- /dev/null +++ b/models/pvanet_obsolete/cfgs/200prop.yml @@ -0,0 +1,9 @@ +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + SCALES: + - 640 + BBOX_VOTE: False + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 200 diff --git a/models/pvanet_obsolete/cfgs/300prop.yml b/models/pvanet_obsolete/cfgs/300prop.yml new file mode 100644 index 000000000..c35f3dca4 --- /dev/null +++ b/models/pvanet_obsolete/cfgs/300prop.yml @@ -0,0 +1,9 @@ +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + SCALES: + - 640 + BBOX_VOTE: False + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 300 diff --git a/models/pvanet_obsolete/cfgs/50prop.yml b/models/pvanet_obsolete/cfgs/50prop.yml new file mode 100644 index 000000000..a7223b256 --- /dev/null +++ b/models/pvanet_obsolete/cfgs/50prop.yml @@ -0,0 +1,9 @@ +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + SCALES: + - 640 + BBOX_VOTE: False + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 50 diff --git a/models/pvanet_obsolete/cfgs/submit_160715.yml b/models/pvanet_obsolete/cfgs/submit_160715.yml new file mode 100644 index 000000000..124112b30 --- /dev/null +++ b/models/pvanet_obsolete/cfgs/submit_160715.yml @@ -0,0 +1,9 @@ +TEST: + HAS_RPN: True + SCALE_MULTIPLE_OF: 32 + SCALES: + - 640 + BBOX_VOTE: True + NMS: 0.4 + RPN_PRE_NMS_TOP_N: 12000 + RPN_POST_NMS_TOP_N: 200 diff --git a/models/pvanet_obsolete/cfgs/train.yml b/models/pvanet_obsolete/cfgs/train.yml new file mode 100644 index 000000000..ab88fbc84 --- /dev/null +++ b/models/pvanet_obsolete/cfgs/train.yml @@ -0,0 +1,27 @@ +EXP_DIR: faster_rcnn_pvanet +TRAIN: + HAS_RPN: True + IMS_PER_BATCH: 1 + BBOX_NORMALIZE_TARGETS_PRECOMPUTED: True + RPN_POSITIVE_OVERLAP: 0.7 + RPN_BATCHSIZE: 256 + PROPOSAL_METHOD: gt + BG_THRESH_LO: 0.0 + SCALE_MULTIPLE_OF: 32 + MAX_SIZE: 1440 + SCALES: + - 416 + - 448 + - 480 + - 512 + - 544 + - 576 + - 608 + - 640 + - 672 + - 704 + - 736 + - 768 + - 800 + - 832 + - 864 diff --git a/models/pvanet_obsolete/comp/original.pt b/models/pvanet_obsolete/comp/original.pt new file mode 100644 index 000000000..2cb30bdb4 --- /dev/null +++ b/models/pvanet_obsolete/comp/original.pt @@ -0,0 +1,6447 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} + +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/1/bn_scale" + type: "Scale" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/bn_scale" + type: "Scale" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj_bn" + type: "BatchNorm" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/proj_bn_scale" + type: "Scale" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/bn_scale" + type: "Scale" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/bn_scale" + type: "Scale" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/bn_scale" + type: "Scale" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/proj_bn" + type: "BatchNorm" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/proj_bn_scale" + type: "Scale" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/bn_scale" + type: "Scale" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/bn_scale" + type: "Scale" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/bn_scale" + type: "Scale" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/out/bn" + type: "BatchNorm" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/out/bn_scale" + type: "Scale" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/proj_bn" + type: "BatchNorm" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/proj_bn_scale" + type: "Scale" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/out/bn" + type: "BatchNorm" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/out/bn_scale" + type: "Scale" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/out/bn" + type: "BatchNorm" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/out/bn_scale" + type: "Scale" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/out/bn" + type: "BatchNorm" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/out/bn_scale" + type: "Scale" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/out/bn" + type: "BatchNorm" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/out/bn_scale" + type: "Scale" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/proj_bn" + type: "BatchNorm" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/proj_bn_scale" + type: "Scale" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/out/bn" + type: "BatchNorm" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/out/bn_scale" + type: "Scale" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/out/bn" + type: "BatchNorm" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/out/bn_scale" + type: "Scale" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { + axis: 1 + } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6_L" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6_L" + inner_product_param { + num_output: 512 + bias_term: false + } +} +layer { + name: "fc6_U" + type: "InnerProduct" + bottom: "fc6_L" + top: "fc6_U" + inner_product_param { + num_output: 4096 + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6_U" + top: "fc6_U" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6_U" + top: "fc6_U" +} +layer { + name: "fc7_L" + type: "InnerProduct" + bottom: "fc6_U" + top: "fc7_L" + inner_product_param { + num_output: 512 + bias_term: false + } +} +layer { + name: "fc7_U" + type: "InnerProduct" + bottom: "fc7_L" + top: "fc7_U" + inner_product_param { + num_output: 4096 + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7_U" + top: "fc7_U" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7_U" + top: "fc7_U" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7_U" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "bbox_pred" + type: "InnerProduct" + bottom: "fc7_U" + top: "bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" +} diff --git a/models/pvanet_obsolete/comp/test.pt b/models/pvanet_obsolete/comp/test.pt new file mode 100644 index 000000000..4e0f21753 --- /dev/null +++ b/models/pvanet_obsolete/comp/test.pt @@ -0,0 +1,3251 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_1" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_2" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_1" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_2" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_3" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_1" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_2" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_3" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_1" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_2" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_3" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { + axis: 1 + } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6_L" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6_L" + inner_product_param { + num_output: 512 + bias_term: false + } +} +layer { + name: "fc6_U" + type: "InnerProduct" + bottom: "fc6_L" + top: "fc6_U" + inner_product_param { + num_output: 4096 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6_U" + top: "fc6_U" +} +layer { + name: "fc7_L" + type: "InnerProduct" + bottom: "fc6_U" + top: "fc7_L" + inner_product_param { + num_output: 512 + bias_term: false + } +} +layer { + name: "fc7_U" + type: "InnerProduct" + bottom: "fc7_L" + top: "fc7_U" + inner_product_param { + num_output: 4096 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7_U" + top: "fc7_U" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7_U" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "bbox_pred" + type: "InnerProduct" + bottom: "fc7_U" + top: "bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" +} diff --git a/models/pvanet_obsolete/download_imagenet_models.sh b/models/pvanet_obsolete/download_imagenet_models.sh new file mode 100755 index 000000000..5e6a65cdf --- /dev/null +++ b/models/pvanet_obsolete/download_imagenet_models.sh @@ -0,0 +1,3 @@ +#/bin/bash +wget https://www.dropbox.com/s/2xsfg8vqmhv9p84/test.model?dl=0 -O models/pvanet/imagenet/test.model +wget https://www.dropbox.com/s/l11v2uh05pjejws/original.model?dl=0 -O models/pvanet/imagenet/original.model diff --git a/models/pvanet_obsolete/download_lite_models.sh b/models/pvanet_obsolete/download_lite_models.sh new file mode 100755 index 000000000..b55b210c8 --- /dev/null +++ b/models/pvanet_obsolete/download_lite_models.sh @@ -0,0 +1,3 @@ +#/bin/bash +wget https://www.dropbox.com/s/38g96yh51afzj7c/test_690K.model?dl=0 -O models/pvanet/lite/test.model +wget https://www.dropbox.com/s/4j27cjkv5t7danz/original_690K.model?dl=0 -O models/pvanet/lite/original.model diff --git a/models/pvanet_obsolete/download_models.sh b/models/pvanet_obsolete/download_models.sh new file mode 100755 index 000000000..ca4572f9f --- /dev/null +++ b/models/pvanet_obsolete/download_models.sh @@ -0,0 +1,3 @@ +#/bin/bash +wget https://www.dropbox.com/s/87zu4y6cvgeu8vs/test.model?dl=0 -O models/pvanet/full/test.model +wget https://www.dropbox.com/s/aphfzyc9plg5mvx/test.model?dl=0 -O models/pvanet/comp/test.model diff --git a/models/pvanet_obsolete/download_original_models.sh b/models/pvanet_obsolete/download_original_models.sh new file mode 100755 index 000000000..e9d3fa8b2 --- /dev/null +++ b/models/pvanet_obsolete/download_original_models.sh @@ -0,0 +1,3 @@ +#/bin/bash +wget https://www.dropbox.com/s/v7ccvm61q5htxha/original.model?dl=0 -O models/pvanet/full/original.model +wget https://www.dropbox.com/s/eqokl27ohk6au51/original.model?dl=0 -O models/pvanet/comp/original.model diff --git a/models/pvanet_obsolete/example_finetune/README.md b/models/pvanet_obsolete/example_finetune/README.md new file mode 100644 index 000000000..4ca9e5453 --- /dev/null +++ b/models/pvanet_obsolete/example_finetune/README.md @@ -0,0 +1,27 @@ +## PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection +by Kye-Hyeon Kim, Sanghoon Hong, Byungseok Roh, Yeongjae Cheon, Minje Park (Intel Imaging and Camera Technology) + +### Notes +- The training of PVANet 9.0 on the VOC2012 leaderboard wasn't done with this code. + +### Sample command +- Training for 100k iterations (toy) + ``` + tools/train_net.py + --gpu 0 + --solver models/pvanet/example_finetune/solver.prototxt + --weights models/pvanet/full/test.model + --iters 100000 + --cfg models/pvanet/cfgs/train.yml + --imdb voc_2007_trainval + ``` + +- Testing + + ``` + tools/test_net.py + --gpu 0 + --def models/pvanet/example_finetune/test.prototxt + --net output/faster_rcnn_pvanet/voc_2007_trainval/pvanet_frcnn_iter_100000.caffemodel + --cfg models/pvanet/cfgs/submit_160715.yml + ``` diff --git a/models/pvanet_obsolete/example_finetune/solver.prototxt b/models/pvanet_obsolete/example_finetune/solver.prototxt new file mode 100644 index 000000000..875f1f04b --- /dev/null +++ b/models/pvanet_obsolete/example_finetune/solver.prototxt @@ -0,0 +1,18 @@ +train_net: "models/pvanet/example_finetune/train.prototxt" + +base_lr: 0.0001 +lr_policy: "step" +gamma: 0.1 +stepsize: 50000 +display: 20 +average_loss: 100 +momentum: 0.9 +weight_decay: 0.0002 + + +# We disable standard caffe solver snapshotting and implement our own snapshot +# function +snapshot: 0 +# We still use the snapshot prefix, though +snapshot_prefix: "pvanet_frcnn" +iter_size: 2 diff --git a/models/pvanet_obsolete/example_finetune/test.prototxt b/models/pvanet_obsolete/example_finetune/test.prototxt new file mode 100644 index 000000000..a4af50881 --- /dev/null +++ b/models/pvanet_obsolete/example_finetune/test.prototxt @@ -0,0 +1,3261 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_1" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_2" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_1" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_2" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_3" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_1" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_2" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_3" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_1" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_2" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_3" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { + axis: 1 + } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + 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.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" +} diff --git a/models/pvanet_obsolete/example_finetune/train.prototxt b/models/pvanet_obsolete/example_finetune/train.prototxt new file mode 100644 index 000000000..9aadfe23f --- /dev/null +++ b/models/pvanet_obsolete/example_finetune/train.prototxt @@ -0,0 +1,3357 @@ +name: "PVANET" +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': 21" + } +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_1" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_2" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_1" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_2" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_3" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_1" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_2" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_3" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_1" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_2" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_3" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { + axis: 1 + } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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, 'scales': [3, 6, 9, 16, 32], 'ratios': [0.5, 0.667, 1.0, 1.5, 2.0]}" + } +} +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: 50 dim: -1 dim: 0 } } +} +# C++ implementation of the proposal layer +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rpn_rois' + top: 'rpn_scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} +layer { + name: 'mute_rpn_scores' + bottom: 'rpn_scores' + type: 'Silence' +} + +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': 21" + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.25 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + 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.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + 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: "cls_loss" + loss_weight: 1 + loss_param { + ignore_label: -1 + normalize: true + } +} +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 +} diff --git a/models/pvanet_obsolete/example_train_384/README.md b/models/pvanet_obsolete/example_train_384/README.md new file mode 100644 index 000000000..c9396893a --- /dev/null +++ b/models/pvanet_obsolete/example_train_384/README.md @@ -0,0 +1,30 @@ +## PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection +by Kye-Hyeon Kim, Sanghoon Hong, Byungseok Roh, Yeongjae Cheon, Minje Park (Intel Imaging and Camera Technology) + +### Notes +- The training of PVANet 9.0 on the VOC2012 leaderboard wasn't done with this code. +- PVANet pre-trained model contains a FC6 layer with a 6x6x384-shaped input. Therefore, layers in this training example generates **a hyper feature with the depth of 384** which is different from the one in the arXiv article. +- For better detection results, **fine-tuning the existing PVANet** is recommended (see example_finetune). + +### Sample command +- Training for 100k iterations (toy) + ``` + tools/train_net.py + --gpu 0 + --solver models/pvanet/example_train_384/solver.prototxt + --weights models/pvanet/imagenet/original.model + --iters 100000 + --cfg models/pvanet/cfgs/train.yml + --imdb voc_2007_trainval + ``` + +- Testing + + ``` + tools/test_net.py + --gpu 0 + --def models/pvanet/example_train_384/test.prototxt + --net output/faster_rcnn_pvanet/voc_2007_trainval/pvanet_frcnn_384_iter_100000.caffemodel + --cfg models/pvanet/cfgs/submit_160715.yml + ``` + diff --git a/models/pvanet_obsolete/example_train_384/solver.prototxt b/models/pvanet_obsolete/example_train_384/solver.prototxt new file mode 100644 index 000000000..9b5f2f14b --- /dev/null +++ b/models/pvanet_obsolete/example_train_384/solver.prototxt @@ -0,0 +1,18 @@ +train_net: "models/pvanet/example_train_384/train.prototxt" + +base_lr: 0.001 +lr_policy: "step" +gamma: 0.1 +stepsize: 50000 +display: 20 +average_loss: 100 +momentum: 0.9 +weight_decay: 0.0002 + + +# We disable standard caffe solver snapshotting and implement our own snapshot +# function +snapshot: 0 +# We still use the snapshot prefix, though +snapshot_prefix: "pvanet_frcnn_384" +iter_size: 2 diff --git a/models/pvanet_obsolete/example_train_384/test.prototxt b/models/pvanet_obsolete/example_train_384/test.prototxt new file mode 100644 index 000000000..c751041a3 --- /dev/null +++ b/models/pvanet_obsolete/example_train_384/test.prototxt @@ -0,0 +1,6491 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} + +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/1/bn_scale" + type: "Scale" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/bn_scale" + type: "Scale" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj_bn" + type: "BatchNorm" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/proj_bn_scale" + type: "Scale" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/bn_scale" + type: "Scale" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/bn_scale" + type: "Scale" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/bn_scale" + type: "Scale" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/proj_bn" + type: "BatchNorm" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/proj_bn_scale" + type: "Scale" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/bn_scale" + type: "Scale" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/bn_scale" + type: "Scale" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/bn_scale" + type: "Scale" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/out/bn" + type: "BatchNorm" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/out/bn_scale" + type: "Scale" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/proj_bn" + type: "BatchNorm" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/proj_bn_scale" + type: "Scale" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/out/bn" + type: "BatchNorm" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/out/bn_scale" + type: "Scale" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/out/bn" + type: "BatchNorm" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/out/bn_scale" + type: "Scale" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/out/bn" + type: "BatchNorm" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/out/bn_scale" + type: "Scale" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/out/bn" + type: "BatchNorm" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/out/bn_scale" + type: "Scale" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/proj_bn" + type: "BatchNorm" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/proj_bn_scale" + type: "Scale" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/out/bn" + type: "BatchNorm" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/out/bn_scale" + type: "Scale" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/out/bn" + type: "BatchNorm" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/out/bn_scale" + type: "Scale" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf" + type: "Convolution" + bottom: "concat" + top: "convf" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf" + type: "ReLU" + bottom: "convf" + top: "convf" +} + + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/bn_scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/bn_scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + 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.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" +} diff --git a/models/pvanet_obsolete/example_train_384/train.prototxt b/models/pvanet_obsolete/example_train_384/train.prototxt new file mode 100644 index 000000000..3793affa5 --- /dev/null +++ b/models/pvanet_obsolete/example_train_384/train.prototxt @@ -0,0 +1,6539 @@ +name: "PVANet" +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': 21" + } +} + + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/1/bn_scale" + type: "Scale" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/bn_scale" + type: "Scale" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj_bn" + type: "BatchNorm" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/proj_bn_scale" + type: "Scale" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/bn_scale" + type: "Scale" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/bn_scale" + type: "Scale" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/bn_scale" + type: "Scale" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/proj_bn" + type: "BatchNorm" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/proj_bn_scale" + type: "Scale" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/bn_scale" + type: "Scale" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/bn_scale" + type: "Scale" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/bn_scale" + type: "Scale" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/out/bn" + type: "BatchNorm" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/out/bn_scale" + type: "Scale" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/proj_bn" + type: "BatchNorm" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/proj_bn_scale" + type: "Scale" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/out/bn" + type: "BatchNorm" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/out/bn_scale" + type: "Scale" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/out/bn" + type: "BatchNorm" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/out/bn_scale" + type: "Scale" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/out/bn" + type: "BatchNorm" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/out/bn_scale" + type: "Scale" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/out/bn" + type: "BatchNorm" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/out/bn_scale" + type: "Scale" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/proj_bn" + type: "BatchNorm" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/proj_bn_scale" + type: "Scale" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/out/bn" + type: "BatchNorm" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/out/bn_scale" + type: "Scale" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/out/bn" + type: "BatchNorm" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/out/bn_scale" + type: "Scale" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { kernel_size: 3 stride: 2 pad: 0 pool: MAX } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { lr_mult: 0 decay_mult: 0} + convolution_param { + num_output: 384 kernel_size: 4 pad: 1 stride: 2 group: 384 + weight_filler: {type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { axis: 1 } +} + +layer { + name: "convf" + type: "Convolution" + bottom: "concat" + top: "convf" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 1 pad: 0 stride: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf" + type: "ReLU" + bottom: "convf" + top: "convf" +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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, 'scales': [3, 6, 9, 16, 32], 'ratios': [0.5, 0.667, 1.0, 1.5, 2.0]}" + } +} +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: 50 dim: -1 dim: 0 } } +} +# C++ implementation of the proposal layer +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rpn_rois' + top: 'rpn_scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} +layer { + name: 'mute_rpn_scores' + bottom: 'rpn_scores' + type: 'Silence' +} + +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': 21" + } +} + +#========= RCNN ============ + +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/bn_scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/bn_scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + 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.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + 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: "cls_loss" + loss_weight: 1 + loss_param { + ignore_label: -1 + normalize: true + } +} +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 +} diff --git a/models/pvanet_obsolete/full/original.pt b/models/pvanet_obsolete/full/original.pt new file mode 100644 index 000000000..75a15e0bd --- /dev/null +++ b/models/pvanet_obsolete/full/original.pt @@ -0,0 +1,6533 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} + +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/1/bn_scale" + type: "Scale" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/3/bn_scale" + type: "Scale" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj_bn" + type: "BatchNorm" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_1/proj_bn_scale" + type: "Scale" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_2/3/bn_scale" + type: "Scale" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/input" + type: "Power" + bottom: "conv2_1" + top: "conv2_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_2/input" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv2_3/3/bn_scale" + type: "Scale" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/input" + type: "Power" + bottom: "conv2_2" + top: "conv2_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_3/input" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/3/bn_scale" + type: "Scale" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/proj_bn" + type: "BatchNorm" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_1/proj_bn_scale" + type: "Scale" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_2/3/bn_scale" + type: "Scale" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/input" + type: "Power" + bottom: "conv3_1" + top: "conv3_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_2/input" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_3/3/bn_scale" + type: "Scale" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/input" + type: "Power" + bottom: "conv3_2" + top: "conv3_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_3/input" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/conv" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv3_4/3/bn_scale" + type: "Scale" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/input" + type: "Power" + bottom: "conv3_3" + top: "conv3_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_4/input" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/out/bn" + type: "BatchNorm" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/out/bn_scale" + type: "Scale" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/proj_bn" + type: "BatchNorm" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_1/proj_bn_scale" + type: "Scale" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/out/bn" + type: "BatchNorm" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_2/out/bn_scale" + type: "Scale" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/input" + type: "Power" + bottom: "conv4_1" + top: "conv4_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_2/input" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/out/bn" + type: "BatchNorm" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_3/out/bn_scale" + type: "Scale" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/input" + type: "Power" + bottom: "conv4_2" + top: "conv4_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_3/input" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/out/bn" + type: "BatchNorm" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv4_4/out/bn_scale" + type: "Scale" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/input" + type: "Power" + bottom: "conv4_3" + top: "conv4_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_4/input" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/out/bn" + type: "BatchNorm" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/out/bn_scale" + type: "Scale" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/proj_bn" + type: "BatchNorm" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_1/proj_bn_scale" + type: "Scale" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/out/bn" + type: "BatchNorm" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_2/out/bn_scale" + type: "Scale" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/input" + type: "Power" + bottom: "conv5_1" + top: "conv5_2/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_2/input" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/out/bn" + type: "BatchNorm" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_3/out/bn_scale" + type: "Scale" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/input" + type: "Power" + bottom: "conv5_2" + top: "conv5_3/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_3/input" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.1 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/input" + type: "Power" + bottom: "conv5_3" + top: "conv5_4/input" + power_param { + power: 1 + scale: 1 + shift: 0 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_4/input" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { + axis: 1 + } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc6/scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + param { + lr_mult: 0 + decay_mult: 0 + } + batch_norm_param { + use_global_stats: true + } +} +layer { + name: "fc7/scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + 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.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" +} diff --git a/models/pvanet_obsolete/full/test.pt b/models/pvanet_obsolete/full/test.pt new file mode 100644 index 000000000..a4af50881 --- /dev/null +++ b/models/pvanet_obsolete/full/test.pt @@ -0,0 +1,3261 @@ +name: "PVANET" + +################################################################################ +## Input +################################################################################ + +input: "data" +input_shape { + dim: 1 + dim: 3 + dim: 640 + dim: 1056 +} +input: "im_info" +input_shape { + dim: 1 + dim: 6 +} + +################################################################################ +## Convolution +################################################################################ + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 16 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_1" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_2" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_1" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_2" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 0.1 + decay_mult: 0 + } + param { + lr_mult: 0.2 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_3" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_1" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_2" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 24 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 48 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 256 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_3" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 128 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + param { + lr_mult: 0.2 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_1" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_2" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 96 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 192 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 32 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 64 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 0.1 + decay_mult: 0.1 + } + convolution_param { + num_output: 384 + bias_term: true + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_3" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} + +### hyper feature ### +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3_4" + top: "downsample" + pooling_param { + kernel_size: 3 + stride: 2 + pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "conv5_4" + top: "upsample" + param { + lr_mult: 0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 4 + pad: 1 + stride: 2 + group: 384 + bias_term: false + weight_filler: { + type: "bilinear" + } + } +} +layer { + name: "concat" + bottom: "downsample" + bottom: "conv4_4" + bottom: "upsample" + top: "concat" + type: "Concat" + concat_param { + axis: 1 + } +} +layer { + name: "convf_rpn" + type: "Convolution" + bottom: "concat" + top: "convf_rpn" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 128 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_rpn" + type: "ReLU" + bottom: "convf_rpn" + top: "convf_rpn" +} +layer { + name: "convf_2" + type: "Convolution" + bottom: "concat" + top: "convf_2" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + convolution_param { + num_output: 384 + kernel_size: 1 + pad: 0 + stride: 1 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "reluf_2" + type: "ReLU" + bottom: "convf_2" + top: "convf_2" +} +layer { + name: "concat_convf" + bottom: "convf_rpn" + bottom: "convf_2" + top: "convf" + type: "Concat" + concat_param { + axis: 1 + } +} + +################################################################################ +## RPN +################################################################################ + +### RPN conv ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf_rpn" + top: "rpn_conv1" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 384 kernel_size: 3 pad: 1 stride: 1 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 50 # 2(bg/fg) * 25(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_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + convolution_param { + num_output: 100 # 4 * 25(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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 12000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 + pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7" + top: "cls_score" + param { lr_mult: 1.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 21 + 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.0 decay_mult: 1.0 } + param { lr_mult: 2.0 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" +} diff --git a/models/pvanet_obsolete/imagenet/original.pt b/models/pvanet_obsolete/imagenet/original.pt new file mode 100644 index 000000000..ef5b5c158 --- /dev/null +++ b/models/pvanet_obsolete/imagenet/original.pt @@ -0,0 +1,4963 @@ +# Layer Mega MAC Output H,W Output Ch +# ------------------------------------------------- +# data , 0.00 MMAC, 640, 3 +# conv1_1 , 240.84 MMAC, 320, 32 +# pool1 , 0.00 MMAC, 160, 32 +# conv2_1 , 283.44 MMAC, 160, 64 +# conv2_2 , 250.68 MMAC, 160, 64 +# conv2_3 , 250.68 MMAC, 160, 64 +# conv3_1 , 283.44 MMAC, 80, 128 +# conv3_2 , 250.68 MMAC, 80, 128 +# conv3_3 , 250.68 MMAC, 80, 128 +# conv3_4 , 250.68 MMAC, 80, 128 +# conv4_1 , 395.47 MMAC, 40, 256 +# conv4_2 , 328.29 MMAC, 40, 256 +# conv4_3 , 328.29 MMAC, 40, 256 +# conv4_4 , 328.29 MMAC, 40, 256 +# conv5_1 , 229.38 MMAC, 20, 384 +# conv5_2 , 167.12 MMAC, 20, 384 +# conv5_3 , 167.12 MMAC, 20, 384 +# conv5_4 , 167.12 MMAC, 20, 384 +# pool5 , 0.00 MMAC, 20, 384 +# ------------------------------------------------- +# Total: 4.17 GMAC + +name: "PVANET_ImageNet" +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + crop_size: 192 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "data/imagenet/ilsvrc12_train_lmdb" + batch_size: 72 + backend: LMDB + } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TEST + } + transform_param { + mirror: false + crop_size: 192 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "data/imagenet/ilsvrc12_val_lmdb" + batch_size: 32 + backend: LMDB + } +} + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 16 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/bn" + type: "BatchNorm" + bottom: "conv1_1/conv" + top: "conv1_1/conv" +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/bn" + type: "BatchNorm" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/1/bn_scale" + type: "Scale" + bottom: "conv2_1/1" + top: "conv2_1/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/bn" + type: "BatchNorm" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/conv" +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/3/bn" + type: "BatchNorm" + bottom: "conv2_1/3" + top: "conv2_1/3" +} +layer { + name: "conv2_1/3/bn_scale" + type: "Scale" + bottom: "conv2_1/3" + top: "conv2_1/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj_bn" + type: "BatchNorm" + bottom: "conv2_1/proj" + top: "conv2_1/proj" +} +layer { + name: "conv2_1/proj_bn_scale" + type: "Scale" + bottom: "conv2_1/proj" + top: "conv2_1/proj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/bn" + type: "BatchNorm" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/1/bn_scale" + type: "Scale" + bottom: "conv2_2/1" + top: "conv2_2/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/bn" + type: "BatchNorm" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/conv" +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/3/bn" + type: "BatchNorm" + bottom: "conv2_2/3" + top: "conv2_2/3" +} +layer { + name: "conv2_2/3/bn_scale" + type: "Scale" + bottom: "conv2_2/3" + top: "conv2_2/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_1" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/bn" + type: "BatchNorm" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/1/bn_scale" + type: "Scale" + bottom: "conv2_3/1" + top: "conv2_3/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/bn" + type: "BatchNorm" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/conv" +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/3/bn" + type: "BatchNorm" + bottom: "conv2_3/3" + top: "conv2_3/3" +} +layer { + name: "conv2_3/3/bn_scale" + type: "Scale" + bottom: "conv2_3/3" + top: "conv2_3/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_2" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/bn" + type: "BatchNorm" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/1/bn_scale" + type: "Scale" + bottom: "conv3_1/1" + top: "conv3_1/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/bn" + type: "BatchNorm" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/conv" +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/3/bn" + type: "BatchNorm" + bottom: "conv3_1/3" + top: "conv3_1/3" +} +layer { + name: "conv3_1/3/bn_scale" + type: "Scale" + bottom: "conv3_1/3" + top: "conv3_1/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/proj_bn" + type: "BatchNorm" + bottom: "conv3_1/proj" + top: "conv3_1/proj" +} +layer { + name: "conv3_1/proj_bn_scale" + type: "Scale" + bottom: "conv3_1/proj" + top: "conv3_1/proj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/bn" + type: "BatchNorm" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/1/bn_scale" + type: "Scale" + bottom: "conv3_2/1" + top: "conv3_2/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/bn" + type: "BatchNorm" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/conv" +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/3/bn" + type: "BatchNorm" + bottom: "conv3_2/3" + top: "conv3_2/3" +} +layer { + name: "conv3_2/3/bn_scale" + type: "Scale" + bottom: "conv3_2/3" + top: "conv3_2/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_1" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/bn" + type: "BatchNorm" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/1/bn_scale" + type: "Scale" + bottom: "conv3_3/1" + top: "conv3_3/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/bn" + type: "BatchNorm" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/conv" +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/3/bn" + type: "BatchNorm" + bottom: "conv3_3/3" + top: "conv3_3/3" +} +layer { + name: "conv3_3/3/bn_scale" + type: "Scale" + bottom: "conv3_3/3" + top: "conv3_3/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_2" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/bn" + type: "BatchNorm" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/1/bn_scale" + type: "Scale" + bottom: "conv3_4/1" + top: "conv3_4/1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/bn" + type: "BatchNorm" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/conv" +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/3/bn" + type: "BatchNorm" + bottom: "conv3_4/3" + top: "conv3_4/3" +} +layer { + name: "conv3_4/3/bn_scale" + type: "Scale" + bottom: "conv3_4/3" + top: "conv3_4/3" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_3" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/out/bn" + type: "BatchNorm" + bottom: "conv4_1/out" + top: "conv4_1/out" +} +layer { + name: "conv4_1/out/bn_scale" + type: "Scale" + bottom: "conv4_1/out" + top: "conv4_1/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/proj_bn" + type: "BatchNorm" + bottom: "conv4_1/proj" + top: "conv4_1/proj" +} +layer { + name: "conv4_1/proj_bn_scale" + type: "Scale" + bottom: "conv4_1/proj" + top: "conv4_1/proj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/out/bn" + type: "BatchNorm" + bottom: "conv4_2/out" + top: "conv4_2/out" +} +layer { + name: "conv4_2/out/bn_scale" + type: "Scale" + bottom: "conv4_2/out" + top: "conv4_2/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_1" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/out/bn" + type: "BatchNorm" + bottom: "conv4_3/out" + top: "conv4_3/out" +} +layer { + name: "conv4_3/out/bn_scale" + type: "Scale" + bottom: "conv4_3/out" + top: "conv4_3/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_2" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/out/bn" + type: "BatchNorm" + bottom: "conv4_4/out" + top: "conv4_4/out" +} +layer { + name: "conv4_4/out/bn_scale" + type: "Scale" + bottom: "conv4_4/out" + top: "conv4_4/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_3" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/bn" + type: "BatchNorm" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep/poolproj/bn_scale" + type: "Scale" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/out/bn" + type: "BatchNorm" + bottom: "conv5_1/out" + top: "conv5_1/out" +} +layer { + name: "conv5_1/out/bn_scale" + type: "Scale" + bottom: "conv5_1/out" + top: "conv5_1/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/proj_bn" + type: "BatchNorm" + bottom: "conv5_1/proj" + top: "conv5_1/proj" +} +layer { + name: "conv5_1/proj_bn_scale" + type: "Scale" + bottom: "conv5_1/proj" + top: "conv5_1/proj" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/out/bn" + type: "BatchNorm" + bottom: "conv5_2/out" + top: "conv5_2/out" +} +layer { + name: "conv5_2/out/bn_scale" + type: "Scale" + bottom: "conv5_2/out" + top: "conv5_2/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_1" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/out/bn" + type: "BatchNorm" + bottom: "conv5_3/out" + top: "conv5_3/out" +} +layer { + name: "conv5_3/out/bn_scale" + type: "Scale" + bottom: "conv5_3/out" + top: "conv5_3/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_2" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/1_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_reduce/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_0/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/bn" + type: "BatchNorm" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep/2_1/bn_scale" + type: "Scale" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_term: false + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/out/bn" + type: "BatchNorm" + bottom: "conv5_4/out" + top: "conv5_4/out" +} +layer { + name: "conv5_4/out/bn_scale" + type: "Scale" + bottom: "conv5_4/out" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_3" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5_4" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 1 + stride: 1 + pad: 0 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/bn" + type: "BatchNorm" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc6/bn_scale" + type: "Scale" + bottom: "fc6" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc6/dropout" + type: "Dropout" + bottom: "fc6" + top: "fc6" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/bn" + type: "BatchNorm" + bottom: "fc7" + top: "fc7" +} +layer { + name: "fc7/bn_scale" + type: "Scale" + bottom: "fc7" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 1.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "fc7/dropout" + type: "Dropout" + bottom: "fc7" + top: "fc7" + dropout_param { + dropout_ratio: 0.5 + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} + + +layer { + name: "fc8" + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + param { lr_mult: 1.0 decay_mult: 1.0 } + inner_product_param { + num_output: 1000 + weight_filler { type: "xavier" } + bias_filler { type: "constant" value: 0.1 } + } +} + +### Loss +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss" +} + +layer { + name: "accuracy" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy" + include { + phase: TEST + } + accuracy_param { + top_k: 1 + } +} + +layer { + name: "accuracy_top5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy_top5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } +} diff --git a/models/pvanet_obsolete/imagenet/test.pt b/models/pvanet_obsolete/imagenet/test.pt new file mode 100644 index 000000000..82e4ff75d --- /dev/null +++ b/models/pvanet_obsolete/imagenet/test.pt @@ -0,0 +1,3103 @@ +# Layer Mega MAC Output H,W Output Ch +# ------------------------------------------------- +# data , 0.00 MMAC, 640, 3 +# conv1_1 , 240.84 MMAC, 320, 32 +# pool1 , 0.00 MMAC, 160, 32 +# conv2_1 , 283.44 MMAC, 160, 64 +# conv2_2 , 250.68 MMAC, 160, 64 +# conv2_3 , 250.68 MMAC, 160, 64 +# conv3_1 , 283.44 MMAC, 80, 128 +# conv3_2 , 250.68 MMAC, 80, 128 +# conv3_3 , 250.68 MMAC, 80, 128 +# conv3_4 , 250.68 MMAC, 80, 128 +# conv4_1 , 395.47 MMAC, 40, 256 +# conv4_2 , 328.29 MMAC, 40, 256 +# conv4_3 , 328.29 MMAC, 40, 256 +# conv4_4 , 328.29 MMAC, 40, 256 +# conv5_1 , 229.38 MMAC, 20, 384 +# conv5_2 , 167.12 MMAC, 20, 384 +# conv5_3 , 167.12 MMAC, 20, 384 +# conv5_4 , 167.12 MMAC, 20, 384 +# pool5 , 0.00 MMAC, 20, 384 +# ------------------------------------------------- +# Total: 4.17 GMAC + +name: "PVANET_ImageNet" +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TRAIN + } + transform_param { + mirror: true + crop_size: 192 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "data/imagenet/ilsvrc12_train_lmdb" + batch_size: 72 + backend: LMDB + } +} +layer { + name: "data" + type: "Data" + top: "data" + top: "label" + include { + phase: TEST + } + transform_param { + mirror: false + crop_size: 192 + mean_value: 104 + mean_value: 117 + mean_value: 123 + } + data_param { + source: "data/imagenet/ilsvrc12_val_lmdb" + batch_size: 50 + backend: LMDB + } +} + +layer { + name: "conv1_1/conv" + type: "Convolution" + bottom: "data" + top: "conv1_1/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 16 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 3 + pad_w: 3 + kernel_h: 7 + kernel_w: 7 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv1_1/neg" + type: "Power" + bottom: "conv1_1/conv" + top: "conv1_1/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv1_1/concat" + type: "Concat" + bottom: "conv1_1/conv" + bottom: "conv1_1/neg" + top: "conv1_1" +} +layer { + name: "conv1_1/scale" + type: "Scale" + bottom: "conv1_1" + top: "conv1_1" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv1_1/relu" + type: "ReLU" + bottom: "conv1_1" + top: "conv1_1" +} +layer { + name: "pool1" + type: "Pooling" + bottom: "conv1_1" + top: "pool1" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv2_1/1/conv" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/1/relu" + type: "ReLU" + bottom: "conv2_1/1" + top: "conv2_1/1" +} +layer { + name: "conv2_1/2/conv" + type: "Convolution" + bottom: "conv2_1/1" + top: "conv2_1/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/2/neg" + type: "Power" + bottom: "conv2_1/2/conv" + top: "conv2_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_1/2/concat" + type: "Concat" + bottom: "conv2_1/2/conv" + bottom: "conv2_1/2/neg" + top: "conv2_1/2" +} +layer { + name: "conv2_1/2/scale" + type: "Scale" + bottom: "conv2_1/2" + top: "conv2_1/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_1/2/relu" + type: "ReLU" + bottom: "conv2_1/2" + top: "conv2_1/2" +} +layer { + name: "conv2_1/3/conv" + type: "Convolution" + bottom: "conv2_1/2" + top: "conv2_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1/proj" + type: "Convolution" + bottom: "pool1" + top: "conv2_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 64 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_1" + type: "Eltwise" + bottom: "conv2_1/3" + bottom: "conv2_1/proj" + top: "conv2_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_2/1/conv" + type: "Convolution" + bottom: "conv2_1" + top: "conv2_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/1/relu" + type: "ReLU" + bottom: "conv2_2/1" + top: "conv2_2/1" +} +layer { + name: "conv2_2/2/conv" + type: "Convolution" + bottom: "conv2_2/1" + top: "conv2_2/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2/2/neg" + type: "Power" + bottom: "conv2_2/2/conv" + top: "conv2_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_2/2/concat" + type: "Concat" + bottom: "conv2_2/2/conv" + bottom: "conv2_2/2/neg" + top: "conv2_2/2" +} +layer { + name: "conv2_2/2/scale" + type: "Scale" + bottom: "conv2_2/2" + top: "conv2_2/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_2/2/relu" + type: "ReLU" + bottom: "conv2_2/2" + top: "conv2_2/2" +} +layer { + name: "conv2_2/3/conv" + type: "Convolution" + bottom: "conv2_2/2" + top: "conv2_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_2" + type: "Eltwise" + bottom: "conv2_2/3" + bottom: "conv2_1" + top: "conv2_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv2_3/1/conv" + type: "Convolution" + bottom: "conv2_2" + top: "conv2_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/1/relu" + type: "ReLU" + bottom: "conv2_3/1" + top: "conv2_3/1" +} +layer { + name: "conv2_3/2/conv" + type: "Convolution" + bottom: "conv2_3/1" + top: "conv2_3/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3/2/neg" + type: "Power" + bottom: "conv2_3/2/conv" + top: "conv2_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv2_3/2/concat" + type: "Concat" + bottom: "conv2_3/2/conv" + bottom: "conv2_3/2/neg" + top: "conv2_3/2" +} +layer { + name: "conv2_3/2/scale" + type: "Scale" + bottom: "conv2_3/2" + top: "conv2_3/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv2_3/2/relu" + type: "ReLU" + bottom: "conv2_3/2" + top: "conv2_3/2" +} +layer { + name: "conv2_3/3/conv" + type: "Convolution" + bottom: "conv2_3/2" + top: "conv2_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv2_3" + type: "Eltwise" + bottom: "conv2_3/3" + bottom: "conv2_2" + top: "conv2_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_1/1/conv" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1/1/relu" + type: "ReLU" + bottom: "conv3_1/1" + top: "conv3_1/1" +} +layer { + name: "conv3_1/2/conv" + type: "Convolution" + bottom: "conv3_1/1" + top: "conv3_1/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/2/neg" + type: "Power" + bottom: "conv3_1/2/conv" + top: "conv3_1/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_1/2/concat" + type: "Concat" + bottom: "conv3_1/2/conv" + bottom: "conv3_1/2/neg" + top: "conv3_1/2" +} +layer { + name: "conv3_1/2/scale" + type: "Scale" + bottom: "conv3_1/2" + top: "conv3_1/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_1/2/relu" + type: "ReLU" + bottom: "conv3_1/2" + top: "conv3_1/2" +} +layer { + name: "conv3_1/3/conv" + type: "Convolution" + bottom: "conv3_1/2" + top: "conv3_1/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_1/proj" + type: "Convolution" + bottom: "conv2_3" + top: "conv3_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 128 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv3_1" + type: "Eltwise" + bottom: "conv3_1/3" + bottom: "conv3_1/proj" + top: "conv3_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_2/1/conv" + type: "Convolution" + bottom: "conv3_1" + top: "conv3_2/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/1/relu" + type: "ReLU" + bottom: "conv3_2/1" + top: "conv3_2/1" +} +layer { + name: "conv3_2/2/conv" + type: "Convolution" + bottom: "conv3_2/1" + top: "conv3_2/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2/2/neg" + type: "Power" + bottom: "conv3_2/2/conv" + top: "conv3_2/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_2/2/concat" + type: "Concat" + bottom: "conv3_2/2/conv" + bottom: "conv3_2/2/neg" + top: "conv3_2/2" +} +layer { + name: "conv3_2/2/scale" + type: "Scale" + bottom: "conv3_2/2" + top: "conv3_2/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_2/2/relu" + type: "ReLU" + bottom: "conv3_2/2" + top: "conv3_2/2" +} +layer { + name: "conv3_2/3/conv" + type: "Convolution" + bottom: "conv3_2/2" + top: "conv3_2/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_2" + type: "Eltwise" + bottom: "conv3_2/3" + bottom: "conv3_1" + top: "conv3_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_3/1/conv" + type: "Convolution" + bottom: "conv3_2" + top: "conv3_3/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/1/relu" + type: "ReLU" + bottom: "conv3_3/1" + top: "conv3_3/1" +} +layer { + name: "conv3_3/2/conv" + type: "Convolution" + bottom: "conv3_3/1" + top: "conv3_3/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3/2/neg" + type: "Power" + bottom: "conv3_3/2/conv" + top: "conv3_3/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_3/2/concat" + type: "Concat" + bottom: "conv3_3/2/conv" + bottom: "conv3_3/2/neg" + top: "conv3_3/2" +} +layer { + name: "conv3_3/2/scale" + type: "Scale" + bottom: "conv3_3/2" + top: "conv3_3/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_3/2/relu" + type: "ReLU" + bottom: "conv3_3/2" + top: "conv3_3/2" +} +layer { + name: "conv3_3/3/conv" + type: "Convolution" + bottom: "conv3_3/2" + top: "conv3_3/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_3" + type: "Eltwise" + bottom: "conv3_3/3" + bottom: "conv3_2" + top: "conv3_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv3_4/1/conv" + type: "Convolution" + bottom: "conv3_3" + top: "conv3_4/1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/1/relu" + type: "ReLU" + bottom: "conv3_4/1" + top: "conv3_4/1" +} +layer { + name: "conv3_4/2/conv" + type: "Convolution" + bottom: "conv3_4/1" + top: "conv3_4/2/conv" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4/2/neg" + type: "Power" + bottom: "conv3_4/2/conv" + top: "conv3_4/2/neg" + power_param { + power: 1 + scale: -1.0 + shift: 0 + } +} +layer { + name: "conv3_4/2/concat" + type: "Concat" + bottom: "conv3_4/2/conv" + bottom: "conv3_4/2/neg" + top: "conv3_4/2" +} +layer { + name: "conv3_4/2/scale" + type: "Scale" + bottom: "conv3_4/2" + top: "conv3_4/2" + param { + lr_mult: 1.0 + decay_mult: 0 + } + param { + lr_mult: 2.0 + decay_mult: 0 + } + scale_param { + bias_term: true + } +} +layer { + name: "conv3_4/2/relu" + type: "ReLU" + bottom: "conv3_4/2" + top: "conv3_4/2" +} +layer { + name: "conv3_4/3/conv" + type: "Convolution" + bottom: "conv3_4/2" + top: "conv3_4/3" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv3_4" + type: "Eltwise" + bottom: "conv3_4/3" + bottom: "conv3_3" + top: "conv3_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_1/incep/0/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/0/relu" + type: "ReLU" + bottom: "conv4_1/incep/0" + top: "conv4_1/incep/0" +} +layer { + name: "conv4_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_reduce" +} +layer { + name: "conv4_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/1_reduce" + top: "conv4_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/1_0" + top: "conv4_1/incep/1_0" +} +layer { + name: "conv4_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_reduce" +} +layer { + name: "conv4_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_reduce" + top: "conv4_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_0" +} +layer { + name: "conv4_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_1/incep/2_0" + top: "conv4_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_1/incep/2_1" + top: "conv4_1/incep/2_1" +} +layer { + name: "conv4_1/incep/pool" + type: "Pooling" + bottom: "conv3_4" + top: "conv4_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv4_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv4_1/incep/pool" + top: "conv4_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep/poolproj" +} +layer { + name: "conv4_1/incep" + type: "Concat" + bottom: "conv4_1/incep/0" + bottom: "conv4_1/incep/1_0" + bottom: "conv4_1/incep/2_1" + bottom: "conv4_1/incep/poolproj" + top: "conv4_1/incep" +} +layer { + name: "conv4_1/out/conv" + type: "Convolution" + bottom: "conv4_1/incep" + top: "conv4_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_1/proj" + type: "Convolution" + bottom: "conv3_4" + top: "conv4_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 256 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv4_1" + type: "Eltwise" + bottom: "conv4_1/out" + bottom: "conv4_1/proj" + top: "conv4_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_2/incep/0/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/0/relu" + type: "ReLU" + bottom: "conv4_2/incep/0" + top: "conv4_2/incep/0" +} +layer { + name: "conv4_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_reduce" +} +layer { + name: "conv4_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/1_reduce" + top: "conv4_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/1_0" + top: "conv4_2/incep/1_0" +} +layer { + name: "conv4_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_1" + top: "conv4_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_reduce" +} +layer { + name: "conv4_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_reduce" + top: "conv4_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_0" +} +layer { + name: "conv4_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_2/incep/2_0" + top: "conv4_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep/2_1" +} +layer { + name: "conv4_2/incep" + type: "Concat" + bottom: "conv4_2/incep/0" + bottom: "conv4_2/incep/1_0" + bottom: "conv4_2/incep/2_1" + top: "conv4_2/incep" +} +layer { + name: "conv4_2/out/conv" + type: "Convolution" + bottom: "conv4_2/incep" + top: "conv4_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_2" + type: "Eltwise" + bottom: "conv4_2/out" + bottom: "conv4_1" + top: "conv4_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_3/incep/0/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/0/relu" + type: "ReLU" + bottom: "conv4_3/incep/0" + top: "conv4_3/incep/0" +} +layer { + name: "conv4_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_reduce" +} +layer { + name: "conv4_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/1_reduce" + top: "conv4_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/1_0" + top: "conv4_3/incep/1_0" +} +layer { + name: "conv4_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_2" + top: "conv4_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_reduce" +} +layer { + name: "conv4_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_reduce" + top: "conv4_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_0" +} +layer { + name: "conv4_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_3/incep/2_0" + top: "conv4_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep/2_1" +} +layer { + name: "conv4_3/incep" + type: "Concat" + bottom: "conv4_3/incep/0" + bottom: "conv4_3/incep/1_0" + bottom: "conv4_3/incep/2_1" + top: "conv4_3/incep" +} +layer { + name: "conv4_3/out/conv" + type: "Convolution" + bottom: "conv4_3/incep" + top: "conv4_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_3" + type: "Eltwise" + bottom: "conv4_3/out" + bottom: "conv4_2" + top: "conv4_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv4_4/incep/0/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/0/relu" + type: "ReLU" + bottom: "conv4_4/incep/0" + top: "conv4_4/incep/0" +} +layer { + name: "conv4_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_reduce" +} +layer { + name: "conv4_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/1_reduce" + top: "conv4_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/1_0" + top: "conv4_4/incep/1_0" +} +layer { + name: "conv4_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_3" + top: "conv4_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 24 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_reduce" +} +layer { + name: "conv4_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_reduce" + top: "conv4_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_0" +} +layer { + name: "conv4_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv4_4/incep/2_0" + top: "conv4_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 48 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep/2_1" +} +layer { + name: "conv4_4/incep" + type: "Concat" + bottom: "conv4_4/incep/0" + bottom: "conv4_4/incep/1_0" + bottom: "conv4_4/incep/2_1" + top: "conv4_4/incep" +} +layer { + name: "conv4_4/out/conv" + type: "Convolution" + bottom: "conv4_4/incep" + top: "conv4_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 256 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv4_4" + type: "Eltwise" + bottom: "conv4_4/out" + bottom: "conv4_3" + top: "conv4_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_1/incep/0/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/0/relu" + type: "ReLU" + bottom: "conv5_1/incep/0" + top: "conv5_1/incep/0" +} +layer { + name: "conv5_1/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_reduce" +} +layer { + name: "conv5_1/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/1_reduce" + top: "conv5_1/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/1_0" + top: "conv5_1/incep/1_0" +} +layer { + name: "conv5_1/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_reduce" +} +layer { + name: "conv5_1/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_reduce" + top: "conv5_1/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_0" +} +layer { + name: "conv5_1/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_1/incep/2_0" + top: "conv5_1/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_1/incep/2_1" + top: "conv5_1/incep/2_1" +} +layer { + name: "conv5_1/incep/pool" + type: "Pooling" + bottom: "conv4_4" + top: "conv5_1/incep/pool" + pooling_param { + pool: MAX + kernel_size: 3 + stride: 2 + pad: 0 + } +} +layer { + name: "conv5_1/incep/poolproj/conv" + type: "Convolution" + bottom: "conv5_1/incep/pool" + top: "conv5_1/incep/poolproj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 128 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/incep/poolproj/relu" + type: "ReLU" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep/poolproj" +} +layer { + name: "conv5_1/incep" + type: "Concat" + bottom: "conv5_1/incep/0" + bottom: "conv5_1/incep/1_0" + bottom: "conv5_1/incep/2_1" + bottom: "conv5_1/incep/poolproj" + top: "conv5_1/incep" +} +layer { + name: "conv5_1/out/conv" + type: "Convolution" + bottom: "conv5_1/incep" + top: "conv5_1/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_1/proj" + type: "Convolution" + bottom: "conv4_4" + top: "conv5_1/proj" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + convolution_param { + num_output: 384 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 2 + stride_w: 2 + } +} +layer { + name: "conv5_1" + type: "Eltwise" + bottom: "conv5_1/out" + bottom: "conv5_1/proj" + top: "conv5_1" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_2/incep/0/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/0/relu" + type: "ReLU" + bottom: "conv5_2/incep/0" + top: "conv5_2/incep/0" +} +layer { + name: "conv5_2/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_reduce" +} +layer { + name: "conv5_2/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/1_reduce" + top: "conv5_2/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/1_0" + top: "conv5_2/incep/1_0" +} +layer { + name: "conv5_2/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_1" + top: "conv5_2/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_reduce" +} +layer { + name: "conv5_2/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_reduce" + top: "conv5_2/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_0" +} +layer { + name: "conv5_2/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_2/incep/2_0" + top: "conv5_2/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep/2_1" +} +layer { + name: "conv5_2/incep" + type: "Concat" + bottom: "conv5_2/incep/0" + bottom: "conv5_2/incep/1_0" + bottom: "conv5_2/incep/2_1" + top: "conv5_2/incep" +} +layer { + name: "conv5_2/out/conv" + type: "Convolution" + bottom: "conv5_2/incep" + top: "conv5_2/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_2" + type: "Eltwise" + bottom: "conv5_2/out" + bottom: "conv5_1" + top: "conv5_2" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_3/incep/0/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/0/relu" + type: "ReLU" + bottom: "conv5_3/incep/0" + top: "conv5_3/incep/0" +} +layer { + name: "conv5_3/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_reduce" +} +layer { + name: "conv5_3/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/1_reduce" + top: "conv5_3/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/1_0" + top: "conv5_3/incep/1_0" +} +layer { + name: "conv5_3/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_2" + top: "conv5_3/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_reduce" +} +layer { + name: "conv5_3/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_reduce" + top: "conv5_3/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_0" +} +layer { + name: "conv5_3/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_3/incep/2_0" + top: "conv5_3/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep/2_1" +} +layer { + name: "conv5_3/incep" + type: "Concat" + bottom: "conv5_3/incep/0" + bottom: "conv5_3/incep/1_0" + bottom: "conv5_3/incep/2_1" + top: "conv5_3/incep" +} +layer { + name: "conv5_3/out/conv" + type: "Convolution" + bottom: "conv5_3/incep" + top: "conv5_3/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_3" + type: "Eltwise" + bottom: "conv5_3/out" + bottom: "conv5_2" + top: "conv5_3" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "conv5_4/incep/0/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/0/relu" + type: "ReLU" + bottom: "conv5_4/incep/0" + top: "conv5_4/incep/0" +} +layer { + name: "conv5_4/incep/1_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/1_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 96 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_reduce" +} +layer { + name: "conv5_4/incep/1_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/1_reduce" + top: "conv5_4/incep/1_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 192 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/1_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/1_0" + top: "conv5_4/incep/1_0" +} +layer { + name: "conv5_4/incep/2_reduce/conv" + type: "Convolution" + bottom: "conv5_3" + top: "conv5_4/incep/2_reduce" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 32 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_reduce/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_reduce" +} +layer { + name: "conv5_4/incep/2_0/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_reduce" + top: "conv5_4/incep/2_0" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_0/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_0" +} +layer { + name: "conv5_4/incep/2_1/conv" + type: "Convolution" + bottom: "conv5_4/incep/2_0" + top: "conv5_4/incep/2_1" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 64 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 1 + pad_w: 1 + kernel_h: 3 + kernel_w: 3 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4/incep/2_1/relu" + type: "ReLU" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep/2_1" +} +layer { + name: "conv5_4/incep" + type: "Concat" + bottom: "conv5_4/incep/0" + bottom: "conv5_4/incep/1_0" + bottom: "conv5_4/incep/2_1" + top: "conv5_4/incep" +} +layer { + name: "conv5_4/out/conv" + type: "Convolution" + bottom: "conv5_4/incep" + top: "conv5_4/out" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + convolution_param { + num_output: 384 + bias_filler { type: "constant" value: 0 } + weight_filler { + type: "xavier" + } + pad_h: 0 + pad_w: 0 + kernel_h: 1 + kernel_w: 1 + stride_h: 1 + stride_w: 1 + } +} +layer { + name: "conv5_4" + type: "Eltwise" + bottom: "conv5_4/out" + bottom: "conv5_3" + top: "conv5_4" + eltwise_param { + operation: SUM + coeff: 1 + coeff: 1 + } +} +layer { + name: "pool5" + type: "Pooling" + bottom: "conv5_4" + top: "pool5" + pooling_param { + pool: MAX + kernel_size: 1 + stride: 1 + pad: 0 + } +} +layer { + name: "fc6" + type: "InnerProduct" + bottom: "pool5" + top: "fc6" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc6/relu" + type: "ReLU" + bottom: "fc6" + top: "fc6" +} +layer { + name: "fc7" + type: "InnerProduct" + bottom: "fc6" + top: "fc7" + param { + lr_mult: 1.0 + decay_mult: 1.0 + } + param { + lr_mult: 2.0 + decay_mult: 0.0 + } + inner_product_param { + num_output: 4096 + weight_filler { + type: "xavier" + } + bias_filler { + type: "constant" + value: 0.1 + } + } +} +layer { + name: "fc7/relu" + type: "ReLU" + bottom: "fc7" + top: "fc7" +} + + +layer { + name: "fc8" + type: "InnerProduct" + bottom: "fc7" + top: "fc8" + param { lr_mult: 1.0 decay_mult: 1.0 } + inner_product_param { + num_output: 1000 + weight_filler { type: "xavier" } + bias_filler { type: "constant" value: 0.1 } + } +} + +### Loss +layer { + name: "loss" + type: "SoftmaxWithLoss" + bottom: "fc8" + bottom: "label" + top: "loss" +} + +layer { + name: "accuracy" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy" + include { + phase: TEST + } + accuracy_param { + top_k: 1 + } +} + +layer { + name: "accuracy_top5" + type: "Accuracy" + bottom: "fc8" + bottom: "label" + top: "accuracy_top5" + include { + phase: TEST + } + accuracy_param { + top_k: 5 + } +} diff --git a/models/pvanet_obsolete/lite/original.pt b/models/pvanet_obsolete/lite/original.pt new file mode 100644 index 000000000..bff88cb69 --- /dev/null +++ b/models/pvanet_obsolete/lite/original.pt @@ -0,0 +1,2949 @@ +name: "PVANET-lite" + +################################################################################ +## Input +################################################################################ + +layer { + name: 'input-data' + type: 'Python' + top: 'data' + top: 'im_info' + top: 'gt_boxes' + include { phase: TRAIN } + python_param { + module: 'roi_data_layer.layer' + layer: 'RoIDataLayer' + param_str: "'num_classes': 21" + } +} + +layer { + name: "input-data" + type: "DummyData" + top: "data" + top: "im_info" + include { phase: TEST } + dummy_data_param { + shape { dim: 1 dim: 3 dim: 640 dim: 1056 } + shape { dim: 1 dim: 4 } + } +} + + +################################################################################ +## Conv 1 +################################################################################ +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 + kernel_size: 4 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "conv1/bn" + type: "BatchNorm" + bottom: "conv1" + top: "conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "conv1/scale" + type: "Scale" + bottom: "conv1" + top: "conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} + +################################################################################ +## Conv 2 +################################################################################ +layer { + name: "conv2" + type: "Convolution" + bottom: "conv1" + top: "conv2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 48 + kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "conv2/bn" + type: "BatchNorm" + bottom: "conv2" + top: "conv2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "conv2/scale" + type: "Scale" + bottom: "conv2" + top: "conv2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} + +################################################################################ +## Conv 3 +################################################################################ +layer { + name: "conv3" + type: "Convolution" + bottom: "conv2" + top: "conv3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 + kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "conv3/bn" + type: "BatchNorm" + bottom: "conv3" + top: "conv3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "conv3/scale" + type: "Scale" + bottom: "conv3" + top: "conv3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} + +################################################################################ +## Inception 3a +################################################################################ +layer { + name: "inc3a/pool1" + type: "Pooling" + bottom: "conv3" + top: "inc3a/pool1" + pooling_param { + kernel_size: 3 stride: 2 pad: 0 + pool: MAX + } +} +layer { + name: "inc3a/conv1" + type: "Convolution" + bottom: "inc3a/pool1" + top: "inc3a/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/conv1/bn" + type: "BatchNorm" + bottom: "inc3a/conv1" + top: "inc3a/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3a/conv1/scale" + type: "Scale" + bottom: "inc3a/conv1" + top: "inc3a/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3a/relu1" + type: "ReLU" + bottom: "inc3a/conv1" + top: "inc3a/conv1" +} +layer { + name: "inc3a/conv3_1" + type: "Convolution" + bottom: "conv3" + top: "inc3a/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/conv3_1/bn" + type: "BatchNorm" + bottom: "inc3a/conv3_1" + top: "inc3a/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3a/conv3_1/scale" + type: "Scale" + bottom: "inc3a/conv3_1" + top: "inc3a/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3a/relu3_1" + type: "ReLU" + bottom: "inc3a/conv3_1" + top: "inc3a/conv3_1" +} +layer { + name: "inc3a/conv3_2" + type: "Convolution" + bottom: "inc3a/conv3_1" + top: "inc3a/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/conv3_2/bn" + type: "BatchNorm" + bottom: "inc3a/conv3_2" + top: "inc3a/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3a/conv3_2/scale" + type: "Scale" + bottom: "inc3a/conv3_2" + top: "inc3a/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3a/relu3_2" + type: "ReLU" + bottom: "inc3a/conv3_2" + top: "inc3a/conv3_2" +} +layer { + name: "inc3a/conv5_1" + type: "Convolution" + bottom: "conv3" + top: "inc3a/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/conv5_1/bn" + type: "BatchNorm" + bottom: "inc3a/conv5_1" + top: "inc3a/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3a/conv5_1/scale" + type: "Scale" + bottom: "inc3a/conv5_1" + top: "inc3a/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3a/relu5_1" + type: "ReLU" + bottom: "inc3a/conv5_1" + top: "inc3a/conv5_1" +} +layer { + name: "inc3a/conv5_2" + type: "Convolution" + bottom: "inc3a/conv5_1" + top: "inc3a/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/conv5_2/bn" + type: "BatchNorm" + bottom: "inc3a/conv5_2" + top: "inc3a/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3a/conv5_2/scale" + type: "Scale" + bottom: "inc3a/conv5_2" + top: "inc3a/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3a/relu5_2" + type: "ReLU" + bottom: "inc3a/conv5_2" + top: "inc3a/conv5_2" +} +layer { + name: "inc3a/conv5_3" + type: "Convolution" + bottom: "inc3a/conv5_2" + top: "inc3a/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/conv5_3/bn" + type: "BatchNorm" + bottom: "inc3a/conv5_3" + top: "inc3a/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3a/conv5_3/scale" + type: "Scale" + bottom: "inc3a/conv5_3" + top: "inc3a/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3a/relu5_3" + type: "ReLU" + bottom: "inc3a/conv5_3" + top: "inc3a/conv5_3" +} +layer { + name: "inc3a" + type: "Concat" + bottom: "inc3a/conv1" + bottom: "inc3a/conv3_2" + bottom: "inc3a/conv5_3" + top: "inc3a" +} + +################################################################################ +## Inception 3b +################################################################################ +layer { + name: "inc3b/conv1" + type: "Convolution" + bottom: "inc3a" + top: "inc3b/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/conv1/bn" + type: "BatchNorm" + bottom: "inc3b/conv1" + top: "inc3b/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3b/conv1/scale" + type: "Scale" + bottom: "inc3b/conv1" + top: "inc3b/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3b/relu1" + type: "ReLU" + bottom: "inc3b/conv1" + top: "inc3b/conv1" +} +layer { + name: "inc3b/conv3_1" + type: "Convolution" + bottom: "inc3a" + top: "inc3b/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/conv3_1/bn" + type: "BatchNorm" + bottom: "inc3b/conv3_1" + top: "inc3b/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3b/conv3_1/scale" + type: "Scale" + bottom: "inc3b/conv3_1" + top: "inc3b/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3b/relu3_1" + type: "ReLU" + bottom: "inc3b/conv3_1" + top: "inc3b/conv3_1" +} +layer { + name: "inc3b/conv3_2" + type: "Convolution" + bottom: "inc3b/conv3_1" + top: "inc3b/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/conv3_2/bn" + type: "BatchNorm" + bottom: "inc3b/conv3_2" + top: "inc3b/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3b/conv3_2/scale" + type: "Scale" + bottom: "inc3b/conv3_2" + top: "inc3b/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3b/relu3_2" + type: "ReLU" + bottom: "inc3b/conv3_2" + top: "inc3b/conv3_2" +} +layer { + name: "inc3b/conv5_1" + type: "Convolution" + bottom: "inc3a" + top: "inc3b/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/conv5_1/bn" + type: "BatchNorm" + bottom: "inc3b/conv5_1" + top: "inc3b/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3b/conv5_1/scale" + type: "Scale" + bottom: "inc3b/conv5_1" + top: "inc3b/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3b/relu5_1" + type: "ReLU" + bottom: "inc3b/conv5_1" + top: "inc3b/conv5_1" +} +layer { + name: "inc3b/conv5_2" + type: "Convolution" + bottom: "inc3b/conv5_1" + top: "inc3b/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/conv5_2/bn" + type: "BatchNorm" + bottom: "inc3b/conv5_2" + top: "inc3b/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3b/conv5_2/scale" + type: "Scale" + bottom: "inc3b/conv5_2" + top: "inc3b/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3b/relu5_2" + type: "ReLU" + bottom: "inc3b/conv5_2" + top: "inc3b/conv5_2" +} +layer { + name: "inc3b/conv5_3" + type: "Convolution" + bottom: "inc3b/conv5_2" + top: "inc3b/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/conv5_3/bn" + type: "BatchNorm" + bottom: "inc3b/conv5_3" + top: "inc3b/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3b/conv5_3/scale" + type: "Scale" + bottom: "inc3b/conv5_3" + top: "inc3b/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3b/relu5_3" + type: "ReLU" + bottom: "inc3b/conv5_3" + top: "inc3b/conv5_3" +} +layer { + name: "inc3b" + type: "Concat" + bottom: "inc3b/conv1" + bottom: "inc3b/conv3_2" + bottom: "inc3b/conv5_3" + top: "inc3b" +} + +################################################################################ +## Inception 3c +################################################################################ +layer { + name: "inc3c/conv1" + type: "Convolution" + bottom: "inc3b" + top: "inc3c/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/conv1/bn" + type: "BatchNorm" + bottom: "inc3c/conv1" + top: "inc3c/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3c/conv1/scale" + type: "Scale" + bottom: "inc3c/conv1" + top: "inc3c/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3c/relu1" + type: "ReLU" + bottom: "inc3c/conv1" + top: "inc3c/conv1" +} +layer { + name: "inc3c/conv3_1" + type: "Convolution" + bottom: "inc3b" + top: "inc3c/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/conv3_1/bn" + type: "BatchNorm" + bottom: "inc3c/conv3_1" + top: "inc3c/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3c/conv3_1/scale" + type: "Scale" + bottom: "inc3c/conv3_1" + top: "inc3c/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3c/relu3_1" + type: "ReLU" + bottom: "inc3c/conv3_1" + top: "inc3c/conv3_1" +} +layer { + name: "inc3c/conv3_2" + type: "Convolution" + bottom: "inc3c/conv3_1" + top: "inc3c/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/conv3_2/bn" + type: "BatchNorm" + bottom: "inc3c/conv3_2" + top: "inc3c/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3c/conv3_2/scale" + type: "Scale" + bottom: "inc3c/conv3_2" + top: "inc3c/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3c/relu3_2" + type: "ReLU" + bottom: "inc3c/conv3_2" + top: "inc3c/conv3_2" +} +layer { + name: "inc3c/conv5_1" + type: "Convolution" + bottom: "inc3b" + top: "inc3c/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/conv5_1/bn" + type: "BatchNorm" + bottom: "inc3c/conv5_1" + top: "inc3c/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3c/conv5_1/scale" + type: "Scale" + bottom: "inc3c/conv5_1" + top: "inc3c/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3c/relu5_1" + type: "ReLU" + bottom: "inc3c/conv5_1" + top: "inc3c/conv5_1" +} +layer { + name: "inc3c/conv5_2" + type: "Convolution" + bottom: "inc3c/conv5_1" + top: "inc3c/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/conv5_2/bn" + type: "BatchNorm" + bottom: "inc3c/conv5_2" + top: "inc3c/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3c/conv5_2/scale" + type: "Scale" + bottom: "inc3c/conv5_2" + top: "inc3c/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3c/relu5_2" + type: "ReLU" + bottom: "inc3c/conv5_2" + top: "inc3c/conv5_2" +} +layer { + name: "inc3c/conv5_3" + type: "Convolution" + bottom: "inc3c/conv5_2" + top: "inc3c/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/conv5_3/bn" + type: "BatchNorm" + bottom: "inc3c/conv5_3" + top: "inc3c/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3c/conv5_3/scale" + type: "Scale" + bottom: "inc3c/conv5_3" + top: "inc3c/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3c/relu5_3" + type: "ReLU" + bottom: "inc3c/conv5_3" + top: "inc3c/conv5_3" +} +layer { + name: "inc3c" + type: "Concat" + bottom: "inc3c/conv1" + bottom: "inc3c/conv3_2" + bottom: "inc3c/conv5_3" + top: "inc3c" +} + +################################################################################ +## Inception 3d +################################################################################ +layer { + name: "inc3d/conv1" + type: "Convolution" + bottom: "inc3c" + top: "inc3d/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/conv1/bn" + type: "BatchNorm" + bottom: "inc3d/conv1" + top: "inc3d/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3d/conv1/scale" + type: "Scale" + bottom: "inc3d/conv1" + top: "inc3d/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3d/relu1" + type: "ReLU" + bottom: "inc3d/conv1" + top: "inc3d/conv1" +} +layer { + name: "inc3d/conv3_1" + type: "Convolution" + bottom: "inc3c" + top: "inc3d/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/conv3_1/bn" + type: "BatchNorm" + bottom: "inc3d/conv3_1" + top: "inc3d/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3d/conv3_1/scale" + type: "Scale" + bottom: "inc3d/conv3_1" + top: "inc3d/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3d/relu3_1" + type: "ReLU" + bottom: "inc3d/conv3_1" + top: "inc3d/conv3_1" +} +layer { + name: "inc3d/conv3_2" + type: "Convolution" + bottom: "inc3d/conv3_1" + top: "inc3d/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/conv3_2/bn" + type: "BatchNorm" + bottom: "inc3d/conv3_2" + top: "inc3d/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3d/conv3_2/scale" + type: "Scale" + bottom: "inc3d/conv3_2" + top: "inc3d/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3d/relu3_2" + type: "ReLU" + bottom: "inc3d/conv3_2" + top: "inc3d/conv3_2" +} +layer { + name: "inc3d/conv5_1" + type: "Convolution" + bottom: "inc3c" + top: "inc3d/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/conv5_1/bn" + type: "BatchNorm" + bottom: "inc3d/conv5_1" + top: "inc3d/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3d/conv5_1/scale" + type: "Scale" + bottom: "inc3d/conv5_1" + top: "inc3d/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3d/relu5_1" + type: "ReLU" + bottom: "inc3d/conv5_1" + top: "inc3d/conv5_1" +} +layer { + name: "inc3d/conv5_2" + type: "Convolution" + bottom: "inc3d/conv5_1" + top: "inc3d/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/conv5_2/bn" + type: "BatchNorm" + bottom: "inc3d/conv5_2" + top: "inc3d/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3d/conv5_2/scale" + type: "Scale" + bottom: "inc3d/conv5_2" + top: "inc3d/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3d/relu5_2" + type: "ReLU" + bottom: "inc3d/conv5_2" + top: "inc3d/conv5_2" +} +layer { + name: "inc3d/conv5_3" + type: "Convolution" + bottom: "inc3d/conv5_2" + top: "inc3d/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/conv5_3/bn" + type: "BatchNorm" + bottom: "inc3d/conv5_3" + top: "inc3d/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3d/conv5_3/scale" + type: "Scale" + bottom: "inc3d/conv5_3" + top: "inc3d/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3d/relu5_3" + type: "ReLU" + bottom: "inc3d/conv5_3" + top: "inc3d/conv5_3" +} +layer { + name: "inc3d" + type: "Concat" + bottom: "inc3d/conv1" + bottom: "inc3d/conv3_2" + bottom: "inc3d/conv5_3" + top: "inc3d" +} + +################################################################################ +## Inception 3e +################################################################################ +layer { + name: "inc3e/conv1" + type: "Convolution" + bottom: "inc3d" + top: "inc3e/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/conv1/bn" + type: "BatchNorm" + bottom: "inc3e/conv1" + top: "inc3e/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3e/conv1/scale" + type: "Scale" + bottom: "inc3e/conv1" + top: "inc3e/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3e/relu1" + type: "ReLU" + bottom: "inc3e/conv1" + top: "inc3e/conv1" +} +layer { + name: "inc3e/conv3_1" + type: "Convolution" + bottom: "inc3d" + top: "inc3e/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/conv3_1/bn" + type: "BatchNorm" + bottom: "inc3e/conv3_1" + top: "inc3e/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3e/conv3_1/scale" + type: "Scale" + bottom: "inc3e/conv3_1" + top: "inc3e/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3e/relu3_1" + type: "ReLU" + bottom: "inc3e/conv3_1" + top: "inc3e/conv3_1" +} +layer { + name: "inc3e/conv3_2" + type: "Convolution" + bottom: "inc3e/conv3_1" + top: "inc3e/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/conv3_2/bn" + type: "BatchNorm" + bottom: "inc3e/conv3_2" + top: "inc3e/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3e/conv3_2/scale" + type: "Scale" + bottom: "inc3e/conv3_2" + top: "inc3e/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3e/relu3_2" + type: "ReLU" + bottom: "inc3e/conv3_2" + top: "inc3e/conv3_2" +} +layer { + name: "inc3e/conv5_1" + type: "Convolution" + bottom: "inc3d" + top: "inc3e/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/conv5_1/bn" + type: "BatchNorm" + bottom: "inc3e/conv5_1" + top: "inc3e/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3e/conv5_1/scale" + type: "Scale" + bottom: "inc3e/conv5_1" + top: "inc3e/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3e/relu5_1" + type: "ReLU" + bottom: "inc3e/conv5_1" + top: "inc3e/conv5_1" +} +layer { + name: "inc3e/conv5_2" + type: "Convolution" + bottom: "inc3e/conv5_1" + top: "inc3e/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/conv5_2/bn" + type: "BatchNorm" + bottom: "inc3e/conv5_2" + top: "inc3e/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3e/conv5_2/scale" + type: "Scale" + bottom: "inc3e/conv5_2" + top: "inc3e/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3e/relu5_2" + type: "ReLU" + bottom: "inc3e/conv5_2" + top: "inc3e/conv5_2" +} +layer { + name: "inc3e/conv5_3" + type: "Convolution" + bottom: "inc3e/conv5_2" + top: "inc3e/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/conv5_3/bn" + type: "BatchNorm" + bottom: "inc3e/conv5_3" + top: "inc3e/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc3e/conv5_3/scale" + type: "Scale" + bottom: "inc3e/conv5_3" + top: "inc3e/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc3e/relu5_3" + type: "ReLU" + bottom: "inc3e/conv5_3" + top: "inc3e/conv5_3" +} +layer { + name: "inc3e" + type: "Concat" + bottom: "inc3e/conv1" + bottom: "inc3e/conv3_2" + bottom: "inc3e/conv5_3" + top: "inc3e" +} + +################################################################################ +## Inception 4a +################################################################################ +layer { + name: "inc4a/pool1" + type: "Pooling" + bottom: "inc3e" + top: "inc4a/pool1" + pooling_param { + kernel_size: 3 stride: 2 pad: 0 + pool: MAX + } +} +layer { + name: "inc4a/conv1" + type: "Convolution" + bottom: "inc4a/pool1" + top: "inc4a/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/conv1/bn" + type: "BatchNorm" + bottom: "inc4a/conv1" + top: "inc4a/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4a/conv1/scale" + type: "Scale" + bottom: "inc4a/conv1" + top: "inc4a/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4a/relu1" + type: "ReLU" + bottom: "inc4a/conv1" + top: "inc4a/conv1" +} +layer { + name: "inc4a/conv3_1" + type: "Convolution" + bottom: "inc3e" + top: "inc4a/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/conv3_1/bn" + type: "BatchNorm" + bottom: "inc4a/conv3_1" + top: "inc4a/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4a/conv3_1/scale" + type: "Scale" + bottom: "inc4a/conv3_1" + top: "inc4a/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4a/relu3_1" + type: "ReLU" + bottom: "inc4a/conv3_1" + top: "inc4a/conv3_1" +} +layer { + name: "inc4a/conv3_2" + type: "Convolution" + bottom: "inc4a/conv3_1" + top: "inc4a/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/conv3_2/bn" + type: "BatchNorm" + bottom: "inc4a/conv3_2" + top: "inc4a/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4a/conv3_2/scale" + type: "Scale" + bottom: "inc4a/conv3_2" + top: "inc4a/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4a/relu3_2" + type: "ReLU" + bottom: "inc4a/conv3_2" + top: "inc4a/conv3_2" +} +layer { + name: "inc4a/conv5_1" + type: "Convolution" + bottom: "inc3e" + top: "inc4a/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/conv5_1/bn" + type: "BatchNorm" + bottom: "inc4a/conv5_1" + top: "inc4a/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4a/conv5_1/scale" + type: "Scale" + bottom: "inc4a/conv5_1" + top: "inc4a/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4a/relu5_1" + type: "ReLU" + bottom: "inc4a/conv5_1" + top: "inc4a/conv5_1" +} +layer { + name: "inc4a/conv5_2" + type: "Convolution" + bottom: "inc4a/conv5_1" + top: "inc4a/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/conv5_2/bn" + type: "BatchNorm" + bottom: "inc4a/conv5_2" + top: "inc4a/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4a/conv5_2/scale" + type: "Scale" + bottom: "inc4a/conv5_2" + top: "inc4a/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4a/relu5_2" + type: "ReLU" + bottom: "inc4a/conv5_2" + top: "inc4a/conv5_2" +} +layer { + name: "inc4a/conv5_3" + type: "Convolution" + bottom: "inc4a/conv5_2" + top: "inc4a/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/conv5_3/bn" + type: "BatchNorm" + bottom: "inc4a/conv5_3" + top: "inc4a/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4a/conv5_3/scale" + type: "Scale" + bottom: "inc4a/conv5_3" + top: "inc4a/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4a/relu5_3" + type: "ReLU" + bottom: "inc4a/conv5_3" + top: "inc4a/conv5_3" +} +layer { + name: "inc4a" + type: "Concat" + bottom: "inc4a/conv1" + bottom: "inc4a/conv3_2" + bottom: "inc4a/conv5_3" + top: "inc4a" +} + +################################################################################ +## Inception 4b +################################################################################ +layer { + name: "inc4b/conv1" + type: "Convolution" + bottom: "inc4a" + top: "inc4b/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/conv1/bn" + type: "BatchNorm" + bottom: "inc4b/conv1" + top: "inc4b/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4b/conv1/scale" + type: "Scale" + bottom: "inc4b/conv1" + top: "inc4b/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4b/relu1" + type: "ReLU" + bottom: "inc4b/conv1" + top: "inc4b/conv1" +} +layer { + name: "inc4b/conv3_1" + type: "Convolution" + bottom: "inc4a" + top: "inc4b/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/conv3_1/bn" + type: "BatchNorm" + bottom: "inc4b/conv3_1" + top: "inc4b/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4b/conv3_1/scale" + type: "Scale" + bottom: "inc4b/conv3_1" + top: "inc4b/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4b/relu3_1" + type: "ReLU" + bottom: "inc4b/conv3_1" + top: "inc4b/conv3_1" +} +layer { + name: "inc4b/conv3_2" + type: "Convolution" + bottom: "inc4b/conv3_1" + top: "inc4b/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/conv3_2/bn" + type: "BatchNorm" + bottom: "inc4b/conv3_2" + top: "inc4b/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4b/conv3_2/scale" + type: "Scale" + bottom: "inc4b/conv3_2" + top: "inc4b/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4b/relu3_2" + type: "ReLU" + bottom: "inc4b/conv3_2" + top: "inc4b/conv3_2" +} +layer { + name: "inc4b/conv5_1" + type: "Convolution" + bottom: "inc4a" + top: "inc4b/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/conv5_1/bn" + type: "BatchNorm" + bottom: "inc4b/conv5_1" + top: "inc4b/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4b/conv5_1/scale" + type: "Scale" + bottom: "inc4b/conv5_1" + top: "inc4b/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4b/relu5_1" + type: "ReLU" + bottom: "inc4b/conv5_1" + top: "inc4b/conv5_1" +} +layer { + name: "inc4b/conv5_2" + type: "Convolution" + bottom: "inc4b/conv5_1" + top: "inc4b/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/conv5_2/bn" + type: "BatchNorm" + bottom: "inc4b/conv5_2" + top: "inc4b/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4b/conv5_2/scale" + type: "Scale" + bottom: "inc4b/conv5_2" + top: "inc4b/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4b/relu5_2" + type: "ReLU" + bottom: "inc4b/conv5_2" + top: "inc4b/conv5_2" +} +layer { + name: "inc4b/conv5_3" + type: "Convolution" + bottom: "inc4b/conv5_2" + top: "inc4b/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/conv5_3/bn" + type: "BatchNorm" + bottom: "inc4b/conv5_3" + top: "inc4b/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4b/conv5_3/scale" + type: "Scale" + bottom: "inc4b/conv5_3" + top: "inc4b/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4b/relu5_3" + type: "ReLU" + bottom: "inc4b/conv5_3" + top: "inc4b/conv5_3" +} +layer { + name: "inc4b" + type: "Concat" + bottom: "inc4b/conv1" + bottom: "inc4b/conv3_2" + bottom: "inc4b/conv5_3" + top: "inc4b" +} + +################################################################################ +## Inception 4c +################################################################################ +layer { + name: "inc4c/conv1" + type: "Convolution" + bottom: "inc4b" + top: "inc4c/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/conv1/bn" + type: "BatchNorm" + bottom: "inc4c/conv1" + top: "inc4c/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4c/conv1/scale" + type: "Scale" + bottom: "inc4c/conv1" + top: "inc4c/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4c/relu1" + type: "ReLU" + bottom: "inc4c/conv1" + top: "inc4c/conv1" +} +layer { + name: "inc4c/conv3_1" + type: "Convolution" + bottom: "inc4b" + top: "inc4c/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/conv3_1/bn" + type: "BatchNorm" + bottom: "inc4c/conv3_1" + top: "inc4c/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4c/conv3_1/scale" + type: "Scale" + bottom: "inc4c/conv3_1" + top: "inc4c/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4c/relu3_1" + type: "ReLU" + bottom: "inc4c/conv3_1" + top: "inc4c/conv3_1" +} +layer { + name: "inc4c/conv3_2" + type: "Convolution" + bottom: "inc4c/conv3_1" + top: "inc4c/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/conv3_2/bn" + type: "BatchNorm" + bottom: "inc4c/conv3_2" + top: "inc4c/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4c/conv3_2/scale" + type: "Scale" + bottom: "inc4c/conv3_2" + top: "inc4c/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4c/relu3_2" + type: "ReLU" + bottom: "inc4c/conv3_2" + top: "inc4c/conv3_2" +} +layer { + name: "inc4c/conv5_1" + type: "Convolution" + bottom: "inc4b" + top: "inc4c/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/conv5_1/bn" + type: "BatchNorm" + bottom: "inc4c/conv5_1" + top: "inc4c/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4c/conv5_1/scale" + type: "Scale" + bottom: "inc4c/conv5_1" + top: "inc4c/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4c/relu5_1" + type: "ReLU" + bottom: "inc4c/conv5_1" + top: "inc4c/conv5_1" +} +layer { + name: "inc4c/conv5_2" + type: "Convolution" + bottom: "inc4c/conv5_1" + top: "inc4c/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/conv5_2/bn" + type: "BatchNorm" + bottom: "inc4c/conv5_2" + top: "inc4c/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4c/conv5_2/scale" + type: "Scale" + bottom: "inc4c/conv5_2" + top: "inc4c/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4c/relu5_2" + type: "ReLU" + bottom: "inc4c/conv5_2" + top: "inc4c/conv5_2" +} +layer { + name: "inc4c/conv5_3" + type: "Convolution" + bottom: "inc4c/conv5_2" + top: "inc4c/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/conv5_3/bn" + type: "BatchNorm" + bottom: "inc4c/conv5_3" + top: "inc4c/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4c/conv5_3/scale" + type: "Scale" + bottom: "inc4c/conv5_3" + top: "inc4c/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4c/relu5_3" + type: "ReLU" + bottom: "inc4c/conv5_3" + top: "inc4c/conv5_3" +} +layer { + name: "inc4c" + type: "Concat" + bottom: "inc4c/conv1" + bottom: "inc4c/conv3_2" + bottom: "inc4c/conv5_3" + top: "inc4c" +} + +################################################################################ +## Inception 4d +################################################################################ +layer { + name: "inc4d/conv1" + type: "Convolution" + bottom: "inc4c" + top: "inc4d/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/conv1/bn" + type: "BatchNorm" + bottom: "inc4d/conv1" + top: "inc4d/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4d/conv1/scale" + type: "Scale" + bottom: "inc4d/conv1" + top: "inc4d/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4d/relu1" + type: "ReLU" + bottom: "inc4d/conv1" + top: "inc4d/conv1" +} +layer { + name: "inc4d/conv3_1" + type: "Convolution" + bottom: "inc4c" + top: "inc4d/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/conv3_1/bn" + type: "BatchNorm" + bottom: "inc4d/conv3_1" + top: "inc4d/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4d/conv3_1/scale" + type: "Scale" + bottom: "inc4d/conv3_1" + top: "inc4d/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4d/relu3_1" + type: "ReLU" + bottom: "inc4d/conv3_1" + top: "inc4d/conv3_1" +} +layer { + name: "inc4d/conv3_2" + type: "Convolution" + bottom: "inc4d/conv3_1" + top: "inc4d/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/conv3_2/bn" + type: "BatchNorm" + bottom: "inc4d/conv3_2" + top: "inc4d/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4d/conv3_2/scale" + type: "Scale" + bottom: "inc4d/conv3_2" + top: "inc4d/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4d/relu3_2" + type: "ReLU" + bottom: "inc4d/conv3_2" + top: "inc4d/conv3_2" +} +layer { + name: "inc4d/conv5_1" + type: "Convolution" + bottom: "inc4c" + top: "inc4d/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/conv5_1/bn" + type: "BatchNorm" + bottom: "inc4d/conv5_1" + top: "inc4d/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4d/conv5_1/scale" + type: "Scale" + bottom: "inc4d/conv5_1" + top: "inc4d/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4d/relu5_1" + type: "ReLU" + bottom: "inc4d/conv5_1" + top: "inc4d/conv5_1" +} +layer { + name: "inc4d/conv5_2" + type: "Convolution" + bottom: "inc4d/conv5_1" + top: "inc4d/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/conv5_2/bn" + type: "BatchNorm" + bottom: "inc4d/conv5_2" + top: "inc4d/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4d/conv5_2/scale" + type: "Scale" + bottom: "inc4d/conv5_2" + top: "inc4d/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4d/relu5_2" + type: "ReLU" + bottom: "inc4d/conv5_2" + top: "inc4d/conv5_2" +} +layer { + name: "inc4d/conv5_3" + type: "Convolution" + bottom: "inc4d/conv5_2" + top: "inc4d/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/conv5_3/bn" + type: "BatchNorm" + bottom: "inc4d/conv5_3" + top: "inc4d/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4d/conv5_3/scale" + type: "Scale" + bottom: "inc4d/conv5_3" + top: "inc4d/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4d/relu5_3" + type: "ReLU" + bottom: "inc4d/conv5_3" + top: "inc4d/conv5_3" +} +layer { + name: "inc4d" + type: "Concat" + bottom: "inc4d/conv1" + bottom: "inc4d/conv3_2" + bottom: "inc4d/conv5_3" + top: "inc4d" +} + +################################################################################ +## Inception 4e +################################################################################ +layer { + name: "inc4e/conv1" + type: "Convolution" + bottom: "inc4d" + top: "inc4e/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/conv1/bn" + type: "BatchNorm" + bottom: "inc4e/conv1" + top: "inc4e/conv1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4e/conv1/scale" + type: "Scale" + bottom: "inc4e/conv1" + top: "inc4e/conv1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4e/relu1" + type: "ReLU" + bottom: "inc4e/conv1" + top: "inc4e/conv1" +} +layer { + name: "inc4e/conv3_1" + type: "Convolution" + bottom: "inc4d" + top: "inc4e/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/conv3_1/bn" + type: "BatchNorm" + bottom: "inc4e/conv3_1" + top: "inc4e/conv3_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4e/conv3_1/scale" + type: "Scale" + bottom: "inc4e/conv3_1" + top: "inc4e/conv3_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4e/relu3_1" + type: "ReLU" + bottom: "inc4e/conv3_1" + top: "inc4e/conv3_1" +} +layer { + name: "inc4e/conv3_2" + type: "Convolution" + bottom: "inc4e/conv3_1" + top: "inc4e/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/conv3_2/bn" + type: "BatchNorm" + bottom: "inc4e/conv3_2" + top: "inc4e/conv3_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4e/conv3_2/scale" + type: "Scale" + bottom: "inc4e/conv3_2" + top: "inc4e/conv3_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4e/relu3_2" + type: "ReLU" + bottom: "inc4e/conv3_2" + top: "inc4e/conv3_2" +} +layer { + name: "inc4e/conv5_1" + type: "Convolution" + bottom: "inc4d" + top: "inc4e/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/conv5_1/bn" + type: "BatchNorm" + bottom: "inc4e/conv5_1" + top: "inc4e/conv5_1" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4e/conv5_1/scale" + type: "Scale" + bottom: "inc4e/conv5_1" + top: "inc4e/conv5_1" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4e/relu5_1" + type: "ReLU" + bottom: "inc4e/conv5_1" + top: "inc4e/conv5_1" +} +layer { + name: "inc4e/conv5_2" + type: "Convolution" + bottom: "inc4e/conv5_1" + top: "inc4e/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/conv5_2/bn" + type: "BatchNorm" + bottom: "inc4e/conv5_2" + top: "inc4e/conv5_2" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4e/conv5_2/scale" + type: "Scale" + bottom: "inc4e/conv5_2" + top: "inc4e/conv5_2" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4e/relu5_2" + type: "ReLU" + bottom: "inc4e/conv5_2" + top: "inc4e/conv5_2" +} +layer { + name: "inc4e/conv5_3" + type: "Convolution" + bottom: "inc4e/conv5_2" + top: "inc4e/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/conv5_3/bn" + type: "BatchNorm" + bottom: "inc4e/conv5_3" + top: "inc4e/conv5_3" + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + param { lr_mult: 0 decay_mult: 0 } + batch_norm_param { use_global_stats: true } +} +layer { + name: "inc4e/conv5_3/scale" + type: "Scale" + bottom: "inc4e/conv5_3" + top: "inc4e/conv5_3" + param { lr_mult: 0.1 decay_mult: 0 } + param { lr_mult: 0.1 decay_mult: 0 } + scale_param { bias_term: true } +} +layer { + name: "inc4e/relu5_3" + type: "ReLU" + bottom: "inc4e/conv5_3" + top: "inc4e/conv5_3" +} +layer { + name: "inc4e" + type: "Concat" + bottom: "inc4e/conv1" + bottom: "inc4e/conv3_2" + bottom: "inc4e/conv5_3" + top: "inc4e" +} + + +################################################################################ +## hyper feature +################################################################################ +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3" + top: "downsample" + pooling_param { + kernel_size: 3 stride: 2 pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "inc4e" + top: "upsample" + param { lr_mult: 0 decay_mult: 0 } + convolution_param { + num_output: 256 + kernel_size: 4 stride: 2 pad: 1 + group: 256 + weight_filler: { type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + type: "Concat" + bottom: "downsample" + bottom: "inc3e" + bottom: "upsample" + top: "concat" + concat_param { axis: 1 } +} +layer { + name: "convf" + type: "Convolution" + bottom: "concat" + top: "convf" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 256 + kernel_size: 1 stride: 1 pad: 0 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf" + type: "ReLU" + bottom: "convf" + top: "convf" +} + + +################################################################################ +## RPN +################################################################################ + +### RPN ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf" + top: "rpn_conv1" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 256 + kernel_size: 1 stride: 1 pad: 0 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} + +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 50 + kernel_size: 1 stride: 1 pad: 0 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_bbox_pred" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 100 + kernel_size: 1 stride: 1 pad: 0 + 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' + include { phase: TRAIN } + python_param { + module: 'rpn.anchor_target_layer' + layer: 'AnchorTargetLayer' + param_str: "{'feat_stride': 16, 'ratios': [0.5, 0.667, 1, 1.5, 2], 'scales': [3, 6, 9, 16, 32]}" + } +} +layer { + name: "rpn_loss_cls" + type: "SoftmaxWithLoss" + bottom: "rpn_cls_score_reshape" + bottom: "rpn_labels" + propagate_down: 1 + propagate_down: 0 + top: "rpn_loss_cls" + include { phase: TRAIN } + 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" + include { phase: TRAIN } + loss_weight: 1 + smooth_l1_loss_param { sigma: 3.0 } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Python' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + bottom: 'gt_boxes' + top: 'rois' + top: 'labels' + top: 'bbox_targets' + top: 'bbox_inside_weights' + top: 'bbox_outside_weights' + include { phase: TRAIN } + python_param { + module: 'rpn.proposal_layer' + layer: 'ProposalLayer2' + param_str: "{'feat_stride': 16, 'num_classes': 21, 'ratios': [0.5, 0.667, 1, 1.5, 2], 'scales': [3, 6, 9, 16, 32]}" + } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + include { phase: TEST } + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 6000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6_L" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6_L" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 512 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "fc6_U" + type: "InnerProduct" + bottom: "fc6_L" + top: "fc6_U" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 4096 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6_U" + top: "fc6_U" +} + +################################################################################ +## fc 7 +################################################################################ +layer { + name: "fc7_L" + type: "InnerProduct" + bottom: "fc6_U" + top: "fc7_L" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 128 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "fc7_U" + type: "InnerProduct" + bottom: "fc7_L" + top: "fc7_U" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 4096 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7_U" + top: "fc7_U" +} + +################################################################################ +## output +################################################################################ +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7_U" + top: "cls_score" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 21 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "bbox_pred" + type: "InnerProduct" + bottom: "fc7_U" + top: "bbox_pred" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 84 + 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" + include { phase: TRAIN } + loss_weight: 1 + loss_param { ignore_label: -1 normalize: true } +} +layer { + name: "loss_bbox" + type: "SmoothL1Loss" + bottom: "bbox_pred" + bottom: "bbox_targets" + bottom: "bbox_inside_weights" + bottom: "bbox_outside_weights" + top: "loss_bbox" + include { phase: TRAIN } + loss_weight: 1 +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" + include { phase: TEST } + loss_param { + ignore_label: -1 + normalize: true + } +} diff --git a/models/pvanet_obsolete/lite/test.pt b/models/pvanet_obsolete/lite/test.pt new file mode 100644 index 000000000..c2e2fe222 --- /dev/null +++ b/models/pvanet_obsolete/lite/test.pt @@ -0,0 +1,1651 @@ +name: "PVANET-lite" + +################################################################################ +## Input +################################################################################ + +layer { + name: "input-data" + type: "DummyData" + top: "data" + top: "im_info" + dummy_data_param { + shape { dim: 1 dim: 3 dim: 640 dim: 1056 } + shape { dim: 1 dim: 4 } + } +} + + +################################################################################ +## Conv 1 +################################################################################ +layer { + name: "conv1" + type: "Convolution" + bottom: "data" + top: "conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 + kernel_size: 4 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu1" + type: "ReLU" + bottom: "conv1" + top: "conv1" +} + +################################################################################ +## Conv 2 +################################################################################ +layer { + name: "conv2" + type: "Convolution" + bottom: "conv1" + top: "conv2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 48 + kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu2" + type: "ReLU" + bottom: "conv2" + top: "conv2" +} + +################################################################################ +## Conv 3 +################################################################################ +layer { + name: "conv3" + type: "Convolution" + bottom: "conv2" + top: "conv3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 + kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu3" + type: "ReLU" + bottom: "conv3" + top: "conv3" +} + +################################################################################ +## Inception 3a +################################################################################ +layer { + name: "inc3a/pool1" + type: "Pooling" + bottom: "conv3" + top: "inc3a/pool1" + pooling_param { + kernel_size: 3 stride: 2 pad: 0 + pool: MAX + } +} +layer { + name: "inc3a/conv1" + type: "Convolution" + bottom: "inc3a/pool1" + top: "inc3a/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/relu1" + type: "ReLU" + bottom: "inc3a/conv1" + top: "inc3a/conv1" +} +layer { + name: "inc3a/conv3_1" + type: "Convolution" + bottom: "conv3" + top: "inc3a/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/relu3_1" + type: "ReLU" + bottom: "inc3a/conv3_1" + top: "inc3a/conv3_1" +} +layer { + name: "inc3a/conv3_2" + type: "Convolution" + bottom: "inc3a/conv3_1" + top: "inc3a/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/relu3_2" + type: "ReLU" + bottom: "inc3a/conv3_2" + top: "inc3a/conv3_2" +} +layer { + name: "inc3a/conv5_1" + type: "Convolution" + bottom: "conv3" + top: "inc3a/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/relu5_1" + type: "ReLU" + bottom: "inc3a/conv5_1" + top: "inc3a/conv5_1" +} +layer { + name: "inc3a/conv5_2" + type: "Convolution" + bottom: "inc3a/conv5_1" + top: "inc3a/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/relu5_2" + type: "ReLU" + bottom: "inc3a/conv5_2" + top: "inc3a/conv5_2" +} +layer { + name: "inc3a/conv5_3" + type: "Convolution" + bottom: "inc3a/conv5_2" + top: "inc3a/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3a/relu5_3" + type: "ReLU" + bottom: "inc3a/conv5_3" + top: "inc3a/conv5_3" +} +layer { + name: "inc3a" + type: "Concat" + bottom: "inc3a/conv1" + bottom: "inc3a/conv3_2" + bottom: "inc3a/conv5_3" + top: "inc3a" +} + +################################################################################ +## Inception 3b +################################################################################ +layer { + name: "inc3b/conv1" + type: "Convolution" + bottom: "inc3a" + top: "inc3b/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/relu1" + type: "ReLU" + bottom: "inc3b/conv1" + top: "inc3b/conv1" +} +layer { + name: "inc3b/conv3_1" + type: "Convolution" + bottom: "inc3a" + top: "inc3b/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/relu3_1" + type: "ReLU" + bottom: "inc3b/conv3_1" + top: "inc3b/conv3_1" +} +layer { + name: "inc3b/conv3_2" + type: "Convolution" + bottom: "inc3b/conv3_1" + top: "inc3b/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/relu3_2" + type: "ReLU" + bottom: "inc3b/conv3_2" + top: "inc3b/conv3_2" +} +layer { + name: "inc3b/conv5_1" + type: "Convolution" + bottom: "inc3a" + top: "inc3b/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/relu5_1" + type: "ReLU" + bottom: "inc3b/conv5_1" + top: "inc3b/conv5_1" +} +layer { + name: "inc3b/conv5_2" + type: "Convolution" + bottom: "inc3b/conv5_1" + top: "inc3b/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/relu5_2" + type: "ReLU" + bottom: "inc3b/conv5_2" + top: "inc3b/conv5_2" +} +layer { + name: "inc3b/conv5_3" + type: "Convolution" + bottom: "inc3b/conv5_2" + top: "inc3b/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3b/relu5_3" + type: "ReLU" + bottom: "inc3b/conv5_3" + top: "inc3b/conv5_3" +} +layer { + name: "inc3b" + type: "Concat" + bottom: "inc3b/conv1" + bottom: "inc3b/conv3_2" + bottom: "inc3b/conv5_3" + top: "inc3b" +} + +################################################################################ +## Inception 3c +################################################################################ +layer { + name: "inc3c/conv1" + type: "Convolution" + bottom: "inc3b" + top: "inc3c/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/relu1" + type: "ReLU" + bottom: "inc3c/conv1" + top: "inc3c/conv1" +} +layer { + name: "inc3c/conv3_1" + type: "Convolution" + bottom: "inc3b" + top: "inc3c/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/relu3_1" + type: "ReLU" + bottom: "inc3c/conv3_1" + top: "inc3c/conv3_1" +} +layer { + name: "inc3c/conv3_2" + type: "Convolution" + bottom: "inc3c/conv3_1" + top: "inc3c/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/relu3_2" + type: "ReLU" + bottom: "inc3c/conv3_2" + top: "inc3c/conv3_2" +} +layer { + name: "inc3c/conv5_1" + type: "Convolution" + bottom: "inc3b" + top: "inc3c/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/relu5_1" + type: "ReLU" + bottom: "inc3c/conv5_1" + top: "inc3c/conv5_1" +} +layer { + name: "inc3c/conv5_2" + type: "Convolution" + bottom: "inc3c/conv5_1" + top: "inc3c/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/relu5_2" + type: "ReLU" + bottom: "inc3c/conv5_2" + top: "inc3c/conv5_2" +} +layer { + name: "inc3c/conv5_3" + type: "Convolution" + bottom: "inc3c/conv5_2" + top: "inc3c/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3c/relu5_3" + type: "ReLU" + bottom: "inc3c/conv5_3" + top: "inc3c/conv5_3" +} +layer { + name: "inc3c" + type: "Concat" + bottom: "inc3c/conv1" + bottom: "inc3c/conv3_2" + bottom: "inc3c/conv5_3" + top: "inc3c" +} + +################################################################################ +## Inception 3d +################################################################################ +layer { + name: "inc3d/conv1" + type: "Convolution" + bottom: "inc3c" + top: "inc3d/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/relu1" + type: "ReLU" + bottom: "inc3d/conv1" + top: "inc3d/conv1" +} +layer { + name: "inc3d/conv3_1" + type: "Convolution" + bottom: "inc3c" + top: "inc3d/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/relu3_1" + type: "ReLU" + bottom: "inc3d/conv3_1" + top: "inc3d/conv3_1" +} +layer { + name: "inc3d/conv3_2" + type: "Convolution" + bottom: "inc3d/conv3_1" + top: "inc3d/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/relu3_2" + type: "ReLU" + bottom: "inc3d/conv3_2" + top: "inc3d/conv3_2" +} +layer { + name: "inc3d/conv5_1" + type: "Convolution" + bottom: "inc3c" + top: "inc3d/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/relu5_1" + type: "ReLU" + bottom: "inc3d/conv5_1" + top: "inc3d/conv5_1" +} +layer { + name: "inc3d/conv5_2" + type: "Convolution" + bottom: "inc3d/conv5_1" + top: "inc3d/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/relu5_2" + type: "ReLU" + bottom: "inc3d/conv5_2" + top: "inc3d/conv5_2" +} +layer { + name: "inc3d/conv5_3" + type: "Convolution" + bottom: "inc3d/conv5_2" + top: "inc3d/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3d/relu5_3" + type: "ReLU" + bottom: "inc3d/conv5_3" + top: "inc3d/conv5_3" +} +layer { + name: "inc3d" + type: "Concat" + bottom: "inc3d/conv1" + bottom: "inc3d/conv3_2" + bottom: "inc3d/conv5_3" + top: "inc3d" +} + +################################################################################ +## Inception 3e +################################################################################ +layer { + name: "inc3e/conv1" + type: "Convolution" + bottom: "inc3d" + top: "inc3e/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/relu1" + type: "ReLU" + bottom: "inc3e/conv1" + top: "inc3e/conv1" +} +layer { + name: "inc3e/conv3_1" + type: "Convolution" + bottom: "inc3d" + top: "inc3e/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/relu3_1" + type: "ReLU" + bottom: "inc3e/conv3_1" + top: "inc3e/conv3_1" +} +layer { + name: "inc3e/conv3_2" + type: "Convolution" + bottom: "inc3e/conv3_1" + top: "inc3e/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 64 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/relu3_2" + type: "ReLU" + bottom: "inc3e/conv3_2" + top: "inc3e/conv3_2" +} +layer { + name: "inc3e/conv5_1" + type: "Convolution" + bottom: "inc3d" + top: "inc3e/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/relu5_1" + type: "ReLU" + bottom: "inc3e/conv5_1" + top: "inc3e/conv5_1" +} +layer { + name: "inc3e/conv5_2" + type: "Convolution" + bottom: "inc3e/conv5_1" + top: "inc3e/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/relu5_2" + type: "ReLU" + bottom: "inc3e/conv5_2" + top: "inc3e/conv5_2" +} +layer { + name: "inc3e/conv5_3" + type: "Convolution" + bottom: "inc3e/conv5_2" + top: "inc3e/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc3e/relu5_3" + type: "ReLU" + bottom: "inc3e/conv5_3" + top: "inc3e/conv5_3" +} +layer { + name: "inc3e" + type: "Concat" + bottom: "inc3e/conv1" + bottom: "inc3e/conv3_2" + bottom: "inc3e/conv5_3" + top: "inc3e" +} + +################################################################################ +## Inception 4a +################################################################################ +layer { + name: "inc4a/pool1" + type: "Pooling" + bottom: "inc3e" + top: "inc4a/pool1" + pooling_param { + kernel_size: 3 stride: 2 pad: 0 + pool: MAX + } +} +layer { + name: "inc4a/conv1" + type: "Convolution" + bottom: "inc4a/pool1" + top: "inc4a/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/relu1" + type: "ReLU" + bottom: "inc4a/conv1" + top: "inc4a/conv1" +} +layer { + name: "inc4a/conv3_1" + type: "Convolution" + bottom: "inc3e" + top: "inc4a/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/relu3_1" + type: "ReLU" + bottom: "inc4a/conv3_1" + top: "inc4a/conv3_1" +} +layer { + name: "inc4a/conv3_2" + type: "Convolution" + bottom: "inc4a/conv3_1" + top: "inc4a/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/relu3_2" + type: "ReLU" + bottom: "inc4a/conv3_2" + top: "inc4a/conv3_2" +} +layer { + name: "inc4a/conv5_1" + type: "Convolution" + bottom: "inc3e" + top: "inc4a/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/relu5_1" + type: "ReLU" + bottom: "inc4a/conv5_1" + top: "inc4a/conv5_1" +} +layer { + name: "inc4a/conv5_2" + type: "Convolution" + bottom: "inc4a/conv5_1" + top: "inc4a/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/relu5_2" + type: "ReLU" + bottom: "inc4a/conv5_2" + top: "inc4a/conv5_2" +} +layer { + name: "inc4a/conv5_3" + type: "Convolution" + bottom: "inc4a/conv5_2" + top: "inc4a/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 stride: 2 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4a/relu5_3" + type: "ReLU" + bottom: "inc4a/conv5_3" + top: "inc4a/conv5_3" +} +layer { + name: "inc4a" + type: "Concat" + bottom: "inc4a/conv1" + bottom: "inc4a/conv3_2" + bottom: "inc4a/conv5_3" + top: "inc4a" +} + +################################################################################ +## Inception 4b +################################################################################ +layer { + name: "inc4b/conv1" + type: "Convolution" + bottom: "inc4a" + top: "inc4b/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/relu1" + type: "ReLU" + bottom: "inc4b/conv1" + top: "inc4b/conv1" +} +layer { + name: "inc4b/conv3_1" + type: "Convolution" + bottom: "inc4a" + top: "inc4b/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/relu3_1" + type: "ReLU" + bottom: "inc4b/conv3_1" + top: "inc4b/conv3_1" +} +layer { + name: "inc4b/conv3_2" + type: "Convolution" + bottom: "inc4b/conv3_1" + top: "inc4b/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/relu3_2" + type: "ReLU" + bottom: "inc4b/conv3_2" + top: "inc4b/conv3_2" +} +layer { + name: "inc4b/conv5_1" + type: "Convolution" + bottom: "inc4a" + top: "inc4b/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/relu5_1" + type: "ReLU" + bottom: "inc4b/conv5_1" + top: "inc4b/conv5_1" +} +layer { + name: "inc4b/conv5_2" + type: "Convolution" + bottom: "inc4b/conv5_1" + top: "inc4b/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/relu5_2" + type: "ReLU" + bottom: "inc4b/conv5_2" + top: "inc4b/conv5_2" +} +layer { + name: "inc4b/conv5_3" + type: "Convolution" + bottom: "inc4b/conv5_2" + top: "inc4b/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4b/relu5_3" + type: "ReLU" + bottom: "inc4b/conv5_3" + top: "inc4b/conv5_3" +} +layer { + name: "inc4b" + type: "Concat" + bottom: "inc4b/conv1" + bottom: "inc4b/conv3_2" + bottom: "inc4b/conv5_3" + top: "inc4b" +} + +################################################################################ +## Inception 4c +################################################################################ +layer { + name: "inc4c/conv1" + type: "Convolution" + bottom: "inc4b" + top: "inc4c/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/relu1" + type: "ReLU" + bottom: "inc4c/conv1" + top: "inc4c/conv1" +} +layer { + name: "inc4c/conv3_1" + type: "Convolution" + bottom: "inc4b" + top: "inc4c/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/relu3_1" + type: "ReLU" + bottom: "inc4c/conv3_1" + top: "inc4c/conv3_1" +} +layer { + name: "inc4c/conv3_2" + type: "Convolution" + bottom: "inc4c/conv3_1" + top: "inc4c/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/relu3_2" + type: "ReLU" + bottom: "inc4c/conv3_2" + top: "inc4c/conv3_2" +} +layer { + name: "inc4c/conv5_1" + type: "Convolution" + bottom: "inc4b" + top: "inc4c/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/relu5_1" + type: "ReLU" + bottom: "inc4c/conv5_1" + top: "inc4c/conv5_1" +} +layer { + name: "inc4c/conv5_2" + type: "Convolution" + bottom: "inc4c/conv5_1" + top: "inc4c/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/relu5_2" + type: "ReLU" + bottom: "inc4c/conv5_2" + top: "inc4c/conv5_2" +} +layer { + name: "inc4c/conv5_3" + type: "Convolution" + bottom: "inc4c/conv5_2" + top: "inc4c/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4c/relu5_3" + type: "ReLU" + bottom: "inc4c/conv5_3" + top: "inc4c/conv5_3" +} +layer { + name: "inc4c" + type: "Concat" + bottom: "inc4c/conv1" + bottom: "inc4c/conv3_2" + bottom: "inc4c/conv5_3" + top: "inc4c" +} + +################################################################################ +## Inception 4d +################################################################################ +layer { + name: "inc4d/conv1" + type: "Convolution" + bottom: "inc4c" + top: "inc4d/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/relu1" + type: "ReLU" + bottom: "inc4d/conv1" + top: "inc4d/conv1" +} +layer { + name: "inc4d/conv3_1" + type: "Convolution" + bottom: "inc4c" + top: "inc4d/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/relu3_1" + type: "ReLU" + bottom: "inc4d/conv3_1" + top: "inc4d/conv3_1" +} +layer { + name: "inc4d/conv3_2" + type: "Convolution" + bottom: "inc4d/conv3_1" + top: "inc4d/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/relu3_2" + type: "ReLU" + bottom: "inc4d/conv3_2" + top: "inc4d/conv3_2" +} +layer { + name: "inc4d/conv5_1" + type: "Convolution" + bottom: "inc4c" + top: "inc4d/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/relu5_1" + type: "ReLU" + bottom: "inc4d/conv5_1" + top: "inc4d/conv5_1" +} +layer { + name: "inc4d/conv5_2" + type: "Convolution" + bottom: "inc4d/conv5_1" + top: "inc4d/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/relu5_2" + type: "ReLU" + bottom: "inc4d/conv5_2" + top: "inc4d/conv5_2" +} +layer { + name: "inc4d/conv5_3" + type: "Convolution" + bottom: "inc4d/conv5_2" + top: "inc4d/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4d/relu5_3" + type: "ReLU" + bottom: "inc4d/conv5_3" + top: "inc4d/conv5_3" +} +layer { + name: "inc4d" + type: "Concat" + bottom: "inc4d/conv1" + bottom: "inc4d/conv3_2" + bottom: "inc4d/conv5_3" + top: "inc4d" +} + +################################################################################ +## Inception 4e +################################################################################ +layer { + name: "inc4e/conv1" + type: "Convolution" + bottom: "inc4d" + top: "inc4e/conv1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 128 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/relu1" + type: "ReLU" + bottom: "inc4e/conv1" + top: "inc4e/conv1" +} +layer { + name: "inc4e/conv3_1" + type: "Convolution" + bottom: "inc4d" + top: "inc4e/conv3_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/relu3_1" + type: "ReLU" + bottom: "inc4e/conv3_1" + top: "inc4e/conv3_1" +} +layer { + name: "inc4e/conv3_2" + type: "Convolution" + bottom: "inc4e/conv3_1" + top: "inc4e/conv3_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 96 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/relu3_2" + type: "ReLU" + bottom: "inc4e/conv3_2" + top: "inc4e/conv3_2" +} +layer { + name: "inc4e/conv5_1" + type: "Convolution" + bottom: "inc4d" + top: "inc4e/conv5_1" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 16 kernel_size: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/relu5_1" + type: "ReLU" + bottom: "inc4e/conv5_1" + top: "inc4e/conv5_1" +} +layer { + name: "inc4e/conv5_2" + type: "Convolution" + bottom: "inc4e/conv5_1" + top: "inc4e/conv5_2" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/relu5_2" + type: "ReLU" + bottom: "inc4e/conv5_2" + top: "inc4e/conv5_2" +} +layer { + name: "inc4e/conv5_3" + type: "Convolution" + bottom: "inc4e/conv5_2" + top: "inc4e/conv5_3" + param { lr_mult: 0.1 decay_mult: 0.1 } + param { lr_mult: 0.2 decay_mult: 0 } + convolution_param { + num_output: 32 kernel_size: 3 pad: 1 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "inc4e/relu5_3" + type: "ReLU" + bottom: "inc4e/conv5_3" + top: "inc4e/conv5_3" +} +layer { + name: "inc4e" + type: "Concat" + bottom: "inc4e/conv1" + bottom: "inc4e/conv3_2" + bottom: "inc4e/conv5_3" + top: "inc4e" +} + + +################################################################################ +## hyper feature +################################################################################ +layer { + name: "downsample" + type: "Pooling" + bottom: "conv3" + top: "downsample" + pooling_param { + kernel_size: 3 stride: 2 pad: 0 + pool: MAX + } +} +layer { + name: "upsample" + type: "Deconvolution" + bottom: "inc4e" + top: "upsample" + param { lr_mult: 0 decay_mult: 0 } + convolution_param { + num_output: 256 + kernel_size: 4 stride: 2 pad: 1 + group: 256 + weight_filler: { type: "bilinear" } + bias_term: false + } +} +layer { + name: "concat" + type: "Concat" + bottom: "downsample" + bottom: "inc3e" + bottom: "upsample" + top: "concat" + concat_param { axis: 1 } +} +layer { + name: "convf" + type: "Convolution" + bottom: "concat" + top: "convf" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 256 + kernel_size: 1 stride: 1 pad: 0 + weight_filler { type: "xavier" std: 0.1 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "reluf" + type: "ReLU" + bottom: "convf" + top: "convf" +} + + +################################################################################ +## RPN +################################################################################ + +### RPN ### +layer { + name: "rpn_conv1" + type: "Convolution" + bottom: "convf" + top: "rpn_conv1" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 256 + kernel_size: 1 stride: 1 pad: 0 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_relu1" + type: "ReLU" + bottom: "rpn_conv1" + top: "rpn_conv1" +} + +layer { + name: "rpn_cls_score" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_cls_score" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 50 + kernel_size: 1 stride: 1 pad: 0 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "rpn_bbox_pred" + type: "Convolution" + bottom: "rpn_conv1" + top: "rpn_bbox_pred" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + convolution_param { + num_output: 100 + kernel_size: 1 stride: 1 pad: 0 + 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 } } +} + +################################################################################ +## 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: 50 dim: -1 dim: 0 } } +} +layer { + name: 'proposal' + type: 'Proposal' + bottom: 'rpn_cls_prob_reshape' + bottom: 'rpn_bbox_pred' + bottom: 'im_info' + top: 'rois' + top: 'scores' + proposal_param { + ratio: 0.5 ratio: 0.667 ratio: 1.0 ratio: 1.5 ratio: 2.0 + scale: 3 scale: 6 scale: 9 scale: 16 scale: 32 + base_size: 16 + feat_stride: 16 + pre_nms_topn: 6000 + post_nms_topn: 200 + nms_thresh: 0.7 + min_size: 16 + } +} + + +################################################################################ +## RCNN +################################################################################ +layer { + name: "roi_pool_conv5" + type: "ROIPooling" + bottom: "convf" + bottom: "rois" + top: "roi_pool_conv5" + roi_pooling_param { + pooled_w: 6 pooled_h: 6 + spatial_scale: 0.0625 # 1/16 + } +} +layer { + name: "fc6_L" + type: "InnerProduct" + bottom: "roi_pool_conv5" + top: "fc6_L" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 512 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "fc6_U" + type: "InnerProduct" + bottom: "fc6_L" + top: "fc6_U" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 4096 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu6" + type: "ReLU" + bottom: "fc6_U" + top: "fc6_U" +} + +################################################################################ +## fc 7 +################################################################################ +layer { + name: "fc7_L" + type: "InnerProduct" + bottom: "fc6_U" + top: "fc7_L" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 128 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "fc7_U" + type: "InnerProduct" + bottom: "fc7_L" + top: "fc7_U" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 4096 + weight_filler { type: "xavier" std: 0.005 } + bias_filler { type: "constant" value: 0.1 } + } +} +layer { + name: "relu7" + type: "ReLU" + bottom: "fc7_U" + top: "fc7_U" +} + +################################################################################ +## output +################################################################################ +layer { + name: "cls_score" + type: "InnerProduct" + bottom: "fc7_U" + top: "cls_score" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 21 + weight_filler { type: "gaussian" std: 0.01 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "bbox_pred" + type: "InnerProduct" + bottom: "fc7_U" + top: "bbox_pred" + param { lr_mult: 1 decay_mult: 1 } + param { lr_mult: 2 decay_mult: 0 } + inner_product_param { + num_output: 84 + weight_filler { type: "gaussian" std: 0.001 } + bias_filler { type: "constant" value: 0 } + } +} +layer { + name: "cls_prob" + type: "Softmax" + bottom: "cls_score" + top: "cls_prob" + loss_param { + ignore_label: -1 + normalize: true + } +} diff --git a/tools/demo.py b/tools/demo.py index 631c68a41..9cbb01bc4 100755 --- a/tools/demo.py +++ b/tools/demo.py @@ -14,7 +14,7 @@ """ import _init_paths -from fast_rcnn.config import cfg +from fast_rcnn.config import cfg, cfg_from_file, cfg_from_list, get_output_dir from fast_rcnn.test import im_detect from fast_rcnn.nms_wrapper import nms from utils.timer import Timer @@ -31,10 +31,6 @@ 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor') -NETS = {'vgg16': ('VGG16', - 'VGG16_faster_rcnn_final.caffemodel'), - 'zf': ('ZF', - 'ZF_faster_rcnn_final.caffemodel')} def vis_detections(im, class_name, dets, thresh=0.5): @@ -79,7 +75,8 @@ def demo(net, image_name): # Detect all object classes and regress object bounds timer = Timer() timer.tic() - scores, boxes = im_detect(net, im) + _t = {'im_preproc': Timer(), 'im_net' : Timer(), 'im_postproc': Timer(), 'misc' : Timer()} + scores, boxes = im_detect(net, im, _t) timer.toc() print ('Detection took {:.3f}s for ' '{:d} object proposals').format(timer.total_time, boxes.shape[0]) @@ -105,44 +102,48 @@ def parse_args(): parser.add_argument('--cpu', dest='cpu_mode', help='Use CPU mode (overrides --gpu)', action='store_true') - parser.add_argument('--net', dest='demo_net', help='Network to use [vgg16]', - choices=NETS.keys(), default='vgg16') + parser.add_argument('--def', dest='prototxt', + help='prototxt file defining the network', + default=None, type=str) + parser.add_argument('--net', dest='caffemodel', + help='model to test', + default=None, type=str) args = parser.parse_args() return args if __name__ == '__main__': + args = parse_args() cfg.TEST.HAS_RPN = True # Use RPN for proposals - + cfg.TEST.SCALE_MULTIPLE_OF=32 + cfg.TEST.MAX_SIZE=2000 + cfg.TEST.SCALES=(640,) + cfg.TEST.BBOX_VOTE= True + cfg.TEST.NMS=0.4 + cfg.TEST.RPN_PRE_NMS_TOP_N=12000 + cfg.TEST.RPN_POST_NMS_TOP_N=200 args = parse_args() + + while not os.path.exists(args.caffemodel) and args.wait: + print('Waiting for {} to exist...'.format(args.caffemodel)) + time.sleep(10) - prototxt = os.path.join(cfg.MODELS_DIR, NETS[args.demo_net][0], - 'faster_rcnn_alt_opt', 'faster_rcnn_test.pt') - caffemodel = os.path.join(cfg.DATA_DIR, 'faster_rcnn_models', - NETS[args.demo_net][1]) - - if not os.path.isfile(caffemodel): - raise IOError(('{:s} not found.\nDid you run ./data/script/' - 'fetch_faster_rcnn_models.sh?').format(caffemodel)) - - if args.cpu_mode: - caffe.set_mode_cpu() - else: - caffe.set_mode_gpu() - caffe.set_device(args.gpu_id) - cfg.GPU_ID = args.gpu_id - net = caffe.Net(prototxt, caffemodel, caffe.TEST) + caffe.set_mode_gpu() + caffe.set_device(args.gpu_id) + net = caffe.Net(args.prototxt, args.caffemodel, caffe.TEST) + net.name = os.path.splitext(os.path.basename(args.caffemodel))[0] - print '\n\nLoaded network {:s}'.format(caffemodel) # Warmup on a dummy image im = 128 * np.ones((300, 500, 3), dtype=np.uint8) + _t = {'im_preproc': Timer(), 'im_net' : Timer(), 'im_postproc': Timer(), 'misc' : Timer()} for i in xrange(2): - _, _= im_detect(net, im) + _, _= im_detect(net, im, _t) - im_names = ['000456.jpg', '000542.jpg', '001150.jpg', - '001763.jpg', '004545.jpg'] + im_names = ['000080.jpg', '000086.jpg', '000176.jpg', + '000508.jpg', '000846.jpg', '001248.jpg', + '004585.jpg', '005205.jpg', '009941.jpg'] for im_name in im_names: print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~' print 'Demo for data/demo/{}'.format(im_name) diff --git a/tools/gen_merged_model.py b/tools/gen_merged_model.py new file mode 100644 index 000000000..b0338199a --- /dev/null +++ b/tools/gen_merged_model.py @@ -0,0 +1,231 @@ +#!/usr/bin/env python +import _init_paths +import numpy as np +import sys +import os +import os.path as osp +import google.protobuf as pb +from argparse import ArgumentParser +import sys +import caffe + + +def load_and_fill_biases(src_model, src_weights, dst_model, dst_weights): + with open(src_model) as f: + model = caffe.proto.caffe_pb2.NetParameter() + pb.text_format.Merge(f.read(), model) + + for i, layer in enumerate(model.layer): + if layer.type == 'Convolution': # or layer.type == 'Scale': + # Add bias layer if needed + if layer.convolution_param.bias_term == False: + layer.convolution_param.bias_term = True + layer.convolution_param.bias_filler.type = 'constant' + layer.convolution_param.bias_filler.value = 0.0 + + with open(dst_model, 'w') as f: + f.write(pb.text_format.MessageToString(model)) + + caffe.set_mode_cpu() + net_src = caffe.Net(src_model, src_weights, caffe.TEST) + net_dst = caffe.Net(dst_model, caffe.TEST) + for key in net_src.params.keys(): + for i in range(len(net_src.params[key])): + net_dst.params[key][i].data[:] = net_src.params[key][i].data[:] + + if dst_weights is not None: + # Store params + pass + + return net_dst + + +def merge_conv_and_bn(net, i_conv, i_bn, i_scale): + # This is based on Kyeheyon's work + assert(i_conv != None) + assert(i_bn != None) + + def copy_double(data): + return np.array(data, copy=True, dtype=np.double) + + key_conv = net._layer_names[i_conv] + key_bn = net._layer_names[i_bn] + key_scale = net._layer_names[i_scale] if i_scale else None + + # Copy + bn_mean = copy_double(net.params[key_bn][0].data) + bn_variance = copy_double(net.params[key_bn][1].data) + num_bn_samples = copy_double(net.params[key_bn][2].data) + + # and Invalidate the BN layer + net.params[key_bn][0].data[:] = 0 + net.params[key_bn][1].data[:] = 1 + net.params[key_bn][2].data[:] = 1 + if num_bn_samples[0] == 0: + num_bn_samples[0] = 1 + + if net.params.has_key(key_scale): + print 'Combine {:s} + {:s} + {:s}'.format(key_conv, key_bn, key_scale) + scale_weight = copy_double(net.params[key_scale][0].data) + scale_bias = copy_double(net.params[key_scale][1].data) + net.params[key_scale][0].data[:] = 1 + net.params[key_scale][1].data[:] = 0 + else: + print 'Combine {:s} + {:s}'.format(key_conv, key_bn) + scale_weight = 1 + scale_bias = 0 + + weight = copy_double(net.params[key_conv][0].data) + bias = copy_double(net.params[key_conv][1].data) + alpha = scale_weight / np.sqrt(bn_variance / num_bn_samples[0] + np.finfo(np.double).eps) + net.params[key_conv][1].data[:] = bias * alpha + (scale_bias - (bn_mean / num_bn_samples[0]) * alpha) + for i in range(len(alpha)): + net.params[key_conv][0].data[i] = weight[i] * alpha[i] + +def merge_batchnorms_in_net(net): + # for each BN + for i, layer in enumerate(net.layers): + if layer.type != 'BatchNorm': + continue + + l_name = net._layer_names[i] + + l_bottom = net.bottom_names[l_name] + assert(len(l_bottom) == 1) + l_bottom = l_bottom[0] + l_top = net.top_names[l_name] + assert(len(l_top) == 1) + l_top = l_top[0] + + can_be_absorbed = True + + # Search all (bottom) layers + for j in xrange(i - 1, -1, -1): + tops_of_j = net.top_names[net._layer_names[j]] + if l_bottom in tops_of_j: + if net.layers[j].type not in ['Convolution', 'InnerProduct']: + can_be_absorbed = False + else: + # There must be only one layer + conv_ind = j + break + + if not can_be_absorbed: + continue + + # find the following Scale + scale_ind = None + for j in xrange(i + 1, len(net.layers)): + bottoms_of_j = net.bottom_names[net._layer_names[j]] + if l_top in bottoms_of_j: + if scale_ind: + # Followed by two or more layers + scale_ind = None + break + + if net.layers[j].type in ['Scale']: + scale_ind = j + + top_of_j = net.top_names[net._layer_names[j]][0] + if top_of_j == bottoms_of_j[0]: + # On-the-fly => Can be merged + break + + else: + # Followed by a layer which is not 'Scale' + scale_ind = None + break + + + merge_conv_and_bn(net, conv_ind, i, scale_ind) + + return net + + +def process_model(net, src_model, dst_model, func_loop, func_finally): + with open(src_model) as f: + model = caffe.proto.caffe_pb2.NetParameter() + pb.text_format.Merge(f.read(), model) + + + for i, layer in enumerate(model.layer): + map(lambda x: x(layer, net, model, i), func_loop) + + map(lambda x: x(net, model), func_finally) + + with open(dst_model, 'w') as f: + f.write(pb.text_format.MessageToString(model)) + + +# Functions to remove (redundant) BN and Scale layers +to_delete_empty = [] +def pick_empty_layers(layer, net, model, i): + if layer.type not in ['BatchNorm', 'Scale']: + return + + bottom = layer.bottom[0] + top = layer.top[0] + + if (bottom != top): + # Not supperted yet + return + + if layer.type == 'BatchNorm': + zero_mean = np.all(net.params[layer.name][0].data == 0) + one_var = np.all(net.params[layer.name][1].data == 1) + length_is_1 = (net.params['conv1_1/bn'][2].data == 1) or (net.params[layer.name][2].data == 0) + + if zero_mean and one_var and length_is_1: + print 'Delete layer: {}'.format(layer.name) + to_delete_empty.append(layer) + + if layer.type == 'Scale': + no_scaling = np.all(net.params[layer.name][0].data == 1) + zero_bias = np.all(net.params[layer.name][1].data == 0) + + if no_scaling and zero_bias: + print 'Delete layer: {}'.format(layer.name) + to_delete_empty.append(layer) + +def remove_empty_layers(net, model): + map(model.layer.remove, to_delete_empty) + + +# A function to add 'engine: CAFFE' param into 1x1 convolutions +def set_engine_caffe(layer, net, model, i): + if layer.type == 'Convolution': + if layer.convolution_param.kernel_size == 1\ + or (layer.convolution_param.kernel_h == layer.convolution_param.kernel_w == 1): + layer.convolution_param.engine = dict(layer.convolution_param.Engine.items())['CAFFE'] + + +def main(args): + # Set default output file names + if args.output_model is None: + file_name = osp.splitext(args.model)[0] + args.output_model = file_name + '_inference.prototxt' + if args.output_weights is None: + file_name = osp.splitext(args.weights)[0] + args.output_weights = file_name + '_inference.caffemodel' + + net = load_and_fill_biases(args.model, args.weights, args.model + '.temp.pt', None) + + net = merge_batchnorms_in_net(net) + + process_model(net, args.model + '.temp.pt', args.output_model, + [pick_empty_layers, set_engine_caffe], + [remove_empty_layers]) + + # Store params + net.save(args.output_weights) + + +if __name__ == '__main__': + parser = ArgumentParser( + description="Generate Batch Normalized model for inference") + parser.add_argument('model', help="The net definition prototxt") + parser.add_argument('weights', help="The weights caffemodel") + parser.add_argument('--output_model') + parser.add_argument('--output_weights') + args = parser.parse_args() + main(args) \ No newline at end of file