dnn: modify priorBox layer

pull/9820/head
Vladislav Sovrasov 7 years ago
parent af8ed9d09f
commit 050916fd6b
  1. 883
      modules/dnn/misc/caffe/caffe.pb.cc
  2. 34
      modules/dnn/misc/caffe/caffe.pb.h
  3. 2
      modules/dnn/src/caffe/caffe.proto
  4. 47
      modules/dnn/src/layers/prior_box_layer.cpp

@ -347,7 +347,7 @@ void protobuf_AssignDesc_caffe_2eproto() {
sizeof(NormalizeBBoxParameter),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NormalizeBBoxParameter, _internal_metadata_));
PriorBoxParameter_descriptor_ = file->message_type(5);
static const int PriorBoxParameter_offsets_[13] = {
static const int PriorBoxParameter_offsets_[14] = {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, min_size_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, max_size_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, aspect_ratio_),
@ -361,6 +361,7 @@ void protobuf_AssignDesc_caffe_2eproto() {
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, step_h_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, step_w_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, offset_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PriorBoxParameter, additional_y_offset_),
};
PriorBoxParameter_reflection_ =
::google::protobuf::internal::GeneratedMessageReflection::NewGeneratedMessageReflection(
@ -2130,418 +2131,419 @@ void protobuf_AddDesc_caffe_2eproto_impl() {
"(\r\"\226\001\n\026NormalizeBBoxParameter\022\034\n\016across_"
"spatial\030\001 \001(\010:\004true\022,\n\014scale_filler\030\002 \001("
"\0132\026.caffe.FillerParameter\022\034\n\016channel_sha"
"red\030\003 \001(\010:\004true\022\022\n\003eps\030\004 \001(\002:\0051e-10\"\243\002\n\021"
"red\030\003 \001(\010:\004true\022\022\n\003eps\030\004 \001(\002:\0051e-10\"\307\002\n\021"
"PriorBoxParameter\022\020\n\010min_size\030\001 \001(\002\022\020\n\010m"
"ax_size\030\002 \001(\002\022\024\n\014aspect_ratio\030\003 \003(\002\022\022\n\004f"
"lip\030\004 \001(\010:\004true\022\022\n\004clip\030\005 \001(\010:\004true\022\020\n\010v"
"ariance\030\006 \003(\002\022\020\n\010img_size\030\007 \001(\r\022\r\n\005img_h"
"\030\010 \001(\r\022\r\n\005img_w\030\t \001(\r\022\014\n\004step\030\n \001(\002\022\016\n\006s"
"tep_h\030\013 \001(\002\022\016\n\006step_w\030\014 \001(\002\022\023\n\006offset\030\r "
"\001(\002:\0030.5\"\'\n\010CodeType\022\n\n\006CORNER\020\001\022\017\n\013CENT"
"ER_SIZE\020\002\"\375\002\n\030DetectionOutputParameter\022\023"
"\n\013num_classes\030\001 \001(\r\022\034\n\016share_location\030\002 "
"\001(\010:\004true\022\036\n\023background_label_id\030\003 \001(\005:\001"
"0\0228\n\tnms_param\030\004 \001(\0132%.caffe.NonMaximumS"
"uppressionParameter\0225\n\021save_output_param"
"\030\005 \001(\0132\032.caffe.SaveOutputParameter\022<\n\tco"
"de_type\030\006 \001(\0162!.caffe.PriorBoxParameter."
"CodeType:\006CORNER\022)\n\032variance_encoded_in_"
"target\030\010 \001(\010:\005false\022\026\n\nkeep_top_k\030\007 \001(\005:"
"\002-1\022\034\n\024confidence_threshold\030\t \001(\002\"\201\001\n\005Da"
"tum\022\020\n\010channels\030\001 \001(\005\022\016\n\006height\030\002 \001(\005\022\r\n"
"\005width\030\003 \001(\005\022\014\n\004data\030\004 \001(\014\022\r\n\005label\030\005 \001("
"\005\022\022\n\nfloat_data\030\006 \003(\002\022\026\n\007encoded\030\007 \001(\010:\005"
"false\"\212\002\n\017FillerParameter\022\026\n\004type\030\001 \001(\t:"
"\010constant\022\020\n\005value\030\002 \001(\002:\0010\022\016\n\003min\030\003 \001(\002"
":\0010\022\016\n\003max\030\004 \001(\002:\0011\022\017\n\004mean\030\005 \001(\002:\0010\022\016\n\003"
"std\030\006 \001(\002:\0011\022\022\n\006sparse\030\007 \001(\005:\002-1\022B\n\rvari"
"ance_norm\030\010 \001(\0162#.caffe.FillerParameter."
"VarianceNorm:\006FAN_IN\"4\n\014VarianceNorm\022\n\n\006"
"FAN_IN\020\000\022\013\n\007FAN_OUT\020\001\022\013\n\007AVERAGE\020\002\"\216\002\n\014N"
"etParameter\022\014\n\004name\030\001 \001(\t\022\r\n\005input\030\003 \003(\t"
"\022%\n\013input_shape\030\010 \003(\0132\020.caffe.BlobShape\022"
"\021\n\tinput_dim\030\004 \003(\005\022\035\n\016force_backward\030\005 \001"
"(\010:\005false\022\036\n\005state\030\006 \001(\0132\017.caffe.NetStat"
"e\022\031\n\ndebug_info\030\007 \001(\010:\005false\022$\n\005layer\030d "
"\003(\0132\025.caffe.LayerParameter\022\'\n\006layers\030\002 \003"
"(\0132\027.caffe.V1LayerParameter\"\242\n\n\017SolverPa"
"rameter\022\013\n\003net\030\030 \001(\t\022&\n\tnet_param\030\031 \001(\0132"
"\023.caffe.NetParameter\022\021\n\ttrain_net\030\001 \001(\t\022"
"\020\n\010test_net\030\002 \003(\t\022,\n\017train_net_param\030\025 \001"
"(\0132\023.caffe.NetParameter\022+\n\016test_net_para"
"m\030\026 \003(\0132\023.caffe.NetParameter\022$\n\013train_st"
"ate\030\032 \001(\0132\017.caffe.NetState\022#\n\ntest_state"
"\030\033 \003(\0132\017.caffe.NetState\022\021\n\ttest_iter\030\003 \003"
"(\005\022\030\n\rtest_interval\030\004 \001(\005:\0010\022 \n\021test_com"
"pute_loss\030\023 \001(\010:\005false\022!\n\023test_initializ"
"ation\030 \001(\010:\004true\022\017\n\007base_lr\030\005 \001(\002\022\017\n\007di"
"splay\030\006 \001(\005\022\027\n\014average_loss\030! \001(\005:\0011\022\020\n\010"
"max_iter\030\007 \001(\005\022\024\n\titer_size\030$ \001(\005:\0011\022\021\n\t"
"lr_policy\030\010 \001(\t\022\r\n\005gamma\030\t \001(\002\022\r\n\005power\030"
"\n \001(\002\022\020\n\010momentum\030\013 \001(\002\022\024\n\014weight_decay\030"
"\014 \001(\002\022\037\n\023regularization_type\030\035 \001(\t:\002L2\022\020"
"\n\010stepsize\030\r \001(\005\022\021\n\tstepvalue\030\" \003(\005\022\032\n\016c"
"lip_gradients\030# \001(\002:\002-1\022\023\n\010snapshot\030\016 \001("
"\005:\0010\022\027\n\017snapshot_prefix\030\017 \001(\t\022\034\n\rsnapsho"
"t_diff\030\020 \001(\010:\005false\022K\n\017snapshot_format\030%"
" \001(\0162%.caffe.SolverParameter.SnapshotFor"
"mat:\013BINARYPROTO\022;\n\013solver_mode\030\021 \001(\0162!."
"caffe.SolverParameter.SolverMode:\003GPU\022\024\n"
"\tdevice_id\030\022 \001(\005:\0010\022\027\n\013random_seed\030\024 \001(\003"
":\002-1\022\021\n\004type\030( \001(\t:\003SGD\022\024\n\005delta\030\037 \001(\002:\005"
"1e-08\022\030\n\tmomentum2\030\' \001(\002:\0050.999\022\027\n\trms_d"
"ecay\030& \001(\002:\0040.99\022\031\n\ndebug_info\030\027 \001(\010:\005fa"
"lse\022\"\n\024snapshot_after_train\030\034 \001(\010:\004true\022"
";\n\013solver_type\030\036 \001(\0162!.caffe.SolverParam"
"eter.SolverType:\003SGD\"+\n\016SnapshotFormat\022\010"
"\n\004HDF5\020\000\022\017\n\013BINARYPROTO\020\001\"\036\n\nSolverMode\022"
"\007\n\003CPU\020\000\022\007\n\003GPU\020\001\"U\n\nSolverType\022\007\n\003SGD\020\000"
"\022\014\n\010NESTEROV\020\001\022\013\n\007ADAGRAD\020\002\022\013\n\007RMSPROP\020\003"
"\022\014\n\010ADADELTA\020\004\022\010\n\004ADAM\020\005\"l\n\013SolverState\022"
"\014\n\004iter\030\001 \001(\005\022\023\n\013learned_net\030\002 \001(\t\022!\n\007hi"
"story\030\003 \003(\0132\020.caffe.BlobProto\022\027\n\014current"
"_step\030\004 \001(\005:\0010\"N\n\010NetState\022!\n\005phase\030\001 \001("
"\0162\014.caffe.Phase:\004TEST\022\020\n\005level\030\002 \001(\005:\0010\022"
"\r\n\005stage\030\003 \003(\t\"s\n\014NetStateRule\022\033\n\005phase\030"
"\001 \001(\0162\014.caffe.Phase\022\021\n\tmin_level\030\002 \001(\005\022\021"
"\n\tmax_level\030\003 \001(\005\022\r\n\005stage\030\004 \003(\t\022\021\n\tnot_"
"stage\030\005 \003(\t\"\243\001\n\tParamSpec\022\014\n\004name\030\001 \001(\t\022"
"1\n\nshare_mode\030\002 \001(\0162\035.caffe.ParamSpec.Di"
"mCheckMode\022\022\n\007lr_mult\030\003 \001(\002:\0011\022\025\n\ndecay_"
"mult\030\004 \001(\002:\0011\"*\n\014DimCheckMode\022\n\n\006STRICT\020"
"\000\022\016\n\nPERMISSIVE\020\001\"\335\025\n\016LayerParameter\022\014\n\004"
"name\030\001 \001(\t\022\014\n\004type\030\002 \001(\t\022\016\n\006bottom\030\003 \003(\t"
"\022\013\n\003top\030\004 \003(\t\022\033\n\005phase\030\n \001(\0162\014.caffe.Pha"
"se\022\023\n\013loss_weight\030\005 \003(\002\022\037\n\005param\030\006 \003(\0132\020"
".caffe.ParamSpec\022\037\n\005blobs\030\007 \003(\0132\020.caffe."
"BlobProto\022\026\n\016propagate_down\030\013 \003(\010\022$\n\007inc"
"lude\030\010 \003(\0132\023.caffe.NetStateRule\022$\n\007exclu"
"de\030\t \003(\0132\023.caffe.NetStateRule\0227\n\017transfo"
"rm_param\030d \001(\0132\036.caffe.TransformationPar"
"ameter\022(\n\nloss_param\030e \001(\0132\024.caffe.LossP"
"arameter\0220\n\016accuracy_param\030f \001(\0132\030.caffe"
".AccuracyParameter\022,\n\014argmax_param\030g \001(\013"
"2\026.caffe.ArgMaxParameter\0224\n\020batch_norm_p"
"aram\030\213\001 \001(\0132\031.caffe.BatchNormParameter\022)"
"\n\nbias_param\030\215\001 \001(\0132\024.caffe.BiasParamete"
"r\022,\n\014concat_param\030h \001(\0132\026.caffe.ConcatPa"
"rameter\022\?\n\026contrastive_loss_param\030i \001(\0132"
"\037.caffe.ContrastiveLossParameter\0226\n\021conv"
"olution_param\030j \001(\0132\033.caffe.ConvolutionP"
"arameter\022)\n\ncrop_param\030\220\001 \001(\0132\024.caffe.Cr"
"opParameter\022(\n\ndata_param\030k \001(\0132\024.caffe."
"DataParameter\022@\n\026detection_output_param\030"
"\223\001 \001(\0132\037.caffe.DetectionOutputParameter\022"
".\n\rdropout_param\030l \001(\0132\027.caffe.DropoutPa"
"rameter\0223\n\020dummy_data_param\030m \001(\0132\031.caff"
"e.DummyDataParameter\022.\n\reltwise_param\030n "
"\001(\0132\027.caffe.EltwiseParameter\022\'\n\telu_para"
"m\030\214\001 \001(\0132\023.caffe.ELUParameter\022+\n\013embed_p"
"aram\030\211\001 \001(\0132\025.caffe.EmbedParameter\022&\n\tex"
"p_param\030o \001(\0132\023.caffe.ExpParameter\022/\n\rfl"
"atten_param\030\207\001 \001(\0132\027.caffe.FlattenParame"
"ter\0221\n\017hdf5_data_param\030p \001(\0132\030.caffe.HDF"
"5DataParameter\0225\n\021hdf5_output_param\030q \001("
"\0132\032.caffe.HDF5OutputParameter\0223\n\020hinge_l"
"oss_param\030r \001(\0132\031.caffe.HingeLossParamet"
"er\0223\n\020image_data_param\030s \001(\0132\031.caffe.Ima"
"geDataParameter\0229\n\023infogain_loss_param\030t"
" \001(\0132\034.caffe.InfogainLossParameter\0229\n\023in"
"ner_product_param\030u \001(\0132\034.caffe.InnerPro"
"ductParameter\022+\n\013input_param\030\217\001 \001(\0132\025.ca"
"ffe.InputParameter\022\'\n\tlog_param\030\206\001 \001(\0132\023"
".caffe.LogParameter\022&\n\tlrn_param\030v \001(\0132\023"
".caffe.LRNParameter\0225\n\021memory_data_param"
"\030w \001(\0132\032.caffe.MemoryDataParameter\022&\n\tmv"
"n_param\030x \001(\0132\023.caffe.MVNParameter\0222\n\nno"
"rm_param\030\225\001 \001(\0132\035.caffe.NormalizeBBoxPar"
"ameter\022/\n\rpermute_param\030\224\001 \001(\0132\027.caffe.P"
"ermuteParameter\0223\n\017parameter_param\030\221\001 \001("
"\0132\031.caffe.ParameterParameter\022.\n\rpooling_"
"param\030y \001(\0132\027.caffe.PoolingParameter\022*\n\013"
"power_param\030z \001(\0132\025.caffe.PowerParameter"
"\022+\n\013prelu_param\030\203\001 \001(\0132\025.caffe.PReLUPara"
"meter\0222\n\017prior_box_param\030\226\001 \001(\0132\030.caffe."
"PriorBoxParameter\022-\n\014python_param\030\202\001 \001(\013"
"2\026.caffe.PythonParameter\0223\n\017recurrent_pa"
"ram\030\222\001 \001(\0132\031.caffe.RecurrentParameter\0223\n"
"\017reduction_param\030\210\001 \001(\0132\031.caffe.Reductio"
"nParameter\022(\n\nrelu_param\030{ \001(\0132\024.caffe.R"
"eLUParameter\022/\n\rreshape_param\030\205\001 \001(\0132\027.c"
"affe.ReshapeParameter\022+\n\013scale_param\030\216\001 "
"\001(\0132\025.caffe.ScaleParameter\022.\n\rsigmoid_pa"
"ram\030| \001(\0132\027.caffe.SigmoidParameter\022.\n\rso"
"ftmax_param\030} \001(\0132\027.caffe.SoftmaxParamet"
"er\022\'\n\tspp_param\030\204\001 \001(\0132\023.caffe.SPPParame"
"ter\022*\n\013slice_param\030~ \001(\0132\025.caffe.SlicePa"
"rameter\022(\n\ntanh_param\030\177 \001(\0132\024.caffe.TanH"
"Parameter\0223\n\017threshold_param\030\200\001 \001(\0132\031.ca"
"ffe.ThresholdParameter\022)\n\ntile_param\030\212\001 "
"\001(\0132\024.caffe.TileParameter\0226\n\021window_data"
"_param\030\201\001 \001(\0132\032.caffe.WindowDataParamete"
"r\"\266\001\n\027TransformationParameter\022\020\n\005scale\030\001"
" \001(\002:\0011\022\025\n\006mirror\030\002 \001(\010:\005false\022\024\n\tcrop_s"
"ize\030\003 \001(\r:\0010\022\021\n\tmean_file\030\004 \001(\t\022\022\n\nmean_"
"value\030\005 \003(\002\022\032\n\013force_color\030\006 \001(\010:\005false\022"
"\031\n\nforce_gray\030\007 \001(\010:\005false\"\302\001\n\rLossParam"
"eter\022\024\n\014ignore_label\030\001 \001(\005\022D\n\rnormalizat"
"ion\030\003 \001(\0162&.caffe.LossParameter.Normaliz"
"ationMode:\005VALID\022\021\n\tnormalize\030\002 \001(\010\"B\n\021N"
"ormalizationMode\022\010\n\004FULL\020\000\022\t\n\005VALID\020\001\022\016\n"
"\nBATCH_SIZE\020\002\022\010\n\004NONE\020\003\"L\n\021AccuracyParam"
"eter\022\020\n\005top_k\030\001 \001(\r:\0011\022\017\n\004axis\030\002 \001(\005:\0011\022"
"\024\n\014ignore_label\030\003 \001(\005\"M\n\017ArgMaxParameter"
"\022\032\n\013out_max_val\030\001 \001(\010:\005false\022\020\n\005top_k\030\002 "
"\001(\r:\0011\022\014\n\004axis\030\003 \001(\005\"9\n\017ConcatParameter\022"
"\017\n\004axis\030\002 \001(\005:\0011\022\025\n\nconcat_dim\030\001 \001(\r:\0011\""
"j\n\022BatchNormParameter\022\030\n\020use_global_stat"
"s\030\001 \001(\010\022&\n\027moving_average_fraction\030\002 \001(\002"
":\0050.999\022\022\n\003eps\030\003 \001(\002:\0051e-05\"]\n\rBiasParam"
"eter\022\017\n\004axis\030\001 \001(\005:\0011\022\023\n\010num_axes\030\002 \001(\005:"
"\0011\022&\n\006filler\030\003 \001(\0132\026.caffe.FillerParamet"
"er\"L\n\030ContrastiveLossParameter\022\021\n\006margin"
"\030\001 \001(\002:\0011\022\035\n\016legacy_version\030\002 \001(\010:\005false"
"\"\374\003\n\024ConvolutionParameter\022\022\n\nnum_output\030"
"\001 \001(\r\022\027\n\tbias_term\030\002 \001(\010:\004true\022\013\n\003pad\030\003 "
"\003(\r\022\023\n\013kernel_size\030\004 \003(\r\022\016\n\006stride\030\006 \003(\r"
"\022\020\n\010dilation\030\022 \003(\r\022\020\n\005pad_h\030\t \001(\r:\0010\022\020\n\005"
"pad_w\030\n \001(\r:\0010\022\020\n\010kernel_h\030\013 \001(\r\022\020\n\010kern"
"el_w\030\014 \001(\r\022\020\n\010stride_h\030\r \001(\r\022\020\n\010stride_w"
"\030\016 \001(\r\022\020\n\005group\030\005 \001(\r:\0011\022-\n\rweight_fille"
"r\030\007 \001(\0132\026.caffe.FillerParameter\022+\n\013bias_"
"filler\030\010 \001(\0132\026.caffe.FillerParameter\022;\n\006"
"engine\030\017 \001(\0162\".caffe.ConvolutionParamete"
"r.Engine:\007DEFAULT\022\017\n\004axis\030\020 \001(\005:\0011\022\036\n\017fo"
"rce_nd_im2col\030\021 \001(\010:\005false\"+\n\006Engine\022\013\n\007"
"DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"0\n\rCropP"
"arameter\022\017\n\004axis\030\001 \001(\005:\0012\022\016\n\006offset\030\002 \003("
"\r\"\244\002\n\rDataParameter\022\016\n\006source\030\001 \001(\t\022\022\n\nb"
"atch_size\030\004 \001(\r\022\024\n\trand_skip\030\007 \001(\r:\0010\0221\n"
"\007backend\030\010 \001(\0162\027.caffe.DataParameter.DB:"
"\007LEVELDB\022\020\n\005scale\030\002 \001(\002:\0011\022\021\n\tmean_file\030"
"\003 \001(\t\022\024\n\tcrop_size\030\005 \001(\r:\0010\022\025\n\006mirror\030\006 "
"\001(\010:\005false\022\"\n\023force_encoded_color\030\t \001(\010:"
"\005false\022\023\n\010prefetch\030\n \001(\r:\0014\"\033\n\002DB\022\013\n\007LEV"
"ELDB\020\000\022\010\n\004LMDB\020\001\"[\n\036NonMaximumSuppressio"
"nParameter\022\032\n\rnms_threshold\030\001 \001(\002:\0030.3\022\r"
"\n\005top_k\030\002 \001(\005\022\016\n\003eta\030\003 \001(\002:\0011\"\252\001\n\023SaveOu"
"tputParameter\022\030\n\020output_directory\030\001 \001(\t\022"
"\032\n\022output_name_prefix\030\002 \001(\t\022\025\n\routput_fo"
"rmat\030\003 \001(\t\022\026\n\016label_map_file\030\004 \001(\t\022\026\n\016na"
"me_size_file\030\005 \001(\t\022\026\n\016num_test_image\030\006 \001"
"(\r\".\n\020DropoutParameter\022\032\n\rdropout_ratio\030"
"\001 \001(\002:\0030.5\"\240\001\n\022DummyDataParameter\022+\n\013dat"
"a_filler\030\001 \003(\0132\026.caffe.FillerParameter\022\037"
"\n\005shape\030\006 \003(\0132\020.caffe.BlobShape\022\013\n\003num\030\002"
" \003(\r\022\020\n\010channels\030\003 \003(\r\022\016\n\006height\030\004 \003(\r\022\r"
"\n\005width\030\005 \003(\r\"\245\001\n\020EltwiseParameter\0229\n\top"
"eration\030\001 \001(\0162!.caffe.EltwiseParameter.E"
"ltwiseOp:\003SUM\022\r\n\005coeff\030\002 \003(\002\022\036\n\020stable_p"
"rod_grad\030\003 \001(\010:\004true\"\'\n\tEltwiseOp\022\010\n\004PRO"
"D\020\000\022\007\n\003SUM\020\001\022\007\n\003MAX\020\002\" \n\014ELUParameter\022\020\n"
"\005alpha\030\001 \001(\002:\0011\"\254\001\n\016EmbedParameter\022\022\n\nnu"
"m_output\030\001 \001(\r\022\021\n\tinput_dim\030\002 \001(\r\022\027\n\tbia"
"s_term\030\003 \001(\010:\004true\022-\n\rweight_filler\030\004 \001("
"\0132\026.caffe.FillerParameter\022+\n\013bias_filler"
"\030\005 \001(\0132\026.caffe.FillerParameter\"D\n\014ExpPar"
"ameter\022\020\n\004base\030\001 \001(\002:\002-1\022\020\n\005scale\030\002 \001(\002:"
"\0011\022\020\n\005shift\030\003 \001(\002:\0010\"9\n\020FlattenParameter"
"\022\017\n\004axis\030\001 \001(\005:\0011\022\024\n\010end_axis\030\002 \001(\005:\002-1\""
"O\n\021HDF5DataParameter\022\016\n\006source\030\001 \001(\t\022\022\n\n"
"batch_size\030\002 \001(\r\022\026\n\007shuffle\030\003 \001(\010:\005false"
"\"(\n\023HDF5OutputParameter\022\021\n\tfile_name\030\001 \001"
"(\t\"^\n\022HingeLossParameter\0220\n\004norm\030\001 \001(\0162\036"
".caffe.HingeLossParameter.Norm:\002L1\"\026\n\004No"
"rm\022\006\n\002L1\020\001\022\006\n\002L2\020\002\"\227\002\n\022ImageDataParamete"
"r\022\016\n\006source\030\001 \001(\t\022\025\n\nbatch_size\030\004 \001(\r:\0011"
"\022\024\n\trand_skip\030\007 \001(\r:\0010\022\026\n\007shuffle\030\010 \001(\010:"
"\005false\022\025\n\nnew_height\030\t \001(\r:\0010\022\024\n\tnew_wid"
"th\030\n \001(\r:\0010\022\026\n\010is_color\030\013 \001(\010:\004true\022\020\n\005s"
"cale\030\002 \001(\002:\0011\022\021\n\tmean_file\030\003 \001(\t\022\024\n\tcrop"
"_size\030\005 \001(\r:\0010\022\025\n\006mirror\030\006 \001(\010:\005false\022\025\n"
"\013root_folder\030\014 \001(\t:\000\"\'\n\025InfogainLossPara"
"meter\022\016\n\006source\030\001 \001(\t\"\313\001\n\025InnerProductPa"
"rameter\022\022\n\nnum_output\030\001 \001(\r\022\027\n\tbias_term"
"\030\002 \001(\010:\004true\022-\n\rweight_filler\030\003 \001(\0132\026.ca"
"ffe.FillerParameter\022+\n\013bias_filler\030\004 \001(\013"
"2\026.caffe.FillerParameter\022\017\n\004axis\030\005 \001(\005:\001"
"1\022\030\n\ttranspose\030\006 \001(\010:\005false\"1\n\016InputPara"
"meter\022\037\n\005shape\030\001 \003(\0132\020.caffe.BlobShape\"D"
"\n\014LogParameter\022\020\n\004base\030\001 \001(\002:\002-1\022\020\n\005scal"
"e\030\002 \001(\002:\0011\022\020\n\005shift\030\003 \001(\002:\0010\"\270\002\n\014LRNPara"
"meter\022\025\n\nlocal_size\030\001 \001(\r:\0015\022\020\n\005alpha\030\002 "
"\001(\002:\0011\022\022\n\004beta\030\003 \001(\002:\0040.75\022D\n\013norm_regio"
"n\030\004 \001(\0162\036.caffe.LRNParameter.NormRegion:"
"\017ACROSS_CHANNELS\022\014\n\001k\030\005 \001(\002:\0011\0223\n\006engine"
"\030\006 \001(\0162\032.caffe.LRNParameter.Engine:\007DEFA"
"ULT\"5\n\nNormRegion\022\023\n\017ACROSS_CHANNELS\020\000\022\022"
"\n\016WITHIN_CHANNEL\020\001\"+\n\006Engine\022\013\n\007DEFAULT\020"
"\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"Z\n\023MemoryDataPar"
"ameter\022\022\n\nbatch_size\030\001 \001(\r\022\020\n\010channels\030\002"
" \001(\r\022\016\n\006height\030\003 \001(\r\022\r\n\005width\030\004 \001(\r\"d\n\014M"
"VNParameter\022 \n\022normalize_variance\030\001 \001(\010:"
"\004true\022\036\n\017across_channels\030\002 \001(\010:\005false\022\022\n"
"\003eps\030\003 \001(\002:\0051e-09\"5\n\022ParameterParameter\022"
"\037\n\005shape\030\001 \001(\0132\020.caffe.BlobShape\"\242\003\n\020Poo"
"lingParameter\0225\n\004pool\030\001 \001(\0162\".caffe.Pool"
"ingParameter.PoolMethod:\003MAX\022\016\n\003pad\030\004 \001("
"\r:\0010\022\020\n\005pad_h\030\t \001(\r:\0010\022\020\n\005pad_w\030\n \001(\r:\0010"
"\022\023\n\013kernel_size\030\002 \001(\r\022\020\n\010kernel_h\030\005 \001(\r\022"
"\020\n\010kernel_w\030\006 \001(\r\022\021\n\006stride\030\003 \001(\r:\0011\022\020\n\010"
"stride_h\030\007 \001(\r\022\020\n\010stride_w\030\010 \001(\r\0227\n\006engi"
"ne\030\013 \001(\0162\036.caffe.PoolingParameter.Engine"
":\007DEFAULT\022\035\n\016global_pooling\030\014 \001(\010:\005false"
"\".\n\nPoolMethod\022\007\n\003MAX\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOC"
"HASTIC\020\002\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE"
"\020\001\022\t\n\005CUDNN\020\002\"F\n\016PowerParameter\022\020\n\005power"
"\030\001 \001(\002:\0011\022\020\n\005scale\030\002 \001(\002:\0011\022\020\n\005shift\030\003 \001"
"(\002:\0010\"g\n\017PythonParameter\022\016\n\006module\030\001 \001(\t"
"\022\r\n\005layer\030\002 \001(\t\022\023\n\tparam_str\030\003 \001(\t:\000\022 \n\021"
"share_in_parallel\030\004 \001(\010:\005false\"\300\001\n\022Recur"
"rentParameter\022\025\n\nnum_output\030\001 \001(\r:\0010\022-\n\r"
"weight_filler\030\002 \001(\0132\026.caffe.FillerParame"
"ter\022+\n\013bias_filler\030\003 \001(\0132\026.caffe.FillerP"
"arameter\022\031\n\ndebug_info\030\004 \001(\010:\005false\022\034\n\re"
"xpose_hidden\030\005 \001(\010:\005false\"\255\001\n\022ReductionP"
"arameter\022=\n\toperation\030\001 \001(\0162%.caffe.Redu"
"ctionParameter.ReductionOp:\003SUM\022\017\n\004axis\030"
"\002 \001(\005:\0010\022\020\n\005coeff\030\003 \001(\002:\0011\"5\n\013ReductionO"
"p\022\007\n\003SUM\020\001\022\010\n\004ASUM\020\002\022\t\n\005SUMSQ\020\003\022\010\n\004MEAN\020"
"\004\"\215\001\n\rReLUParameter\022\031\n\016negative_slope\030\001 "
"\001(\002:\0010\0224\n\006engine\030\002 \001(\0162\033.caffe.ReLUParam"
"eter.Engine:\007DEFAULT\"+\n\006Engine\022\013\n\007DEFAUL"
"T\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"Z\n\020ReshapePara"
"meter\022\037\n\005shape\030\001 \001(\0132\020.caffe.BlobShape\022\017"
"\n\004axis\030\002 \001(\005:\0010\022\024\n\010num_axes\030\003 \001(\005:\002-1\"\245\001"
"\n\016ScaleParameter\022\017\n\004axis\030\001 \001(\005:\0011\022\023\n\010num"
"_axes\030\002 \001(\005:\0011\022&\n\006filler\030\003 \001(\0132\026.caffe.F"
"illerParameter\022\030\n\tbias_term\030\004 \001(\010:\005false"
"\022+\n\013bias_filler\030\005 \001(\0132\026.caffe.FillerPara"
"meter\"x\n\020SigmoidParameter\0227\n\006engine\030\001 \001("
"\0162\036.caffe.SigmoidParameter.Engine:\007DEFAU"
"LT\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005"
"CUDNN\020\002\"L\n\016SliceParameter\022\017\n\004axis\030\003 \001(\005:"
"\0011\022\023\n\013slice_point\030\002 \003(\r\022\024\n\tslice_dim\030\001 \001"
"(\r:\0011\"\211\001\n\020SoftmaxParameter\0227\n\006engine\030\001 \001"
"(\0162\036.caffe.SoftmaxParameter.Engine:\007DEFA"
"ULT\022\017\n\004axis\030\002 \001(\005:\0011\"+\n\006Engine\022\013\n\007DEFAUL"
"T\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"r\n\rTanHParamet"
"er\0224\n\006engine\030\001 \001(\0162\033.caffe.TanHParameter"
".Engine:\007DEFAULT\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022"
"\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"/\n\rTileParameter\022\017"
"\n\004axis\030\001 \001(\005:\0011\022\r\n\005tiles\030\002 \001(\005\"*\n\022Thresh"
"oldParameter\022\024\n\tthreshold\030\001 \001(\002:\0010\"\301\002\n\023W"
"indowDataParameter\022\016\n\006source\030\001 \001(\t\022\020\n\005sc"
"ale\030\002 \001(\002:\0011\022\021\n\tmean_file\030\003 \001(\t\022\022\n\nbatch"
"_size\030\004 \001(\r\022\024\n\tcrop_size\030\005 \001(\r:\0010\022\025\n\006mir"
"ror\030\006 \001(\010:\005false\022\031\n\014fg_threshold\030\007 \001(\002:\003"
"0.5\022\031\n\014bg_threshold\030\010 \001(\002:\0030.5\022\031\n\013fg_fra"
"ction\030\t \001(\002:\0040.25\022\026\n\013context_pad\030\n \001(\r:\001"
"0\022\027\n\tcrop_mode\030\013 \001(\t:\004warp\022\033\n\014cache_imag"
"es\030\014 \001(\010:\005false\022\025\n\013root_folder\030\r \001(\t:\000\"\353"
"\001\n\014SPPParameter\022\026\n\016pyramid_height\030\001 \001(\r\022"
"1\n\004pool\030\002 \001(\0162\036.caffe.SPPParameter.PoolM"
"ethod:\003MAX\0223\n\006engine\030\006 \001(\0162\032.caffe.SPPPa"
"rameter.Engine:\007DEFAULT\".\n\nPoolMethod\022\007\n"
"\003MAX\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHASTIC\020\002\"+\n\006Engin"
"e\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"\340\023\n"
"\020V1LayerParameter\022\016\n\006bottom\030\002 \003(\t\022\013\n\003top"
"\030\003 \003(\t\022\014\n\004name\030\004 \001(\t\022$\n\007include\030 \003(\0132\023."
"caffe.NetStateRule\022$\n\007exclude\030! \003(\0132\023.ca"
"ffe.NetStateRule\022/\n\004type\030\005 \001(\0162!.caffe.V"
"1LayerParameter.LayerType\022\037\n\005blobs\030\006 \003(\013"
"2\020.caffe.BlobProto\022\016\n\005param\030\351\007 \003(\t\022>\n\017bl"
"ob_share_mode\030\352\007 \003(\0162$.caffe.V1LayerPara"
"meter.DimCheckMode\022\020\n\010blobs_lr\030\007 \003(\002\022\024\n\014"
"weight_decay\030\010 \003(\002\022\023\n\013loss_weight\030# \003(\002\022"
"0\n\016accuracy_param\030\033 \001(\0132\030.caffe.Accuracy"
"Parameter\022,\n\014argmax_param\030\027 \001(\0132\026.caffe."
"ArgMaxParameter\022,\n\014concat_param\030\t \001(\0132\026."
"caffe.ConcatParameter\022\?\n\026contrastive_los"
"s_param\030( \001(\0132\037.caffe.ContrastiveLossPar"
"ameter\0226\n\021convolution_param\030\n \001(\0132\033.caff"
"e.ConvolutionParameter\022(\n\ndata_param\030\013 \001"
"(\0132\024.caffe.DataParameter\022.\n\rdropout_para"
"m\030\014 \001(\0132\027.caffe.DropoutParameter\0223\n\020dumm"
"y_data_param\030\032 \001(\0132\031.caffe.DummyDataPara"
"meter\022.\n\reltwise_param\030\030 \001(\0132\027.caffe.Elt"
"wiseParameter\022&\n\texp_param\030) \001(\0132\023.caffe"
".ExpParameter\0221\n\017hdf5_data_param\030\r \001(\0132\030"
".caffe.HDF5DataParameter\0225\n\021hdf5_output_"
"param\030\016 \001(\0132\032.caffe.HDF5OutputParameter\022"
"3\n\020hinge_loss_param\030\035 \001(\0132\031.caffe.HingeL"
"ossParameter\0223\n\020image_data_param\030\017 \001(\0132\031"
".caffe.ImageDataParameter\0229\n\023infogain_lo"
"ss_param\030\020 \001(\0132\034.caffe.InfogainLossParam"
"eter\0229\n\023inner_product_param\030\021 \001(\0132\034.caff"
"e.InnerProductParameter\022&\n\tlrn_param\030\022 \001"
"(\0132\023.caffe.LRNParameter\0225\n\021memory_data_p"
"aram\030\026 \001(\0132\032.caffe.MemoryDataParameter\022&"
"\n\tmvn_param\030\" \001(\0132\023.caffe.MVNParameter\022."
"\n\rpooling_param\030\023 \001(\0132\027.caffe.PoolingPar"
"ameter\022*\n\013power_param\030\025 \001(\0132\025.caffe.Powe"
"rParameter\022(\n\nrelu_param\030\036 \001(\0132\024.caffe.R"
"eLUParameter\022.\n\rsigmoid_param\030& \001(\0132\027.ca"
"ffe.SigmoidParameter\022.\n\rsoftmax_param\030\' "
"\001(\0132\027.caffe.SoftmaxParameter\022*\n\013slice_pa"
"ram\030\037 \001(\0132\025.caffe.SliceParameter\022(\n\ntanh"
"_param\030% \001(\0132\024.caffe.TanHParameter\0222\n\017th"
"reshold_param\030\031 \001(\0132\031.caffe.ThresholdPar"
"ameter\0225\n\021window_data_param\030\024 \001(\0132\032.caff"
"e.WindowDataParameter\0227\n\017transform_param"
"\030$ \001(\0132\036.caffe.TransformationParameter\022("
"\n\nloss_param\030* \001(\0132\024.caffe.LossParameter"
"\022&\n\005layer\030\001 \001(\0132\027.caffe.V0LayerParameter"
"\"\330\004\n\tLayerType\022\010\n\004NONE\020\000\022\n\n\006ABSVAL\020#\022\014\n\010"
"ACCURACY\020\001\022\n\n\006ARGMAX\020\036\022\010\n\004BNLL\020\002\022\n\n\006CONC"
"AT\020\003\022\024\n\020CONTRASTIVE_LOSS\020%\022\017\n\013CONVOLUTIO"
"N\020\004\022\010\n\004DATA\020\005\022\021\n\rDECONVOLUTION\020\'\022\013\n\007DROP"
"OUT\020\006\022\016\n\nDUMMY_DATA\020 \022\022\n\016EUCLIDEAN_LOSS\020"
"\007\022\013\n\007ELTWISE\020\031\022\007\n\003EXP\020&\022\013\n\007FLATTEN\020\010\022\r\n\t"
"HDF5_DATA\020\t\022\017\n\013HDF5_OUTPUT\020\n\022\016\n\nHINGE_LO"
"SS\020\034\022\n\n\006IM2COL\020\013\022\016\n\nIMAGE_DATA\020\014\022\021\n\rINFO"
"GAIN_LOSS\020\r\022\021\n\rINNER_PRODUCT\020\016\022\007\n\003LRN\020\017\022"
"\017\n\013MEMORY_DATA\020\035\022\035\n\031MULTINOMIAL_LOGISTIC"
"_LOSS\020\020\022\007\n\003MVN\020\"\022\013\n\007POOLING\020\021\022\t\n\005POWER\020\032"
"\022\010\n\004RELU\020\022\022\013\n\007SIGMOID\020\023\022\036\n\032SIGMOID_CROSS"
"_ENTROPY_LOSS\020\033\022\013\n\007SILENCE\020$\022\013\n\007SOFTMAX\020"
"\024\022\020\n\014SOFTMAX_LOSS\020\025\022\t\n\005SPLIT\020\026\022\t\n\005SLICE\020"
"!\022\010\n\004TANH\020\027\022\017\n\013WINDOW_DATA\020\030\022\r\n\tTHRESHOL"
"D\020\037\"*\n\014DimCheckMode\022\n\n\006STRICT\020\000\022\016\n\nPERMI"
"SSIVE\020\001\"\375\007\n\020V0LayerParameter\022\014\n\004name\030\001 \001"
"(\t\022\014\n\004type\030\002 \001(\t\022\022\n\nnum_output\030\003 \001(\r\022\026\n\010"
"biasterm\030\004 \001(\010:\004true\022-\n\rweight_filler\030\005 "
"\001(\002:\0030.5\022\"\n\023additional_y_offset\030\016 \001(\010:\005f"
"alse\"\'\n\010CodeType\022\n\n\006CORNER\020\001\022\017\n\013CENTER_S"
"IZE\020\002\"\375\002\n\030DetectionOutputParameter\022\023\n\013nu"
"m_classes\030\001 \001(\r\022\034\n\016share_location\030\002 \001(\010:"
"\004true\022\036\n\023background_label_id\030\003 \001(\005:\0010\0228\n"
"\tnms_param\030\004 \001(\0132%.caffe.NonMaximumSuppr"
"essionParameter\0225\n\021save_output_param\030\005 \001"
"(\0132\032.caffe.SaveOutputParameter\022<\n\tcode_t"
"ype\030\006 \001(\0162!.caffe.PriorBoxParameter.Code"
"Type:\006CORNER\022)\n\032variance_encoded_in_targ"
"et\030\010 \001(\010:\005false\022\026\n\nkeep_top_k\030\007 \001(\005:\002-1\022"
"\034\n\024confidence_threshold\030\t \001(\002\"\201\001\n\005Datum\022"
"\020\n\010channels\030\001 \001(\005\022\016\n\006height\030\002 \001(\005\022\r\n\005wid"
"th\030\003 \001(\005\022\014\n\004data\030\004 \001(\014\022\r\n\005label\030\005 \001(\005\022\022\n"
"\nfloat_data\030\006 \003(\002\022\026\n\007encoded\030\007 \001(\010:\005fals"
"e\"\212\002\n\017FillerParameter\022\026\n\004type\030\001 \001(\t:\010con"
"stant\022\020\n\005value\030\002 \001(\002:\0010\022\016\n\003min\030\003 \001(\002:\0010\022"
"\016\n\003max\030\004 \001(\002:\0011\022\017\n\004mean\030\005 \001(\002:\0010\022\016\n\003std\030"
"\006 \001(\002:\0011\022\022\n\006sparse\030\007 \001(\005:\002-1\022B\n\rvariance"
"_norm\030\010 \001(\0162#.caffe.FillerParameter.Vari"
"anceNorm:\006FAN_IN\"4\n\014VarianceNorm\022\n\n\006FAN_"
"IN\020\000\022\013\n\007FAN_OUT\020\001\022\013\n\007AVERAGE\020\002\"\216\002\n\014NetPa"
"rameter\022\014\n\004name\030\001 \001(\t\022\r\n\005input\030\003 \003(\t\022%\n\013"
"input_shape\030\010 \003(\0132\020.caffe.BlobShape\022\021\n\ti"
"nput_dim\030\004 \003(\005\022\035\n\016force_backward\030\005 \001(\010:\005"
"false\022\036\n\005state\030\006 \001(\0132\017.caffe.NetState\022\031\n"
"\ndebug_info\030\007 \001(\010:\005false\022$\n\005layer\030d \003(\0132"
"\025.caffe.LayerParameter\022\'\n\006layers\030\002 \003(\0132\027"
".caffe.V1LayerParameter\"\242\n\n\017SolverParame"
"ter\022\013\n\003net\030\030 \001(\t\022&\n\tnet_param\030\031 \001(\0132\023.ca"
"ffe.NetParameter\022\021\n\ttrain_net\030\001 \001(\t\022\020\n\010t"
"est_net\030\002 \003(\t\022,\n\017train_net_param\030\025 \001(\0132\023"
".caffe.NetParameter\022+\n\016test_net_param\030\026 "
"\003(\0132\023.caffe.NetParameter\022$\n\013train_state\030"
"\032 \001(\0132\017.caffe.NetState\022#\n\ntest_state\030\033 \003"
"(\0132\017.caffe.NetState\022\021\n\ttest_iter\030\003 \003(\005\022\030"
"\n\rtest_interval\030\004 \001(\005:\0010\022 \n\021test_compute"
"_loss\030\023 \001(\010:\005false\022!\n\023test_initializatio"
"n\030 \001(\010:\004true\022\017\n\007base_lr\030\005 \001(\002\022\017\n\007displa"
"y\030\006 \001(\005\022\027\n\014average_loss\030! \001(\005:\0011\022\020\n\010max_"
"iter\030\007 \001(\005\022\024\n\titer_size\030$ \001(\005:\0011\022\021\n\tlr_p"
"olicy\030\010 \001(\t\022\r\n\005gamma\030\t \001(\002\022\r\n\005power\030\n \001("
"\002\022\020\n\010momentum\030\013 \001(\002\022\024\n\014weight_decay\030\014 \001("
"\002\022\037\n\023regularization_type\030\035 \001(\t:\002L2\022\020\n\010st"
"epsize\030\r \001(\005\022\021\n\tstepvalue\030\" \003(\005\022\032\n\016clip_"
"gradients\030# \001(\002:\002-1\022\023\n\010snapshot\030\016 \001(\005:\0010"
"\022\027\n\017snapshot_prefix\030\017 \001(\t\022\034\n\rsnapshot_di"
"ff\030\020 \001(\010:\005false\022K\n\017snapshot_format\030% \001(\016"
"2%.caffe.SolverParameter.SnapshotFormat:"
"\013BINARYPROTO\022;\n\013solver_mode\030\021 \001(\0162!.caff"
"e.SolverParameter.SolverMode:\003GPU\022\024\n\tdev"
"ice_id\030\022 \001(\005:\0010\022\027\n\013random_seed\030\024 \001(\003:\002-1"
"\022\021\n\004type\030( \001(\t:\003SGD\022\024\n\005delta\030\037 \001(\002:\0051e-0"
"8\022\030\n\tmomentum2\030\' \001(\002:\0050.999\022\027\n\trms_decay"
"\030& \001(\002:\0040.99\022\031\n\ndebug_info\030\027 \001(\010:\005false\022"
"\"\n\024snapshot_after_train\030\034 \001(\010:\004true\022;\n\013s"
"olver_type\030\036 \001(\0162!.caffe.SolverParameter"
".SolverType:\003SGD\"+\n\016SnapshotFormat\022\010\n\004HD"
"F5\020\000\022\017\n\013BINARYPROTO\020\001\"\036\n\nSolverMode\022\007\n\003C"
"PU\020\000\022\007\n\003GPU\020\001\"U\n\nSolverType\022\007\n\003SGD\020\000\022\014\n\010"
"NESTEROV\020\001\022\013\n\007ADAGRAD\020\002\022\013\n\007RMSPROP\020\003\022\014\n\010"
"ADADELTA\020\004\022\010\n\004ADAM\020\005\"l\n\013SolverState\022\014\n\004i"
"ter\030\001 \001(\005\022\023\n\013learned_net\030\002 \001(\t\022!\n\007histor"
"y\030\003 \003(\0132\020.caffe.BlobProto\022\027\n\014current_ste"
"p\030\004 \001(\005:\0010\"N\n\010NetState\022!\n\005phase\030\001 \001(\0162\014."
"caffe.Phase:\004TEST\022\020\n\005level\030\002 \001(\005:\0010\022\r\n\005s"
"tage\030\003 \003(\t\"s\n\014NetStateRule\022\033\n\005phase\030\001 \001("
"\0162\014.caffe.Phase\022\021\n\tmin_level\030\002 \001(\005\022\021\n\tma"
"x_level\030\003 \001(\005\022\r\n\005stage\030\004 \003(\t\022\021\n\tnot_stag"
"e\030\005 \003(\t\"\243\001\n\tParamSpec\022\014\n\004name\030\001 \001(\t\0221\n\ns"
"hare_mode\030\002 \001(\0162\035.caffe.ParamSpec.DimChe"
"ckMode\022\022\n\007lr_mult\030\003 \001(\002:\0011\022\025\n\ndecay_mult"
"\030\004 \001(\002:\0011\"*\n\014DimCheckMode\022\n\n\006STRICT\020\000\022\016\n"
"\nPERMISSIVE\020\001\"\335\025\n\016LayerParameter\022\014\n\004name"
"\030\001 \001(\t\022\014\n\004type\030\002 \001(\t\022\016\n\006bottom\030\003 \003(\t\022\013\n\003"
"top\030\004 \003(\t\022\033\n\005phase\030\n \001(\0162\014.caffe.Phase\022\023"
"\n\013loss_weight\030\005 \003(\002\022\037\n\005param\030\006 \003(\0132\020.caf"
"fe.ParamSpec\022\037\n\005blobs\030\007 \003(\0132\020.caffe.Blob"
"Proto\022\026\n\016propagate_down\030\013 \003(\010\022$\n\007include"
"\030\010 \003(\0132\023.caffe.NetStateRule\022$\n\007exclude\030\t"
" \003(\0132\023.caffe.NetStateRule\0227\n\017transform_p"
"aram\030d \001(\0132\036.caffe.TransformationParamet"
"er\022(\n\nloss_param\030e \001(\0132\024.caffe.LossParam"
"eter\0220\n\016accuracy_param\030f \001(\0132\030.caffe.Acc"
"uracyParameter\022,\n\014argmax_param\030g \001(\0132\026.c"
"affe.ArgMaxParameter\0224\n\020batch_norm_param"
"\030\213\001 \001(\0132\031.caffe.BatchNormParameter\022)\n\nbi"
"as_param\030\215\001 \001(\0132\024.caffe.BiasParameter\022,\n"
"\014concat_param\030h \001(\0132\026.caffe.ConcatParame"
"ter\022\?\n\026contrastive_loss_param\030i \001(\0132\037.ca"
"ffe.ContrastiveLossParameter\0226\n\021convolut"
"ion_param\030j \001(\0132\033.caffe.ConvolutionParam"
"eter\022)\n\ncrop_param\030\220\001 \001(\0132\024.caffe.CropPa"
"rameter\022(\n\ndata_param\030k \001(\0132\024.caffe.Data"
"Parameter\022@\n\026detection_output_param\030\223\001 \001"
"(\0132\037.caffe.DetectionOutputParameter\022.\n\rd"
"ropout_param\030l \001(\0132\027.caffe.DropoutParame"
"ter\0223\n\020dummy_data_param\030m \001(\0132\031.caffe.Du"
"mmyDataParameter\022.\n\reltwise_param\030n \001(\0132"
"\027.caffe.EltwiseParameter\022\'\n\telu_param\030\214\001"
" \001(\0132\023.caffe.ELUParameter\022+\n\013embed_param"
"\030\211\001 \001(\0132\025.caffe.EmbedParameter\022&\n\texp_pa"
"ram\030o \001(\0132\023.caffe.ExpParameter\022/\n\rflatte"
"n_param\030\207\001 \001(\0132\027.caffe.FlattenParameter\022"
"1\n\017hdf5_data_param\030p \001(\0132\030.caffe.HDF5Dat"
"aParameter\0225\n\021hdf5_output_param\030q \001(\0132\032."
"caffe.HDF5OutputParameter\0223\n\020hinge_loss_"
"param\030r \001(\0132\031.caffe.HingeLossParameter\0223"
"\n\020image_data_param\030s \001(\0132\031.caffe.ImageDa"
"taParameter\0229\n\023infogain_loss_param\030t \001(\013"
"2\034.caffe.InfogainLossParameter\0229\n\023inner_"
"product_param\030u \001(\0132\034.caffe.InnerProduct"
"Parameter\022+\n\013input_param\030\217\001 \001(\0132\025.caffe."
"InputParameter\022\'\n\tlog_param\030\206\001 \001(\0132\023.caf"
"fe.LogParameter\022&\n\tlrn_param\030v \001(\0132\023.caf"
"fe.LRNParameter\0225\n\021memory_data_param\030w \001"
"(\0132\032.caffe.MemoryDataParameter\022&\n\tmvn_pa"
"ram\030x \001(\0132\023.caffe.MVNParameter\0222\n\nnorm_p"
"aram\030\225\001 \001(\0132\035.caffe.NormalizeBBoxParamet"
"er\022/\n\rpermute_param\030\224\001 \001(\0132\027.caffe.Permu"
"teParameter\0223\n\017parameter_param\030\221\001 \001(\0132\031."
"caffe.ParameterParameter\022.\n\rpooling_para"
"m\030y \001(\0132\027.caffe.PoolingParameter\022*\n\013powe"
"r_param\030z \001(\0132\025.caffe.PowerParameter\022+\n\013"
"prelu_param\030\203\001 \001(\0132\025.caffe.PReLUParamete"
"r\0222\n\017prior_box_param\030\226\001 \001(\0132\030.caffe.Prio"
"rBoxParameter\022-\n\014python_param\030\202\001 \001(\0132\026.c"
"affe.PythonParameter\0223\n\017recurrent_param\030"
"\222\001 \001(\0132\031.caffe.RecurrentParameter\0223\n\017red"
"uction_param\030\210\001 \001(\0132\031.caffe.ReductionPar"
"ameter\022(\n\nrelu_param\030{ \001(\0132\024.caffe.ReLUP"
"arameter\022/\n\rreshape_param\030\205\001 \001(\0132\027.caffe"
".ReshapeParameter\022+\n\013scale_param\030\216\001 \001(\0132"
"\025.caffe.ScaleParameter\022.\n\rsigmoid_param\030"
"| \001(\0132\027.caffe.SigmoidParameter\022.\n\rsoftma"
"x_param\030} \001(\0132\027.caffe.SoftmaxParameter\022\'"
"\n\tspp_param\030\204\001 \001(\0132\023.caffe.SPPParameter\022"
"*\n\013slice_param\030~ \001(\0132\025.caffe.SliceParame"
"ter\022(\n\ntanh_param\030\177 \001(\0132\024.caffe.TanHPara"
"meter\0223\n\017threshold_param\030\200\001 \001(\0132\031.caffe."
"ThresholdParameter\022)\n\ntile_param\030\212\001 \001(\0132"
"\024.caffe.TileParameter\0226\n\021window_data_par"
"am\030\201\001 \001(\0132\032.caffe.WindowDataParameter\"\266\001"
"\n\027TransformationParameter\022\020\n\005scale\030\001 \001(\002"
":\0011\022\025\n\006mirror\030\002 \001(\010:\005false\022\024\n\tcrop_size\030"
"\003 \001(\r:\0010\022\021\n\tmean_file\030\004 \001(\t\022\022\n\nmean_valu"
"e\030\005 \003(\002\022\032\n\013force_color\030\006 \001(\010:\005false\022\031\n\nf"
"orce_gray\030\007 \001(\010:\005false\"\302\001\n\rLossParameter"
"\022\024\n\014ignore_label\030\001 \001(\005\022D\n\rnormalization\030"
"\003 \001(\0162&.caffe.LossParameter.Normalizatio"
"nMode:\005VALID\022\021\n\tnormalize\030\002 \001(\010\"B\n\021Norma"
"lizationMode\022\010\n\004FULL\020\000\022\t\n\005VALID\020\001\022\016\n\nBAT"
"CH_SIZE\020\002\022\010\n\004NONE\020\003\"L\n\021AccuracyParameter"
"\022\020\n\005top_k\030\001 \001(\r:\0011\022\017\n\004axis\030\002 \001(\005:\0011\022\024\n\014i"
"gnore_label\030\003 \001(\005\"M\n\017ArgMaxParameter\022\032\n\013"
"out_max_val\030\001 \001(\010:\005false\022\020\n\005top_k\030\002 \001(\r:"
"\0011\022\014\n\004axis\030\003 \001(\005\"9\n\017ConcatParameter\022\017\n\004a"
"xis\030\002 \001(\005:\0011\022\025\n\nconcat_dim\030\001 \001(\r:\0011\"j\n\022B"
"atchNormParameter\022\030\n\020use_global_stats\030\001 "
"\001(\010\022&\n\027moving_average_fraction\030\002 \001(\002:\0050."
"999\022\022\n\003eps\030\003 \001(\002:\0051e-05\"]\n\rBiasParameter"
"\022\017\n\004axis\030\001 \001(\005:\0011\022\023\n\010num_axes\030\002 \001(\005:\0011\022&"
"\n\006filler\030\003 \001(\0132\026.caffe.FillerParameter\"L"
"\n\030ContrastiveLossParameter\022\021\n\006margin\030\001 \001"
"(\002:\0011\022\035\n\016legacy_version\030\002 \001(\010:\005false\"\374\003\n"
"\024ConvolutionParameter\022\022\n\nnum_output\030\001 \001("
"\r\022\027\n\tbias_term\030\002 \001(\010:\004true\022\013\n\003pad\030\003 \003(\r\022"
"\023\n\013kernel_size\030\004 \003(\r\022\016\n\006stride\030\006 \003(\r\022\020\n\010"
"dilation\030\022 \003(\r\022\020\n\005pad_h\030\t \001(\r:\0010\022\020\n\005pad_"
"w\030\n \001(\r:\0010\022\020\n\010kernel_h\030\013 \001(\r\022\020\n\010kernel_w"
"\030\014 \001(\r\022\020\n\010stride_h\030\r \001(\r\022\020\n\010stride_w\030\016 \001"
"(\r\022\020\n\005group\030\005 \001(\r:\0011\022-\n\rweight_filler\030\007 "
"\001(\0132\026.caffe.FillerParameter\022+\n\013bias_fill"
"er\030\006 \001(\0132\026.caffe.FillerParameter\022\016\n\003pad\030"
"\007 \001(\r:\0010\022\022\n\nkernelsize\030\010 \001(\r\022\020\n\005group\030\t "
"\001(\r:\0011\022\021\n\006stride\030\n \001(\r:\0011\0225\n\004pool\030\013 \001(\0162"
"\".caffe.V0LayerParameter.PoolMethod:\003MAX"
"\022\032\n\rdropout_ratio\030\014 \001(\002:\0030.5\022\025\n\nlocal_si"
"ze\030\r \001(\r:\0015\022\020\n\005alpha\030\016 \001(\002:\0011\022\022\n\004beta\030\017 "
"\001(\002:\0040.75\022\014\n\001k\030\026 \001(\002:\0011\022\016\n\006source\030\020 \001(\t\022"
"\020\n\005scale\030\021 \001(\002:\0011\022\020\n\010meanfile\030\022 \001(\t\022\021\n\tb"
"atchsize\030\023 \001(\r\022\023\n\010cropsize\030\024 \001(\r:\0010\022\025\n\006m"
"irror\030\025 \001(\010:\005false\022\037\n\005blobs\0302 \003(\0132\020.caff"
"e.BlobProto\022\020\n\010blobs_lr\0303 \003(\002\022\024\n\014weight_"
"decay\0304 \003(\002\022\024\n\trand_skip\0305 \001(\r:\0010\022\035\n\020det"
"_fg_threshold\0306 \001(\002:\0030.5\022\035\n\020det_bg_thres"
"hold\0307 \001(\002:\0030.5\022\035\n\017det_fg_fraction\0308 \001(\002"
":\0040.25\022\032\n\017det_context_pad\030: \001(\r:\0010\022\033\n\rde"
"t_crop_mode\030; \001(\t:\004warp\022\022\n\007new_num\030< \001(\005"
":\0010\022\027\n\014new_channels\030= \001(\005:\0010\022\025\n\nnew_heig"
"ht\030> \001(\005:\0010\022\024\n\tnew_width\030\? \001(\005:\0010\022\035\n\016shu"
"ffle_images\030@ \001(\010:\005false\022\025\n\nconcat_dim\030A"
" \001(\r:\0011\0226\n\021hdf5_output_param\030\351\007 \001(\0132\032.ca"
"ffe.HDF5OutputParameter\".\n\nPoolMethod\022\007\n"
"\003MAX\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHASTIC\020\002\"W\n\016PReLU"
"Parameter\022&\n\006filler\030\001 \001(\0132\026.caffe.Filler"
"Parameter\022\035\n\016channel_shared\030\002 \001(\010:\005false"
"\"\207\001\n\016NormalizedBBox\022\014\n\004xmin\030\001 \001(\002\022\014\n\004ymi"
"n\030\002 \001(\002\022\014\n\004xmax\030\003 \001(\002\022\014\n\004ymax\030\004 \001(\002\022\r\n\005l"
"abel\030\005 \001(\005\022\021\n\tdifficult\030\006 \001(\010\022\r\n\005score\030\007"
" \001(\002\022\014\n\004size\030\010 \001(\002*=\n\004Type\022\n\n\006DOUBLE\020\000\022\t"
"\n\005FLOAT\020\001\022\013\n\007FLOAT16\020\002\022\007\n\003INT\020\003\022\010\n\004UINT\020"
"\004*\034\n\005Phase\022\t\n\005TRAIN\020\000\022\010\n\004TEST\020\001", 16991);
"er\030\010 \001(\0132\026.caffe.FillerParameter\022;\n\006engi"
"ne\030\017 \001(\0162\".caffe.ConvolutionParameter.En"
"gine:\007DEFAULT\022\017\n\004axis\030\020 \001(\005:\0011\022\036\n\017force_"
"nd_im2col\030\021 \001(\010:\005false\"+\n\006Engine\022\013\n\007DEFA"
"ULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"0\n\rCropParam"
"eter\022\017\n\004axis\030\001 \001(\005:\0012\022\016\n\006offset\030\002 \003(\r\"\244\002"
"\n\rDataParameter\022\016\n\006source\030\001 \001(\t\022\022\n\nbatch"
"_size\030\004 \001(\r\022\024\n\trand_skip\030\007 \001(\r:\0010\0221\n\007bac"
"kend\030\010 \001(\0162\027.caffe.DataParameter.DB:\007LEV"
"ELDB\022\020\n\005scale\030\002 \001(\002:\0011\022\021\n\tmean_file\030\003 \001("
"\t\022\024\n\tcrop_size\030\005 \001(\r:\0010\022\025\n\006mirror\030\006 \001(\010:"
"\005false\022\"\n\023force_encoded_color\030\t \001(\010:\005fal"
"se\022\023\n\010prefetch\030\n \001(\r:\0014\"\033\n\002DB\022\013\n\007LEVELDB"
"\020\000\022\010\n\004LMDB\020\001\"[\n\036NonMaximumSuppressionPar"
"ameter\022\032\n\rnms_threshold\030\001 \001(\002:\0030.3\022\r\n\005to"
"p_k\030\002 \001(\005\022\016\n\003eta\030\003 \001(\002:\0011\"\252\001\n\023SaveOutput"
"Parameter\022\030\n\020output_directory\030\001 \001(\t\022\032\n\022o"
"utput_name_prefix\030\002 \001(\t\022\025\n\routput_format"
"\030\003 \001(\t\022\026\n\016label_map_file\030\004 \001(\t\022\026\n\016name_s"
"ize_file\030\005 \001(\t\022\026\n\016num_test_image\030\006 \001(\r\"."
"\n\020DropoutParameter\022\032\n\rdropout_ratio\030\001 \001("
"\002:\0030.5\"\240\001\n\022DummyDataParameter\022+\n\013data_fi"
"ller\030\001 \003(\0132\026.caffe.FillerParameter\022\037\n\005sh"
"ape\030\006 \003(\0132\020.caffe.BlobShape\022\013\n\003num\030\002 \003(\r"
"\022\020\n\010channels\030\003 \003(\r\022\016\n\006height\030\004 \003(\r\022\r\n\005wi"
"dth\030\005 \003(\r\"\245\001\n\020EltwiseParameter\0229\n\toperat"
"ion\030\001 \001(\0162!.caffe.EltwiseParameter.Eltwi"
"seOp:\003SUM\022\r\n\005coeff\030\002 \003(\002\022\036\n\020stable_prod_"
"grad\030\003 \001(\010:\004true\"\'\n\tEltwiseOp\022\010\n\004PROD\020\000\022"
"\007\n\003SUM\020\001\022\007\n\003MAX\020\002\" \n\014ELUParameter\022\020\n\005alp"
"ha\030\001 \001(\002:\0011\"\254\001\n\016EmbedParameter\022\022\n\nnum_ou"
"tput\030\001 \001(\r\022\021\n\tinput_dim\030\002 \001(\r\022\027\n\tbias_te"
"rm\030\003 \001(\010:\004true\022-\n\rweight_filler\030\004 \001(\0132\026."
"caffe.FillerParameter\022+\n\013bias_filler\030\005 \001"
"(\0132\026.caffe.FillerParameter\"D\n\014ExpParamet"
"er\022\020\n\004base\030\001 \001(\002:\002-1\022\020\n\005scale\030\002 \001(\002:\0011\022\020"
"\n\005shift\030\003 \001(\002:\0010\"9\n\020FlattenParameter\022\017\n\004"
"axis\030\001 \001(\005:\0011\022\024\n\010end_axis\030\002 \001(\005:\002-1\"O\n\021H"
"DF5DataParameter\022\016\n\006source\030\001 \001(\t\022\022\n\nbatc"
"h_size\030\002 \001(\r\022\026\n\007shuffle\030\003 \001(\010:\005false\"(\n\023"
"HDF5OutputParameter\022\021\n\tfile_name\030\001 \001(\t\"^"
"\n\022HingeLossParameter\0220\n\004norm\030\001 \001(\0162\036.caf"
"fe.HingeLossParameter.Norm:\002L1\"\026\n\004Norm\022\006"
"\n\002L1\020\001\022\006\n\002L2\020\002\"\227\002\n\022ImageDataParameter\022\016\n"
"\006source\030\001 \001(\t\022\025\n\nbatch_size\030\004 \001(\r:\0011\022\024\n\t"
"rand_skip\030\007 \001(\r:\0010\022\026\n\007shuffle\030\010 \001(\010:\005fal"
"se\022\025\n\nnew_height\030\t \001(\r:\0010\022\024\n\tnew_width\030\n"
" \001(\r:\0010\022\026\n\010is_color\030\013 \001(\010:\004true\022\020\n\005scale"
"\030\002 \001(\002:\0011\022\021\n\tmean_file\030\003 \001(\t\022\024\n\tcrop_siz"
"e\030\005 \001(\r:\0010\022\025\n\006mirror\030\006 \001(\010:\005false\022\025\n\013roo"
"t_folder\030\014 \001(\t:\000\"\'\n\025InfogainLossParamete"
"r\022\016\n\006source\030\001 \001(\t\"\313\001\n\025InnerProductParame"
"ter\022\022\n\nnum_output\030\001 \001(\r\022\027\n\tbias_term\030\002 \001"
"(\010:\004true\022-\n\rweight_filler\030\003 \001(\0132\026.caffe."
"FillerParameter\022+\n\013bias_filler\030\004 \001(\0132\026.c"
"affe.FillerParameter\022\017\n\004axis\030\005 \001(\005:\0011\022\030\n"
"\ttranspose\030\006 \001(\010:\005false\"1\n\016InputParamete"
"r\022\037\n\005shape\030\001 \003(\0132\020.caffe.BlobShape\"D\n\014Lo"
"gParameter\022\020\n\004base\030\001 \001(\002:\002-1\022\020\n\005scale\030\002 "
"\001(\002:\0011\022\020\n\005shift\030\003 \001(\002:\0010\"\270\002\n\014LRNParamete"
"r\022\025\n\nlocal_size\030\001 \001(\r:\0015\022\020\n\005alpha\030\002 \001(\002:"
"\0011\022\022\n\004beta\030\003 \001(\002:\0040.75\022D\n\013norm_region\030\004 "
"\001(\0162\036.caffe.LRNParameter.NormRegion:\017ACR"
"OSS_CHANNELS\022\014\n\001k\030\005 \001(\002:\0011\0223\n\006engine\030\006 \001"
"(\0162\032.caffe.LRNParameter.Engine:\007DEFAULT\""
"5\n\nNormRegion\022\023\n\017ACROSS_CHANNELS\020\000\022\022\n\016WI"
"THIN_CHANNEL\020\001\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n"
"\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"Z\n\023MemoryDataParamet"
"er\022\022\n\nbatch_size\030\001 \001(\r\022\020\n\010channels\030\002 \001(\r"
"\022\016\n\006height\030\003 \001(\r\022\r\n\005width\030\004 \001(\r\"d\n\014MVNPa"
"rameter\022 \n\022normalize_variance\030\001 \001(\010:\004tru"
"e\022\036\n\017across_channels\030\002 \001(\010:\005false\022\022\n\003eps"
"\030\003 \001(\002:\0051e-09\"5\n\022ParameterParameter\022\037\n\005s"
"hape\030\001 \001(\0132\020.caffe.BlobShape\"\242\003\n\020Pooling"
"Parameter\0225\n\004pool\030\001 \001(\0162\".caffe.PoolingP"
"arameter.PoolMethod:\003MAX\022\016\n\003pad\030\004 \001(\r:\0010"
"\022\020\n\005pad_h\030\t \001(\r:\0010\022\020\n\005pad_w\030\n \001(\r:\0010\022\023\n\013"
"kernel_size\030\002 \001(\r\022\020\n\010kernel_h\030\005 \001(\r\022\020\n\010k"
"ernel_w\030\006 \001(\r\022\021\n\006stride\030\003 \001(\r:\0011\022\020\n\010stri"
"de_h\030\007 \001(\r\022\020\n\010stride_w\030\010 \001(\r\0227\n\006engine\030\013"
" \001(\0162\036.caffe.PoolingParameter.Engine:\007DE"
"FAULT\022\035\n\016global_pooling\030\014 \001(\010:\005false\".\n\n"
"PoolMethod\022\007\n\003MAX\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHAST"
"IC\020\002\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t"
"\n\005CUDNN\020\002\"F\n\016PowerParameter\022\020\n\005power\030\001 \001"
"(\002:\0011\022\020\n\005scale\030\002 \001(\002:\0011\022\020\n\005shift\030\003 \001(\002:\001"
"0\"g\n\017PythonParameter\022\016\n\006module\030\001 \001(\t\022\r\n\005"
"layer\030\002 \001(\t\022\023\n\tparam_str\030\003 \001(\t:\000\022 \n\021shar"
"e_in_parallel\030\004 \001(\010:\005false\"\300\001\n\022Recurrent"
"Parameter\022\025\n\nnum_output\030\001 \001(\r:\0010\022-\n\rweig"
"ht_filler\030\002 \001(\0132\026.caffe.FillerParameter\022"
"+\n\013bias_filler\030\003 \001(\0132\026.caffe.FillerParam"
"eter\022\031\n\ndebug_info\030\004 \001(\010:\005false\022\034\n\rexpos"
"e_hidden\030\005 \001(\010:\005false\"\255\001\n\022ReductionParam"
"eter\022=\n\toperation\030\001 \001(\0162%.caffe.Reductio"
"nParameter.ReductionOp:\003SUM\022\017\n\004axis\030\002 \001("
"\005:\0010\022\020\n\005coeff\030\003 \001(\002:\0011\"5\n\013ReductionOp\022\007\n"
"\003SUM\020\001\022\010\n\004ASUM\020\002\022\t\n\005SUMSQ\020\003\022\010\n\004MEAN\020\004\"\215\001"
"\n\rReLUParameter\022\031\n\016negative_slope\030\001 \001(\002:"
"\0010\0224\n\006engine\030\002 \001(\0162\033.caffe.ReLUParameter"
".Engine:\007DEFAULT\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022"
"\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"Z\n\020ReshapeParamete"
"r\022\037\n\005shape\030\001 \001(\0132\020.caffe.BlobShape\022\017\n\004ax"
"is\030\002 \001(\005:\0010\022\024\n\010num_axes\030\003 \001(\005:\002-1\"\245\001\n\016Sc"
"aleParameter\022\017\n\004axis\030\001 \001(\005:\0011\022\023\n\010num_axe"
"s\030\002 \001(\005:\0011\022&\n\006filler\030\003 \001(\0132\026.caffe.Fille"
"rParameter\022\030\n\tbias_term\030\004 \001(\010:\005false\022+\n\013"
"bias_filler\030\005 \001(\0132\026.caffe.FillerParamete"
"r\"x\n\020SigmoidParameter\0227\n\006engine\030\001 \001(\0162\036."
"caffe.SigmoidParameter.Engine:\007DEFAULT\"+"
"\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDN"
"N\020\002\"L\n\016SliceParameter\022\017\n\004axis\030\003 \001(\005:\0011\022\023"
"\n\013slice_point\030\002 \003(\r\022\024\n\tslice_dim\030\001 \001(\r:\001"
"1\"\211\001\n\020SoftmaxParameter\0227\n\006engine\030\001 \001(\0162\036"
".caffe.SoftmaxParameter.Engine:\007DEFAULT\022"
"\017\n\004axis\030\002 \001(\005:\0011\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022"
"\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"r\n\rTanHParameter\0224"
"\n\006engine\030\001 \001(\0162\033.caffe.TanHParameter.Eng"
"ine:\007DEFAULT\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005C"
"AFFE\020\001\022\t\n\005CUDNN\020\002\"/\n\rTileParameter\022\017\n\004ax"
"is\030\001 \001(\005:\0011\022\r\n\005tiles\030\002 \001(\005\"*\n\022ThresholdP"
"arameter\022\024\n\tthreshold\030\001 \001(\002:\0010\"\301\002\n\023Windo"
"wDataParameter\022\016\n\006source\030\001 \001(\t\022\020\n\005scale\030"
"\002 \001(\002:\0011\022\021\n\tmean_file\030\003 \001(\t\022\022\n\nbatch_siz"
"e\030\004 \001(\r\022\024\n\tcrop_size\030\005 \001(\r:\0010\022\025\n\006mirror\030"
"\006 \001(\010:\005false\022\031\n\014fg_threshold\030\007 \001(\002:\0030.5\022"
"\031\n\014bg_threshold\030\010 \001(\002:\0030.5\022\031\n\013fg_fractio"
"n\030\t \001(\002:\0040.25\022\026\n\013context_pad\030\n \001(\r:\0010\022\027\n"
"\tcrop_mode\030\013 \001(\t:\004warp\022\033\n\014cache_images\030\014"
" \001(\010:\005false\022\025\n\013root_folder\030\r \001(\t:\000\"\353\001\n\014S"
"PPParameter\022\026\n\016pyramid_height\030\001 \001(\r\0221\n\004p"
"ool\030\002 \001(\0162\036.caffe.SPPParameter.PoolMetho"
"d:\003MAX\0223\n\006engine\030\006 \001(\0162\032.caffe.SPPParame"
"ter.Engine:\007DEFAULT\".\n\nPoolMethod\022\007\n\003MAX"
"\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHASTIC\020\002\"+\n\006Engine\022\013\n"
"\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"\340\023\n\020V1L"
"ayerParameter\022\016\n\006bottom\030\002 \003(\t\022\013\n\003top\030\003 \003"
"(\t\022\014\n\004name\030\004 \001(\t\022$\n\007include\030 \003(\0132\023.caff"
"e.NetStateRule\022$\n\007exclude\030! \003(\0132\023.caffe."
"NetStateRule\022/\n\004type\030\005 \001(\0162!.caffe.V1Lay"
"erParameter.LayerType\022\037\n\005blobs\030\006 \003(\0132\020.c"
"affe.BlobProto\022\016\n\005param\030\351\007 \003(\t\022>\n\017blob_s"
"hare_mode\030\352\007 \003(\0162$.caffe.V1LayerParamete"
"r.DimCheckMode\022\020\n\010blobs_lr\030\007 \003(\002\022\024\n\014weig"
"ht_decay\030\010 \003(\002\022\023\n\013loss_weight\030# \003(\002\0220\n\016a"
"ccuracy_param\030\033 \001(\0132\030.caffe.AccuracyPara"
"meter\022,\n\014argmax_param\030\027 \001(\0132\026.caffe.ArgM"
"axParameter\022,\n\014concat_param\030\t \001(\0132\026.caff"
"e.ConcatParameter\022\?\n\026contrastive_loss_pa"
"ram\030( \001(\0132\037.caffe.ContrastiveLossParamet"
"er\0226\n\021convolution_param\030\n \001(\0132\033.caffe.Co"
"nvolutionParameter\022(\n\ndata_param\030\013 \001(\0132\024"
".caffe.DataParameter\022.\n\rdropout_param\030\014 "
"\001(\0132\027.caffe.DropoutParameter\0223\n\020dummy_da"
"ta_param\030\032 \001(\0132\031.caffe.DummyDataParamete"
"r\022.\n\reltwise_param\030\030 \001(\0132\027.caffe.Eltwise"
"Parameter\022&\n\texp_param\030) \001(\0132\023.caffe.Exp"
"Parameter\0221\n\017hdf5_data_param\030\r \001(\0132\030.caf"
"fe.HDF5DataParameter\0225\n\021hdf5_output_para"
"m\030\016 \001(\0132\032.caffe.HDF5OutputParameter\0223\n\020h"
"inge_loss_param\030\035 \001(\0132\031.caffe.HingeLossP"
"arameter\0223\n\020image_data_param\030\017 \001(\0132\031.caf"
"fe.ImageDataParameter\0229\n\023infogain_loss_p"
"aram\030\020 \001(\0132\034.caffe.InfogainLossParameter"
"\0229\n\023inner_product_param\030\021 \001(\0132\034.caffe.In"
"nerProductParameter\022&\n\tlrn_param\030\022 \001(\0132\023"
".caffe.LRNParameter\0225\n\021memory_data_param"
"\030\026 \001(\0132\032.caffe.MemoryDataParameter\022&\n\tmv"
"n_param\030\" \001(\0132\023.caffe.MVNParameter\022.\n\rpo"
"oling_param\030\023 \001(\0132\027.caffe.PoolingParamet"
"er\022*\n\013power_param\030\025 \001(\0132\025.caffe.PowerPar"
"ameter\022(\n\nrelu_param\030\036 \001(\0132\024.caffe.ReLUP"
"arameter\022.\n\rsigmoid_param\030& \001(\0132\027.caffe."
"SigmoidParameter\022.\n\rsoftmax_param\030\' \001(\0132"
"\027.caffe.SoftmaxParameter\022*\n\013slice_param\030"
"\037 \001(\0132\025.caffe.SliceParameter\022(\n\ntanh_par"
"am\030% \001(\0132\024.caffe.TanHParameter\0222\n\017thresh"
"old_param\030\031 \001(\0132\031.caffe.ThresholdParamet"
"er\0225\n\021window_data_param\030\024 \001(\0132\032.caffe.Wi"
"ndowDataParameter\0227\n\017transform_param\030$ \001"
"(\0132\036.caffe.TransformationParameter\022(\n\nlo"
"ss_param\030* \001(\0132\024.caffe.LossParameter\022&\n\005"
"layer\030\001 \001(\0132\027.caffe.V0LayerParameter\"\330\004\n"
"\tLayerType\022\010\n\004NONE\020\000\022\n\n\006ABSVAL\020#\022\014\n\010ACCU"
"RACY\020\001\022\n\n\006ARGMAX\020\036\022\010\n\004BNLL\020\002\022\n\n\006CONCAT\020\003"
"\022\024\n\020CONTRASTIVE_LOSS\020%\022\017\n\013CONVOLUTION\020\004\022"
"\010\n\004DATA\020\005\022\021\n\rDECONVOLUTION\020\'\022\013\n\007DROPOUT\020"
"\006\022\016\n\nDUMMY_DATA\020 \022\022\n\016EUCLIDEAN_LOSS\020\007\022\013\n"
"\007ELTWISE\020\031\022\007\n\003EXP\020&\022\013\n\007FLATTEN\020\010\022\r\n\tHDF5"
"_DATA\020\t\022\017\n\013HDF5_OUTPUT\020\n\022\016\n\nHINGE_LOSS\020\034"
"\022\n\n\006IM2COL\020\013\022\016\n\nIMAGE_DATA\020\014\022\021\n\rINFOGAIN"
"_LOSS\020\r\022\021\n\rINNER_PRODUCT\020\016\022\007\n\003LRN\020\017\022\017\n\013M"
"EMORY_DATA\020\035\022\035\n\031MULTINOMIAL_LOGISTIC_LOS"
"S\020\020\022\007\n\003MVN\020\"\022\013\n\007POOLING\020\021\022\t\n\005POWER\020\032\022\010\n\004"
"RELU\020\022\022\013\n\007SIGMOID\020\023\022\036\n\032SIGMOID_CROSS_ENT"
"ROPY_LOSS\020\033\022\013\n\007SILENCE\020$\022\013\n\007SOFTMAX\020\024\022\020\n"
"\014SOFTMAX_LOSS\020\025\022\t\n\005SPLIT\020\026\022\t\n\005SLICE\020!\022\010\n"
"\004TANH\020\027\022\017\n\013WINDOW_DATA\020\030\022\r\n\tTHRESHOLD\020\037\""
"*\n\014DimCheckMode\022\n\n\006STRICT\020\000\022\016\n\nPERMISSIV"
"E\020\001\"\375\007\n\020V0LayerParameter\022\014\n\004name\030\001 \001(\t\022\014"
"\n\004type\030\002 \001(\t\022\022\n\nnum_output\030\003 \001(\r\022\026\n\010bias"
"term\030\004 \001(\010:\004true\022-\n\rweight_filler\030\005 \001(\0132"
"\026.caffe.FillerParameter\022+\n\013bias_filler\030\006"
" \001(\0132\026.caffe.FillerParameter\022\016\n\003pad\030\007 \001("
"\r:\0010\022\022\n\nkernelsize\030\010 \001(\r\022\020\n\005group\030\t \001(\r:"
"\0011\022\021\n\006stride\030\n \001(\r:\0011\0225\n\004pool\030\013 \001(\0162\".ca"
"ffe.V0LayerParameter.PoolMethod:\003MAX\022\032\n\r"
"dropout_ratio\030\014 \001(\002:\0030.5\022\025\n\nlocal_size\030\r"
" \001(\r:\0015\022\020\n\005alpha\030\016 \001(\002:\0011\022\022\n\004beta\030\017 \001(\002:"
"\0040.75\022\014\n\001k\030\026 \001(\002:\0011\022\016\n\006source\030\020 \001(\t\022\020\n\005s"
"cale\030\021 \001(\002:\0011\022\020\n\010meanfile\030\022 \001(\t\022\021\n\tbatch"
"size\030\023 \001(\r\022\023\n\010cropsize\030\024 \001(\r:\0010\022\025\n\006mirro"
"r\030\025 \001(\010:\005false\022\037\n\005blobs\0302 \003(\0132\020.caffe.Bl"
"obProto\022\020\n\010blobs_lr\0303 \003(\002\022\024\n\014weight_deca"
"y\0304 \003(\002\022\024\n\trand_skip\0305 \001(\r:\0010\022\035\n\020det_fg_"
"threshold\0306 \001(\002:\0030.5\022\035\n\020det_bg_threshold"
"\0307 \001(\002:\0030.5\022\035\n\017det_fg_fraction\0308 \001(\002:\0040."
"25\022\032\n\017det_context_pad\030: \001(\r:\0010\022\033\n\rdet_cr"
"op_mode\030; \001(\t:\004warp\022\022\n\007new_num\030< \001(\005:\0010\022"
"\027\n\014new_channels\030= \001(\005:\0010\022\025\n\nnew_height\030>"
" \001(\005:\0010\022\024\n\tnew_width\030\? \001(\005:\0010\022\035\n\016shuffle"
"_images\030@ \001(\010:\005false\022\025\n\nconcat_dim\030A \001(\r"
":\0011\0226\n\021hdf5_output_param\030\351\007 \001(\0132\032.caffe."
"HDF5OutputParameter\".\n\nPoolMethod\022\007\n\003MAX"
"\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHASTIC\020\002\"W\n\016PReLUPara"
"meter\022&\n\006filler\030\001 \001(\0132\026.caffe.FillerPara"
"meter\022\035\n\016channel_shared\030\002 \001(\010:\005false\"\207\001\n"
"\016NormalizedBBox\022\014\n\004xmin\030\001 \001(\002\022\014\n\004ymin\030\002 "
"\001(\002\022\014\n\004xmax\030\003 \001(\002\022\014\n\004ymax\030\004 \001(\002\022\r\n\005label"
"\030\005 \001(\005\022\021\n\tdifficult\030\006 \001(\010\022\r\n\005score\030\007 \001(\002"
"\022\014\n\004size\030\010 \001(\002*=\n\004Type\022\n\n\006DOUBLE\020\000\022\t\n\005FL"
"OAT\020\001\022\013\n\007FLOAT16\020\002\022\007\n\003INT\020\003\022\010\n\004UINT\020\004*\034\n"
"\005Phase\022\t\n\005TRAIN\020\000\022\010\n\004TEST\020\001", 17027);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"caffe.proto", &protobuf_RegisterTypes);
::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_caffe_2eproto);
@ -5141,6 +5143,7 @@ const int PriorBoxParameter::kStepFieldNumber;
const int PriorBoxParameter::kStepHFieldNumber;
const int PriorBoxParameter::kStepWFieldNumber;
const int PriorBoxParameter::kOffsetFieldNumber;
const int PriorBoxParameter::kAdditionalYOffsetFieldNumber;
#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
PriorBoxParameter::PriorBoxParameter()
@ -5163,8 +5166,8 @@ PriorBoxParameter::PriorBoxParameter(const PriorBoxParameter& from)
void PriorBoxParameter::SharedCtor() {
_cached_size_ = 0;
::memset(&min_size_, 0, reinterpret_cast<char*>(&step_w_) -
reinterpret_cast<char*>(&min_size_) + sizeof(step_w_));
::memset(&min_size_, 0, reinterpret_cast<char*>(&additional_y_offset_) -
reinterpret_cast<char*>(&min_size_) + sizeof(additional_y_offset_));
flip_ = true;
clip_ = true;
offset_ = 0.5f;
@ -5226,8 +5229,8 @@ void PriorBoxParameter::Clear() {
flip_ = true;
clip_ = true;
}
if (_has_bits_[8 / 32] & 7936u) {
ZR_(img_w_, step_w_);
if (_has_bits_[8 / 32] & 16128u) {
ZR_(img_w_, additional_y_offset_);
offset_ = 0.5f;
}
@ -5450,6 +5453,21 @@ bool PriorBoxParameter::MergePartialFromCodedStream(
} else {
goto handle_unusual;
}
if (input->ExpectTag(112)) goto parse_additional_y_offset;
break;
}
// optional bool additional_y_offset = 14 [default = false];
case 14: {
if (tag == 112) {
parse_additional_y_offset:
set_has_additional_y_offset();
DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
input, &additional_y_offset_)));
} else {
goto handle_unusual;
}
if (input->ExpectAtEnd()) goto success;
break;
}
@ -5546,6 +5564,11 @@ void PriorBoxParameter::SerializeWithCachedSizes(
::google::protobuf::internal::WireFormatLite::WriteFloat(13, this->offset(), output);
}
// optional bool additional_y_offset = 14 [default = false];
if (has_additional_y_offset()) {
::google::protobuf::internal::WireFormatLite::WriteBool(14, this->additional_y_offset(), output);
}
if (_internal_metadata_.have_unknown_fields()) {
::google::protobuf::internal::WireFormat::SerializeUnknownFields(
unknown_fields(), output);
@ -5624,6 +5647,11 @@ void PriorBoxParameter::SerializeWithCachedSizes(
target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(13, this->offset(), target);
}
// optional bool additional_y_offset = 14 [default = false];
if (has_additional_y_offset()) {
target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(14, this->additional_y_offset(), target);
}
if (_internal_metadata_.have_unknown_fields()) {
target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
unknown_fields(), target);
@ -5672,7 +5700,7 @@ size_t PriorBoxParameter::ByteSizeLong() const {
}
}
if (_has_bits_[8 / 32] & 7936u) {
if (_has_bits_[8 / 32] & 16128u) {
// optional uint32 img_w = 9;
if (has_img_w()) {
total_size += 1 +
@ -5700,6 +5728,11 @@ size_t PriorBoxParameter::ByteSizeLong() const {
total_size += 1 + 4;
}
// optional bool additional_y_offset = 14 [default = false];
if (has_additional_y_offset()) {
total_size += 1 + 1;
}
}
// repeated float aspect_ratio = 3;
{
@ -5797,6 +5830,9 @@ void PriorBoxParameter::UnsafeMergeFrom(const PriorBoxParameter& from) {
if (from.has_offset()) {
set_offset(from.offset());
}
if (from.has_additional_y_offset()) {
set_additional_y_offset(from.additional_y_offset());
}
}
if (from._internal_metadata_.have_unknown_fields()) {
::google::protobuf::UnknownFieldSet::MergeToInternalMetdata(
@ -5841,6 +5877,7 @@ void PriorBoxParameter::InternalSwap(PriorBoxParameter* other) {
std::swap(step_h_, other->step_h_);
std::swap(step_w_, other->step_w_);
std::swap(offset_, other->offset_);
std::swap(additional_y_offset_, other->additional_y_offset_);
std::swap(_has_bits_[0], other->_has_bits_[0]);
_internal_metadata_.Swap(&other->_internal_metadata_);
std::swap(_cached_size_, other->_cached_size_);
@ -6181,6 +6218,30 @@ void PriorBoxParameter::set_offset(float value) {
// @@protoc_insertion_point(field_set:caffe.PriorBoxParameter.offset)
}
// optional bool additional_y_offset = 14 [default = false];
bool PriorBoxParameter::has_additional_y_offset() const {
return (_has_bits_[0] & 0x00002000u) != 0;
}
void PriorBoxParameter::set_has_additional_y_offset() {
_has_bits_[0] |= 0x00002000u;
}
void PriorBoxParameter::clear_has_additional_y_offset() {
_has_bits_[0] &= ~0x00002000u;
}
void PriorBoxParameter::clear_additional_y_offset() {
additional_y_offset_ = false;
clear_has_additional_y_offset();
}
bool PriorBoxParameter::additional_y_offset() const {
// @@protoc_insertion_point(field_get:caffe.PriorBoxParameter.additional_y_offset)
return additional_y_offset_;
}
void PriorBoxParameter::set_additional_y_offset(bool value) {
set_has_additional_y_offset();
additional_y_offset_ = value;
// @@protoc_insertion_point(field_set:caffe.PriorBoxParameter.additional_y_offset)
}
inline const PriorBoxParameter* PriorBoxParameter::internal_default_instance() {
return &PriorBoxParameter_default_instance_.get();
}

@ -1537,6 +1537,13 @@ class PriorBoxParameter : public ::google::protobuf::Message /* @@protoc_inserti
float offset() const;
void set_offset(float value);
// optional bool additional_y_offset = 14 [default = false];
bool has_additional_y_offset() const;
void clear_additional_y_offset();
static const int kAdditionalYOffsetFieldNumber = 14;
bool additional_y_offset() const;
void set_additional_y_offset(bool value);
// @@protoc_insertion_point(class_scope:caffe.PriorBoxParameter)
private:
inline void set_has_min_size();
@ -1561,6 +1568,8 @@ class PriorBoxParameter : public ::google::protobuf::Message /* @@protoc_inserti
inline void clear_has_step_w();
inline void set_has_offset();
inline void clear_has_offset();
inline void set_has_additional_y_offset();
inline void clear_has_additional_y_offset();
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
::google::protobuf::internal::HasBits<1> _has_bits_;
@ -1575,6 +1584,7 @@ class PriorBoxParameter : public ::google::protobuf::Message /* @@protoc_inserti
float step_;
float step_h_;
float step_w_;
bool additional_y_offset_;
bool flip_;
bool clip_;
float offset_;
@ -13635,6 +13645,30 @@ inline void PriorBoxParameter::set_offset(float value) {
// @@protoc_insertion_point(field_set:caffe.PriorBoxParameter.offset)
}
// optional bool additional_y_offset = 14 [default = false];
inline bool PriorBoxParameter::has_additional_y_offset() const {
return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void PriorBoxParameter::set_has_additional_y_offset() {
_has_bits_[0] |= 0x00002000u;
}
inline void PriorBoxParameter::clear_has_additional_y_offset() {
_has_bits_[0] &= ~0x00002000u;
}
inline void PriorBoxParameter::clear_additional_y_offset() {
additional_y_offset_ = false;
clear_has_additional_y_offset();
}
inline bool PriorBoxParameter::additional_y_offset() const {
// @@protoc_insertion_point(field_get:caffe.PriorBoxParameter.additional_y_offset)
return additional_y_offset_;
}
inline void PriorBoxParameter::set_additional_y_offset(bool value) {
set_has_additional_y_offset();
additional_y_offset_ = value;
// @@protoc_insertion_point(field_set:caffe.PriorBoxParameter.additional_y_offset)
}
inline const PriorBoxParameter* PriorBoxParameter::internal_default_instance() {
return &PriorBoxParameter_default_instance_.get();
}

@ -145,6 +145,8 @@ message PriorBoxParameter {
optional float step_w = 12;
// Offset to the top left corner of each cell.
optional float offset = 13 [default = 0.5];
// If true, two additional boxes for each center will be generated. Their centers will be shifted by y coordinate.
optional bool additional_y_offset = 14 [default = false];
}
// Message that store parameters used by DetectionOutputLayer

@ -216,6 +216,14 @@ public:
_stepY = 0;
_stepX = 0;
}
if(params.has("additional_y_offset"))
{
_additional_y_offset = getParameter<bool>(params, "additional_y_offset");
if(_additional_y_offset)
_numPriors *= 2;
}
else
_additional_y_offset = false;
}
bool getMemoryShapes(const std::vector<MatShape> &inputs,
@ -289,6 +297,19 @@ public:
// ymax
outputPtr[idx++] = (center_y + _boxHeight / 2.) / _imageHeight;
if(_additional_y_offset)
{
float center_y_offset_1 = (h + 1.0) * stepY;
// xmin
outputPtr[idx++] = (center_x - _boxWidth / 2.) / _imageWidth;
// ymin
outputPtr[idx++] = (center_y_offset_1 - _boxHeight / 2.) / _imageHeight;
// xmax
outputPtr[idx++] = (center_x + _boxWidth / 2.) / _imageWidth;
// ymax
outputPtr[idx++] = (center_y_offset_1 + _boxHeight / 2.) / _imageHeight;
}
if (_maxSize > 0)
{
// second prior: aspect_ratio = 1, size = sqrt(min_size * max_size)
@ -301,6 +322,19 @@ public:
outputPtr[idx++] = (center_x + _boxWidth / 2.) / _imageWidth;
// ymax
outputPtr[idx++] = (center_y + _boxHeight / 2.) / _imageHeight;
if(_additional_y_offset)
{
float center_y_offset_1 = (h + 1.0) * stepY;
// xmin
outputPtr[idx++] = (center_x - _boxWidth / 2.) / _imageWidth;
// ymin
outputPtr[idx++] = (center_y_offset_1 - _boxHeight / 2.) / _imageHeight;
// xmax
outputPtr[idx++] = (center_x + _boxWidth / 2.) / _imageWidth;
// ymax
outputPtr[idx++] = (center_y_offset_1 + _boxHeight / 2.) / _imageHeight;
}
}
// rest of priors
@ -319,6 +353,18 @@ public:
outputPtr[idx++] = (center_x + _boxWidth / 2.) / _imageWidth;
// ymax
outputPtr[idx++] = (center_y + _boxHeight / 2.) / _imageHeight;
if(_additional_y_offset)
{
float center_y_offset_1 = (h + 1.0) * stepY;
// xmin
outputPtr[idx++] = (center_x - _boxWidth / 2.) / _imageWidth;
// ymin
outputPtr[idx++] = (center_y_offset_1 - _boxHeight / 2.) / _imageHeight;
// xmax
outputPtr[idx++] = (center_x + _boxWidth / 2.) / _imageWidth;
// ymax
outputPtr[idx++] = (center_y_offset_1 + _boxHeight / 2.) / _imageHeight;
}
}
}
}
@ -385,6 +431,7 @@ public:
bool _flip;
bool _clip;
bool _additional_y_offset;
size_t _numPriors;

Loading…
Cancel
Save