proto.h 26.8 KB
#ifndef PROTO_H_
#define PROTO_H
#include <iostream>
#include <vector>
using namespace std;


void loadProtoArray(vector <string> *protoArray)
{
	string str0 = "name: \"mobile_10_SSD10_416x224_416x224_mobile_shift2_mindim+0.6_test\"\ninput: \"data\"\ninput_shape{\ndim: 1\ndim: 3\ndim: 224\ndim: 416\n}\
				  \nlayer{\nname: \"conv1\"\ntype: \"Convolution\"\nbottom: \"data\"\ntop: \"conv1\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 32\nbias_term: true\npad: 1\nkernel_size: 3\nstride: 2\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu1\"\ntype: \"ReLU\"\nbottom: \"conv1\"\ntop: \"conv1\"\n}\
				  \nlayer{\nname: \"conv2_1/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv1\"\ntop: \"conv2_1/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 32\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 32\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu2_1/dw\"\ntype: \"ReLU\"\nbottom: \"conv2_1/dw\"\ntop: \"conv2_1/dw\"\n}\
				  ";
	protoArray->push_back(str0);

	string str1 = "\nlayer{\nname: \"conv2_1/sep\"\ntype: \"Convolution\"\nbottom: \"conv2_1/dw\"\ntop: \"conv2_1/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 64\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu2_1/sep\"\ntype: \"ReLU\"\nbottom: \"conv2_1/sep\"\ntop: \"conv2_1/sep\"\n}\
				  \nlayer{\nname: \"conv2_2/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv2_1/sep\"\ntop: \"conv2_2/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 64\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 64\nstride: 2\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu2_2/dw\"\ntype: \"ReLU\"\nbottom: \"conv2_2/dw\"\ntop: \"conv2_2/dw\"\n}\
				  \nlayer{\nname: \"conv2_2/sep\"\ntype: \"Convolution\"\nbottom: \"conv2_2/dw\"\ntop: \"conv2_2/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 128\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  ";
	protoArray->push_back(str1);

	string str2 = "\nlayer{\nname: \"relu2_2/sep\"\ntype: \"ReLU\"\nbottom: \"conv2_2/sep\"\ntop: \"conv2_2/sep\"\n}\
				  \nlayer{\nname: \"conv3_1/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv2_2/sep\"\ntop: \"conv3_1/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 128\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 128\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu3_1/dw\"\ntype: \"ReLU\"\nbottom: \"conv3_1/dw\"\ntop: \"conv3_1/dw\"\n}\
				  \nlayer{\nname: \"conv3_1/sep\"\ntype: \"Convolution\"\nbottom: \"conv3_1/dw\"\ntop: \"conv3_1/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 128\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu3_1/sep\"\ntype: \"ReLU\"\nbottom: \"conv3_1/sep\"\ntop: \"conv3_1/sep\"\n}\
				  ";
	protoArray->push_back(str2);

	string str3 = "\nlayer{\nname: \"conv3_2/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv3_1/sep\"\ntop: \"conv3_2/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 128\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 128\nstride: 2\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu3_2/dw\"\ntype: \"ReLU\"\nbottom: \"conv3_2/dw\"\ntop: \"conv3_2/dw\"\n}\
				  \nlayer{\nname: \"conv3_2/sep\"\ntype: \"Convolution\"\nbottom: \"conv3_2/dw\"\ntop: \"conv3_2/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 256\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu3_2/sep\"\ntype: \"ReLU\"\nbottom: \"conv3_2/sep\"\ntop: \"conv3_2/sep\"\n}\
				  \nlayer{\nname: \"conv4_1/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv3_2/sep\"\ntop: \"conv4_1/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 256\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 256\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  ";
	protoArray->push_back(str3);

	string str4 = "\nlayer{\nname: \"relu4_1/dw\"\ntype: \"ReLU\"\nbottom: \"conv4_1/dw\"\ntop: \"conv4_1/dw\"\n}\
				  \nlayer{\nname: \"conv4_1/sep\"\ntype: \"Convolution\"\nbottom: \"conv4_1/dw\"\ntop: \"conv4_1/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 256\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu4_1/sep\"\ntype: \"ReLU\"\nbottom: \"conv4_1/sep\"\ntop: \"conv4_1/sep\"\n}\
				  \nlayer{\nname: \"conv4_2/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv4_1/sep\"\ntop: \"conv4_2/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 256\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 256\nstride: 2\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu4_2/dw\"\ntype: \"ReLU\"\nbottom: \"conv4_2/dw\"\ntop: \"conv4_2/dw\"\n}\
				  ";
	protoArray->push_back(str4);

	string str5 = "\nlayer{\nname: \"conv4_2/sep\"\ntype: \"Convolution\"\nbottom: \"conv4_2/dw\"\ntop: \"conv4_2/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu4_2/sep\"\ntype: \"ReLU\"\nbottom: \"conv4_2/sep\"\ntop: \"conv4_2/sep\"\n}\
				  \nlayer{\nname: \"conv5_1/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv4_2/sep\"\ntop: \"conv5_1/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 512\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_1/dw\"\ntype: \"ReLU\"\nbottom: \"conv5_1/dw\"\ntop: \"conv5_1/dw\"\n}\
				  \nlayer{\nname: \"conv5_1/sep\"\ntype: \"Convolution\"\nbottom: \"conv5_1/dw\"\ntop: \"conv5_1/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  ";
	protoArray->push_back(str5);

	string str6 = "\nlayer{\nname: \"relu5_1/sep\"\ntype: \"ReLU\"\nbottom: \"conv5_1/sep\"\ntop: \"conv5_1/sep\"\n}\
				  \nlayer{\nname: \"conv5_2/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv5_1/sep\"\ntop: \"conv5_2/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 512\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_2/dw\"\ntype: \"ReLU\"\nbottom: \"conv5_2/dw\"\ntop: \"conv5_2/dw\"\n}\
				  \nlayer{\nname: \"conv5_2/sep\"\ntype: \"Convolution\"\nbottom: \"conv5_2/dw\"\ntop: \"conv5_2/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_2/sep\"\ntype: \"ReLU\"\nbottom: \"conv5_2/sep\"\ntop: \"conv5_2/sep\"\n}\
				  ";
	protoArray->push_back(str6);

	string str7 = "\nlayer{\nname: \"conv5_3/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv5_2/sep\"\ntop: \"conv5_3/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 512\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_3/dw\"\ntype: \"ReLU\"\nbottom: \"conv5_3/dw\"\ntop: \"conv5_3/dw\"\n}\
				  \nlayer{\nname: \"conv5_3/sep\"\ntype: \"Convolution\"\nbottom: \"conv5_3/dw\"\ntop: \"conv5_3/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_3/sep\"\ntype: \"ReLU\"\nbottom: \"conv5_3/sep\"\ntop: \"conv5_3/sep\"\n}\
				  \nlayer{\nname: \"conv5_4/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv5_3/sep\"\ntop: \"conv5_4/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 512\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  ";
	protoArray->push_back(str7);

	string str8 = "\nlayer{\nname: \"relu5_4/dw\"\ntype: \"ReLU\"\nbottom: \"conv5_4/dw\"\ntop: \"conv5_4/dw\"\n}\
				  \nlayer{\nname: \"conv5_4/sep\"\ntype: \"Convolution\"\nbottom: \"conv5_4/dw\"\ntop: \"conv5_4/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_4/sep\"\ntype: \"ReLU\"\nbottom: \"conv5_4/sep\"\ntop: \"conv5_4/sep\"\n}\
				  \nlayer{\nname: \"conv5_5/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv5_4/sep\"\ntop: \"conv5_5/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 512\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_5/dw\"\ntype: \"ReLU\"\nbottom: \"conv5_5/dw\"\ntop: \"conv5_5/dw\"\n}\
				  ";
	protoArray->push_back(str8);

	string str9 = "\nlayer{\nname: \"conv5_5/sep\"\ntype: \"Convolution\"\nbottom: \"conv5_5/dw\"\ntop: \"conv5_5/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_5/sep\"\ntype: \"ReLU\"\nbottom: \"conv5_5/sep\"\ntop: \"conv5_5/sep\"\n}\
				  \nlayer{\nname: \"conv5_6/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv5_5/sep\"\ntop: \"conv5_6/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 512\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 512\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  \nlayer{\nname: \"relu5_6/dw\"\ntype: \"ReLU\"\nbottom: \"conv5_6/dw\"\ntop: \"conv5_6/dw\"\n}\
				  \nlayer{\nname: \"conv5_6/sep\"\ntype: \"Convolution\"\nbottom: \"conv5_6/dw\"\ntop: \"conv5_6/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 1024\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				  ";
	protoArray->push_back(str9);

	string str10 = "\nlayer{\nname: \"relu5_6/sep\"\ntype: \"ReLU\"\nbottom: \"conv5_6/sep\"\ntop: \"conv5_6/sep\"\n}\
				   \nlayer{\nname: \"conv6/dw\"\ntype: \"DepthwiseConvolution\"\nbottom: \"conv5_6/sep\"\ntop: \"conv6/dw\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 1024\nbias_term: true\npad: 1\nkernel_size: 3\ngroup: 1024\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\ndilation: 2\n}\n}\
				   \nlayer{\nname: \"relu6/dw\"\ntype: \"ReLU\"\nbottom: \"conv6/dw\"\ntop: \"conv6/dw\"\n}\
				   \nlayer{\nname: \"conv6/sep\"\ntype: \"Convolution\"\nbottom: \"conv6/dw\"\ntop: \"conv6/sep\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nconvolution_param{\nnum_output: 1024\nbias_term: true\npad: 0\nkernel_size: 1\nstride: 1\nweight_filler{\ntype: \"msra\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"relu6/sep\"\ntype: \"ReLU\"\nbottom: \"conv6/sep\"\ntop: \"conv6/sep\"\n}\
				   ";
	protoArray->push_back(str10);

	string str11 = "\nlayer{\nname: \"conv6_1\"\ntype: \"Convolution\"\nbottom: \"conv6/sep\"\ntop: \"conv6_1\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 256\npad: 0\nkernel_size: 1\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv6_1_relu\"\ntype: \"ReLU\"\nbottom: \"conv6_1\"\ntop: \"conv6_1\"\n}\
				   \nlayer{\nname: \"conv6_2\"\ntype: \"Convolution\"\nbottom: \"conv6_1\"\ntop: \"conv6_2\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 512\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 2\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv6_2_relu\"\ntype: \"ReLU\"\nbottom: \"conv6_2\"\ntop: \"conv6_2\"\n}\
				   \nlayer{\nname: \"conv7_1\"\ntype: \"Convolution\"\nbottom: \"conv6_2\"\ntop: \"conv7_1\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 128\npad: 0\nkernel_size: 1\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   ";
	protoArray->push_back(str11);

	string str12 = "\nlayer{\nname: \"conv7_1_relu\"\ntype: \"ReLU\"\nbottom: \"conv7_1\"\ntop: \"conv7_1\"\n}\
				   \nlayer{\nname: \"conv7_2\"\ntype: \"Convolution\"\nbottom: \"conv7_1\"\ntop: \"conv7_2\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 256\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 2\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv7_2_relu\"\ntype: \"ReLU\"\nbottom: \"conv7_2\"\ntop: \"conv7_2\"\n}\
				   \nlayer{\nname: \"conv8_1\"\ntype: \"Convolution\"\nbottom: \"conv7_2\"\ntop: \"conv8_1\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 128\npad: 0\nkernel_size: 1\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv8_1_relu\"\ntype: \"ReLU\"\nbottom: \"conv8_1\"\ntop: \"conv8_1\"\n}\
				   ";
	protoArray->push_back(str12);

	string str13 = "\nlayer{\nname: \"conv8_2\"\ntype: \"Convolution\"\nbottom: \"conv8_1\"\ntop: \"conv8_2\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 256\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 2\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv8_2_relu\"\ntype: \"ReLU\"\nbottom: \"conv8_2\"\ntop: \"conv8_2\"\n}\
				   \nlayer{\nname: \"conv4_1/sep_mbox_loc\"\ntype: \"Convolution\"\nbottom: \"conv4_1/sep\"\ntop: \"conv4_1/sep_mbox_loc\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 32\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv4_1/sep_mbox_loc_perm\"\ntype: \"Permute\"\nbottom: \"conv4_1/sep_mbox_loc\"\ntop: \"conv4_1/sep_mbox_loc_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv4_1/sep_mbox_loc_flat\"\ntype: \"Flatten\"\nbottom: \"conv4_1/sep_mbox_loc_perm\"\ntop: \"conv4_1/sep_mbox_loc_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   ";
	protoArray->push_back(str13);

	string str14 = "\nlayer{\nname: \"conv4_1/sep_mbox_conf\"\ntype: \"Convolution\"\nbottom: \"conv4_1/sep\"\ntop: \"conv4_1/sep_mbox_conf\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 88\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv4_1/sep_mbox_conf_perm\"\ntype: \"Permute\"\nbottom: \"conv4_1/sep_mbox_conf\"\ntop: \"conv4_1/sep_mbox_conf_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv4_1/sep_mbox_conf_flat\"\ntype: \"Flatten\"\nbottom: \"conv4_1/sep_mbox_conf_perm\"\ntop: \"conv4_1/sep_mbox_conf_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv4_1/sep_mbox_priorbox\"\ntype: \"PriorBox\"\nbottom: \"conv4_1/sep\"\nbottom: \"data\"\ntop: \"conv4_1/sep_mbox_priorbox\"\nprior_box_param{\nmin_size: 10.0\nmax_size: 20.0\naspect_ratio: 0.6\naspect_ratio: 0.3\nflip: false\nclip: false\nvariance: 0.1\nvariance: 0.1\nvariance: 0.2\nvariance: 0.2\noffset: 0.5\ncache: true\nshift: true\n}\n}\
				   \nlayer{\nname: \"conv6/sep_mbox_loc\"\ntype: \"Convolution\"\nbottom: \"conv6/sep\"\ntop: \"conv6/sep_mbox_loc\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 48\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   ";
	protoArray->push_back(str14);

	string str15 = "\nlayer{\nname: \"conv6/sep_mbox_loc_perm\"\ntype: \"Permute\"\nbottom: \"conv6/sep_mbox_loc\"\ntop: \"conv6/sep_mbox_loc_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv6/sep_mbox_loc_flat\"\ntype: \"Flatten\"\nbottom: \"conv6/sep_mbox_loc_perm\"\ntop: \"conv6/sep_mbox_loc_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv6/sep_mbox_conf\"\ntype: \"Convolution\"\nbottom: \"conv6/sep\"\ntop: \"conv6/sep_mbox_conf\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 132\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv6/sep_mbox_conf_perm\"\ntype: \"Permute\"\nbottom: \"conv6/sep_mbox_conf\"\ntop: \"conv6/sep_mbox_conf_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv6/sep_mbox_conf_flat\"\ntype: \"Flatten\"\nbottom: \"conv6/sep_mbox_conf_perm\"\ntop: \"conv6/sep_mbox_conf_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   ";
	protoArray->push_back(str15);

	string str16 = "\nlayer{\nname: \"conv6/sep_mbox_priorbox\"\ntype: \"PriorBox\"\nbottom: \"conv6/sep\"\nbottom: \"data\"\ntop: \"conv6/sep_mbox_priorbox\"\nprior_box_param{\nmin_size: 20.0\nmax_size: 40.0\naspect_ratio: 2.0\naspect_ratio: 3.0\naspect_ratio: 0.5\naspect_ratio: 0.3333\nflip: false\nclip: false\nvariance: 0.1\nvariance: 0.1\nvariance: 0.2\nvariance: 0.2\noffset: 0.5\ncache: true\nshift: true\n}\n}\
				   \nlayer{\nname: \"conv6_2_mbox_loc\"\ntype: \"Convolution\"\nbottom: \"conv6_2\"\ntop: \"conv6_2_mbox_loc\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 48\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv6_2_mbox_loc_perm\"\ntype: \"Permute\"\nbottom: \"conv6_2_mbox_loc\"\ntop: \"conv6_2_mbox_loc_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv6_2_mbox_loc_flat\"\ntype: \"Flatten\"\nbottom: \"conv6_2_mbox_loc_perm\"\ntop: \"conv6_2_mbox_loc_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv6_2_mbox_conf\"\ntype: \"Convolution\"\nbottom: \"conv6_2\"\ntop: \"conv6_2_mbox_conf\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 132\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   ";
	protoArray->push_back(str16);

	string str17 = "\nlayer{\nname: \"conv6_2_mbox_conf_perm\"\ntype: \"Permute\"\nbottom: \"conv6_2_mbox_conf\"\ntop: \"conv6_2_mbox_conf_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv6_2_mbox_conf_flat\"\ntype: \"Flatten\"\nbottom: \"conv6_2_mbox_conf_perm\"\ntop: \"conv6_2_mbox_conf_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv6_2_mbox_priorbox\"\ntype: \"PriorBox\"\nbottom: \"conv6_2\"\nbottom: \"data\"\ntop: \"conv6_2_mbox_priorbox\"\nprior_box_param{\nmin_size: 40.0\nmax_size: 80.0\naspect_ratio: 2.0\naspect_ratio: 3.0\naspect_ratio: 0.5\naspect_ratio: 0.33333\nflip: false\nclip: false\nvariance: 0.1\nvariance: 0.1\nvariance: 0.2\nvariance: 0.2\noffset: 0.5\ncache: true\nshift: true\n}\n}\
				   \nlayer{\nname: \"conv7_2_mbox_loc\"\ntype: \"Convolution\"\nbottom: \"conv7_2\"\ntop: \"conv7_2_mbox_loc\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 48\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv7_2_mbox_loc_perm\"\ntype: \"Permute\"\nbottom: \"conv7_2_mbox_loc\"\ntop: \"conv7_2_mbox_loc_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   ";
	protoArray->push_back(str17);

	string str18 = "\nlayer{\nname: \"conv7_2_mbox_loc_flat\"\ntype: \"Flatten\"\nbottom: \"conv7_2_mbox_loc_perm\"\ntop: \"conv7_2_mbox_loc_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv7_2_mbox_conf\"\ntype: \"Convolution\"\nbottom: \"conv7_2\"\ntop: \"conv7_2_mbox_conf\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 132\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv7_2_mbox_conf_perm\"\ntype: \"Permute\"\nbottom: \"conv7_2_mbox_conf\"\ntop: \"conv7_2_mbox_conf_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv7_2_mbox_conf_flat\"\ntype: \"Flatten\"\nbottom: \"conv7_2_mbox_conf_perm\"\ntop: \"conv7_2_mbox_conf_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv7_2_mbox_priorbox\"\ntype: \"PriorBox\"\nbottom: \"conv7_2\"\nbottom: \"data\"\ntop: \"conv7_2_mbox_priorbox\"\nprior_box_param{\nmin_size: 80.0\nmax_size: 160.0\naspect_ratio: 2.0\naspect_ratio: 3.0\naspect_ratio: 0.5\naspect_ratio: 0.3333\nflip: false\nclip: false\nvariance: 0.1\nvariance: 0.1\nvariance: 0.2\nvariance: 0.2\noffset: 0.5\ncache: true\nshift: true\n}\n}\
				   ";
	protoArray->push_back(str18);

	string str19 = "\nlayer{\nname: \"conv8_2_mbox_loc\"\ntype: \"Convolution\"\nbottom: \"conv8_2\"\ntop: \"conv8_2_mbox_loc\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 48\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv8_2_mbox_loc_perm\"\ntype: \"Permute\"\nbottom: \"conv8_2_mbox_loc\"\ntop: \"conv8_2_mbox_loc_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   \nlayer{\nname: \"conv8_2_mbox_loc_flat\"\ntype: \"Flatten\"\nbottom: \"conv8_2_mbox_loc_perm\"\ntop: \"conv8_2_mbox_loc_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv8_2_mbox_conf\"\ntype: \"Convolution\"\nbottom: \"conv8_2\"\ntop: \"conv8_2_mbox_conf\"\nparam{\nlr_mult: 1.0\ndecay_mult: 1.0\n}\nparam{\nlr_mult: 2.0\ndecay_mult: 0.0\n}\nconvolution_param{\nnum_output: 132\npad: 1\nkernel_size: 3\ngroup: 1\nstride: 1\nweight_filler{\ntype: \"xavier\"\n}\nbias_filler{\ntype: \"constant\"\nvalue: 0.0\n}\n}\n}\
				   \nlayer{\nname: \"conv8_2_mbox_conf_perm\"\ntype: \"Permute\"\nbottom: \"conv8_2_mbox_conf\"\ntop: \"conv8_2_mbox_conf_perm\"\npermute_param{\norder: 0\norder: 2\norder: 3\norder: 1\n}\n}\
				   ";
	protoArray->push_back(str19);

	string str20 = "\nlayer{\nname: \"conv8_2_mbox_conf_flat\"\ntype: \"Flatten\"\nbottom: \"conv8_2_mbox_conf_perm\"\ntop: \"conv8_2_mbox_conf_flat\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"conv8_2_mbox_priorbox\"\ntype: \"PriorBox\"\nbottom: \"conv8_2\"\nbottom: \"data\"\ntop: \"conv8_2_mbox_priorbox\"\nprior_box_param{\nmin_size: 160.0\nmax_size: 320.0\naspect_ratio: 2.0\naspect_ratio: 3.0\naspect_ratio: 0.5\naspect_ratio: 0.33333\nflip: false\nclip: false\nvariance: 0.1\nvariance: 0.1\nvariance: 0.2\nvariance: 0.2\noffset: 0.5\ncache: true\nshift: true\n}\n}\
				   \nlayer{\nname: \"mbox_loc\"\ntype: \"Concat\"\nbottom: \"conv4_1/sep_mbox_loc_flat\"\nbottom: \"conv6/sep_mbox_loc_flat\"\nbottom: \"conv6_2_mbox_loc_flat\"\nbottom: \"conv7_2_mbox_loc_flat\"\nbottom: \"conv8_2_mbox_loc_flat\"\ntop: \"mbox_loc\"\nconcat_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"mbox_conf\"\ntype: \"Concat\"\nbottom: \"conv4_1/sep_mbox_conf_flat\"\nbottom: \"conv6/sep_mbox_conf_flat\"\nbottom: \"conv6_2_mbox_conf_flat\"\nbottom: \"conv7_2_mbox_conf_flat\"\nbottom: \"conv8_2_mbox_conf_flat\"\ntop: \"mbox_conf\"\nconcat_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"mbox_priorbox\"\ntype: \"Concat\"\nbottom: \"conv4_1/sep_mbox_priorbox\"\nbottom: \"conv6/sep_mbox_priorbox\"\nbottom: \"conv6_2_mbox_priorbox\"\nbottom: \"conv7_2_mbox_priorbox\"\nbottom: \"conv8_2_mbox_priorbox\"\ntop: \"mbox_priorbox\"\nconcat_param{\naxis: 2\n}\n}\
				   ";
	protoArray->push_back(str20);

	string str21 = "\nlayer{\nname: \"mbox_conf_reshape\"\ntype: \"Reshape\"\nbottom: \"mbox_conf\"\ntop: \"mbox_conf_reshape\"\nreshape_param{\nshape{\ndim: 0\ndim: -1\ndim: 11\n}\n}\n}\
				   \nlayer{\nname: \"mbox_conf_softmax\"\ntype: \"Softmax\"\nbottom: \"mbox_conf_reshape\"\ntop: \"mbox_conf_softmax\"\nsoftmax_param{\naxis: 2\n}\n}\
				   \nlayer{\nname: \"mbox_conf_flatten\"\ntype: \"Flatten\"\nbottom: \"mbox_conf_softmax\"\ntop: \"mbox_conf_flatten\"\nflatten_param{\naxis: 1\n}\n}\
				   \nlayer{\nname: \"detection_out\"\ntype: \"DetectionOutput\"\nbottom: \"mbox_loc\"\nbottom: \"mbox_conf_flatten\"\nbottom: \"mbox_priorbox\"\ntop: \"detection_out\"\ninclude{\nphase: TEST\n}\ndetection_output_param{\nnum_classes: 11\nshare_location: true\nbackground_label_id: 0\nnms_param{\nnms_threshold: 0.45\ntop_k: 400\n}\ncode_type: CENTER_SIZE\nkeep_top_k: 200\nconfidence_threshold: 0.01\n}\n}\
				   \n\n";
	protoArray->push_back(str21);
}

#endif