diff --git a/FAQ.md b/FAQ.md index 995df712fc330bcacd8e2206d9428ac60406341d..8650c2cd68a72946cc9273ba03a4471b3b04e1f3 100644 --- a/FAQ.md +++ b/FAQ.md @@ -2,3 +2,12 @@ **Q1. TensorFlow模型转换过程中,提示『Unknown shape for input tensor[tensor name: "input"], Please define shape of input here』?** A:该提示信息表示无法从TensorFlow的pb模型中获取到输入tensor(tensor名为"input:)的shape信息,所以需要用户手动在提示后输入详细的shape信息,如None,224,224,3 其中None表示Batch + + +**Q2. TensorFlow模型转换失败怎么解决?** +A: 如果并非是由缺少OP导致,那可能是由于TensorFlow模型转换时(NHWC->NCHW格式转换导致),在这种情况下,采用如下方式进行转换,同时固化输入大小的方式,继续尝试转换,见如下命令,转换过程中,根据提示,输入相应tensor的固化shape大小 +``` +x2paddle -f tensorflow -m tf.pb -s pd-model --without_data_format_optimization --define_input_shape +``` + +> 1. 目前Tensorflow的CV模型大部分均为`NHWC`的输入格式,而Paddle的默认输入格式为`NCHW`,因此X2Paddle在转换过程中,会对如`axis`, `shape`等参数进行转换,适应Paddle的NCHW格式。但在这种情况下,可能会由于TensorFlow模型太复杂,导致出错。 指定`--without_data_format_optimization`后,会停止对`axis`,`shape`等参数的优化(这可能会带来一定数量的transpose操作) diff --git a/README.md b/README.md index 228334c500f5a9ec6eab87dc3306cfa5a5c444d6..b81f2ce511d7ffe254eba24aeb07e6dd93f12e73 100644 --- a/README.md +++ b/README.md @@ -4,22 +4,38 @@ X2Paddle支持将其余深度学习框架训练得到的模型,转换至PaddlePaddle模型。 X2Paddle is a toolkit for converting trained model to PaddlePaddle from other deep learning frameworks. +## 转换模型库 +X2Paddle在多个主流的CV模型上,测试过TensorFlow/Caffe/ONNX模型的转换,可以在[X2Paddle-Model-Zoo](x2paddle_model_zoo.md)查看我们的模型测试列表。如果你在新的模型上进行了测试转换,也欢迎继续补充该列表;如若无法转换,可通过ISSUE反馈给我们,我们会尽快跟进。 + ## 环境依赖 python >= 3.5 paddlepaddle >= 1.5.0 -**以下依赖只需对应安装自己需要的即可** -转换tensorflow模型 : tensorflow == 1.14.0 -转换caffe模型 : caffe == 1.0.0 -转换onnx模型 : onnx == 1.5.0 pytorch == 1.1.0 +**按需安装以下依赖** +tensorflow : tensorflow == 1.14.0 +caffe : 无 +onnx : onnx == 1.5.0 pytorch == 1.1.0 + ## 安装 +### 安装方式一(推荐) +使用最新的代码版本,可使用如下方式进行安装 +``` +pip install git+https://github.com/PaddlePaddle/X2Paddle.git@develop +``` + +### 安装方式二 +我们会定期更新pip源上的x2paddle版本 ``` pip install x2paddle ``` -如果需要使用最新的代码版本,可使用如下方式进行安装 + +### 安装方式三 ``` -pip install git+https://github.com/PaddlePaddle/X2Paddle.git@develop +git clone https://github.com/PaddlePaddle/X2Paddle.git +cd X2Paddle +git checkout develop +python setup.py install ``` ## 使用方法 @@ -38,30 +54,42 @@ x2paddle --framework=onnx --model=onnx_model.onnx --save_dir=pd_model ### 参数选项 | 参数 | | |----------|--------------| -|--framework | 源模型类型 (tensorflow、caffe) | +|--framework | 源模型类型 (tensorflow、caffe、onnx) | |--prototxt | 当framework为caffe时,该参数指定caffe模型的proto文件路径 | |--weight | 当framework为caffe时,该参数指定caffe模型的参数文件路径 | |--save_dir | 指定转换后的模型保存目录路径 | -|--model | 当framework为tensorflow时,该参数指定tensorflow的pb模型文件路径 | -|--caffe_proto | [可选]由caffe.proto编译成caffe_pb2.py文件的存放路径,当没有安装caffe或者使用自定义Layer时使用,默认为None | +|--model | 当framework为tensorflow/onnx时,该参数指定tensorflow的pb模型文件或onnx模型路径 | +|--caffe_proto | **[可选]** 由caffe.proto编译成caffe_pb2.py文件的存放路径,当存在自定义Layer时使用,默认为None | +|--without_data_format_optimization | **[可选]** For TensorFlow, 当指定该参数时,关闭NHWC->NCHW的优化,见[文档Q2](FAQ.md) | +|--define_input_shape | **[可选]** For TensorFlow, 当指定该参数时,强制用户输入每个Placeholder的shape,见[文档Q2](FAQ.md) | + ## 使用转换后的模型 转换后的模型包括`model_with_code`和`inference_model`两个目录。 `model_with_code`中保存了模型参数,和转换后的python模型代码 `inference_model`中保存了序列化的模型结构和参数,可直接使用paddle的接口进行加载,见[load_inference_model](https://www.paddlepaddle.org.cn/documentation/docs/zh/1.5/api_guides/low_level/inference.html#api-guide-inference) +## 小工具 +X2Paddle提供了工具解决如下问题,详见[tools/README.md](tools/README.md) +1. 检测模型是否在PaddleLite中支持 +2. 合并模型参数文件 + ## 相关文档 1. [X2Paddle使用过程中常见问题](FAQ.md) 2. [如何导出TensorFlow的pb模型](export_tf_model.md) -3. [X2Paddle测试模型库](x2paddle_model_zoo.md) +3. [X2Paddle测试模型库](x2paddle_model_zoo.md) +4. [PyTorch模型导出为ONNX模型](pytorch_to_onnx.md) +5. [X2Paddle内置的Caffe自定义层](caffe_custom_layer.md) ## 更新历史 2019.08.05 -1. 统一tensorflow/caffe(onnx的代码即将release)模型转换代码和对外接口 +1. 统一tensorflow/caffe/onnx模型转换代码和对外接口 2. 解决上一版caffe2fluid无法转换多分支模型的问题 3. 解决Windows上保存模型无法加载的问题 4. 新增optimizer,优化代码结构,合并conv、batch_norm的bias和激活函数 -> X2Paddle 0.3及之前版本各子转换工具相互独立,在0.4版本,我们将tensorflow/caffe/onnx三个工具的代码整合,提供更易用的对外使用方式。用户可继续在[分支release-0.3](https://github.com/PaddlePaddle/X2Paddle/tree/release-0.3)中访问和使用之前的版本。 + +**如果你需要之前版本的tensorflow2fluid/caffe2fluid/onnx2fluid,可以继续访问release-0.3分支,获取之前版本的代码使用。** + ## Acknowledgements diff --git a/add_caffe_custom_layer.md b/add_caffe_custom_layer.md new file mode 100644 index 0000000000000000000000000000000000000000..15bf5057cefa1aea5b347f907d66028e1f331b0f --- /dev/null +++ b/add_caffe_custom_layer.md @@ -0,0 +1,78 @@ +## 如何转换Caffe自定义Layer + +本文档介绍如何将Caffe自定义Layer转换为PaddlePaddle模型中的对应实现, 用户可根据自己需要,添加代码实现自定义层,从而支持模型的完整转换。 +***步骤一 下载代码*** +此处涉及修改源码,应先卸载x2paddle,并且下载源码,主要有以下两步完成: +``` +pip uninstall x2paddle +pip install git+https://github.com/PaddlePaddle/X2Paddle.git@develop +``` + +***步骤二 编译caffe.proto*** +该步骤依赖protobuf编译器,其安装过程有以下两种方式: +> 选择一:pip install protobuf +> 选择二:使用[官方源码](https://github.com/protocolbuffers/protobuf)进行编译 + +使用脚本./tools/compile.sh将caffe.proto(包含所需的自定义Layer信息)编译成我们所需的目标语言(Python) +使用方式: +``` +bash ./toos/compile.sh /home/root/caffe/src/caffe/proto +# /home/root/caffe/src/caffe/proto为caffe.proto的存放路径,生成的caffe_pb2.py也将保存在该路径下 +``` + +***步骤三 添加自定义Layer的实现代码*** +- 进入./x2paddle/op_mapper/caffe_custom_layer,创建.py文件,例如mylayer.py +- 仿照./x2paddle/op_mapper/caffe_custom_layer中的其他文件,在mylayer.py中主要需要实现3个函数,下面以roipooling.py为例分析代码: + 1. `def roipooling_shape(input_shape, pooled_w=None, pooled_h=None)` + 参数: + 1. input_shape(list):其中每个元素代表该层每个输入数据的shape,为必须传入的参数 + 2. pooled_w(int):代表ROI Pooling的kernel的宽,其命名与.prototxt中roi_pooling_param中的key一致 + 3. pooled_h(int):代表ROI Pooling的kernel的高,其命名与.prototxt中roi_pooling_param中的key一致 + + 功能:计算出进行ROI Pooling后的shape + 返回:一个list,其中每个元素代表每个输出数据的shape,由于ROI Pooling的输出数据只有一个,所以其list长度为1 + + 2. `def roipooling_layer(inputs, input_shape=None, name=None, pooled_w=None, pooled_h=None, spatial_scale=None)` + + 参数: + 1. inputs(list):其中每个元素代表该层每个输入数据,为必须传入的参数 + 2. input_shape(list):其中每个元素代表该层每个输入数据的shape,为必须传入的参数 + 3. name(str):ROI Pooling层的名字,为必须传入的参数 + 4. pooled_w(int):代表ROI Pooling的kernel的宽,其命名与.prototxt中roi_pooling_param中的key一致 + 5. pooled_h(int):代表ROI Pooling的kernel的高,其命名与.prototxt中roi_pooling_param中的key一致 + 6. spatial_scale(float):用于将ROI坐标从输入比例转换为池化时使用的比例,其命名与.prototxt中roi_pooling_param中的key一致 + + 功能:运用PaddlePaddle完成组网来实现`roipooling_layer`的功能 + 返回:一个Variable,为组网后的结果 + + 3. `def roipooling_weights(name, data=None)` + + 参数: + 1. name(str):ROI Pooling层的名字,为必须传入的参数 + 2. data(list):由Caffe模型.caffemodel获得的关于roipooling的参数,roipooling的参数为None + + 功能:为每个参数(例如kernel、bias等)命名;同时,若Caffe中该层参数与PaddlePaddle中参数的格式不一致,则变换操作也在该函数中实现。 + 返回:一个list,包含每个参数的名字。 + +- 在roipooling.py中注册`roipooling`,主要运用下述代码实现: + ``` + register(kind='ROIPooling', shape=roipooling_shape, layer=roipooling_layer, weights=roipooling_weights) + # kind为在model.prototxt中roipooling的type + ``` +- 在./x2paddle/op_mapper/caffe_custom_layer/\_\_init\_\_.py中引入该层的使用 + ``` + from . import roipooling + ``` + + +***步骤四 运行转换代码*** +``` +# 在X2Paddle目录下安装x2paddle +python setup.py install +# 运行转换代码 +x2paddle --framework=caffe + --prototxt=deploy.proto + --weight=deploy.caffemodel + --save_dir=pd_model + --caffe_proto=/home/root/caffe/src/caffe/proto/caffe_pb2.py +``` diff --git a/caffe_custom_layer.md b/caffe_custom_layer.md new file mode 100644 index 0000000000000000000000000000000000000000..c1190fdbbaa4a241e1bfe1494a25a5a5b0104842 --- /dev/null +++ b/caffe_custom_layer.md @@ -0,0 +1,14 @@ +目前,代码中已经提供了8个非官方op(不在[官网](http://caffe.berkeleyvision.org/tutorial/layers)上的op)的转换,这些op对应的Caffe实现源码如下: + +| op | 该版本实现源码 | +|-------|--------| +| PriorBox | [code](https://github.com/weiliu89/caffe/blob/ssd/src/caffe/layers/prior_box_layer.cpp) | +| DetectionOutput | [code](https://github.com/weiliu89/caffe/blob/ssd/src/caffe/layers/detection_output_layer.cpp) | +| ConvolutionDepthwise | [code](https://github.com/farmingyard/caffe-mobilenet/blob/master/conv_dw_layer.cpp) | +| ShuffleChannel | [code](https://github.com/farmingyard/ShuffleNet/blob/master/shuffle_channel_layer.cpp) | +| Permute | [code](https://github.com/weiliu89/caffe/blob/ssd/src/caffe/layers/permute_layer.cpp) | +| Normalize | [code](https://github.com/weiliu89/caffe/blob/ssd/src/caffe/layers/normalize_layer.cpp) | +| ROIPooling | [code](https://github.com/rbgirshick/caffe-fast-rcnn/blob/0dcd397b29507b8314e252e850518c5695efbb83/src/caffe/layers/roi_pooling_layer.cpp) | +| Axpy | [code](https://github.com/hujie-frank/SENet/blob/master/src/caffe/layers/axpy_layer.cpp) | + + diff --git a/pytorch_to_onnx.md b/pytorch_to_onnx.md new file mode 100644 index 0000000000000000000000000000000000000000..cc75fd2d5c13c68c7cdb7db313f8774272e3d6eb --- /dev/null +++ b/pytorch_to_onnx.md @@ -0,0 +1,18 @@ +## PyTorch模型导出为ONNX模型 + +目前onnx2paddle主要支持onnx operator version 9。 用户可通过如下示例代码,将torchvison或者自己开发写的模型转换成onnx model: +``` +#coding: utf-8 +import torch +import torchvision + +# 指定输入大小的shape +dummy_input = torch.randn(1, 3, 224, 224) + +# 构建pytorch model,并载入模型参数 +resnet18 = torchvision.models.resnet18(pretrained=True) + +# 导出resnet18.onnx模型文件 +torch.onnx.export(resnet18, dummy_input, "resnet18.onnx",verbose=True) + +``` diff --git a/tools/README.md b/tools/README.md new file mode 100644 index 0000000000000000000000000000000000000000..bdd26d3659246780b3dc9cf52fab1f54fa38a55c --- /dev/null +++ b/tools/README.md @@ -0,0 +1,18 @@ +### 一、PaddleLite部署 +使用X2Paddle转换后的模型均可以使用Paddle Fluid进行预测。但对于PaddleLite上的部署,则需要检查模型中的OP是否都在PaddleLite中支持。使用`check_for_lite.py`可以进行检查。 + +``` +python tools/check_for_lite.py paddle_model/inference_model/__model__ +``` + + +### 二、模型参数合并 +X2Paddle转换后产出的路径下包括两个目录, +1. `model_with_code`: 包含保存的参数文件和模型python代码文件,供用户debug +2. `inference_model`: 参数文件和序列化的模型结构文件,供用户预测部署 + +其中在`inference_model`中,X2Paddle将每个参数独立保存在不同的文件中(文件名和参数名一致),用户可使用`merge_params.py`将参数文件合并成一个文件使用 +``` +python tools/merge_params.py paddle_model/inference_model new_model_dir +``` +合并参数后的模型保存在`new_model_dir`中 diff --git a/tools/check_for_lite.py b/tools/check_for_lite.py new file mode 100644 index 0000000000000000000000000000000000000000..94581b20ccdd43fd4f5b39c7210b3a74b2e273d1 --- /dev/null +++ b/tools/check_for_lite.py @@ -0,0 +1,35 @@ +import urllib +import sys +from paddle.fluid.framework import Program + +ops_h = "https://raw.githubusercontent.com/PaddlePaddle/Paddle-Lite/develop/lite/api/_paddle_use_ops.h" +try: + fetch = urllib.urlretrieve(ops_h, "./_paddle_use_ops.h") +except: + fetch = urllib.request.urlretrieve(ops_h, "./_paddle_use_ops.h") + +ops = list() +with open("./_paddle_use_ops.h") as f: + for line in f: + if "USE_LITE_OP" in line: + op = line.strip().split('(')[1].split(')')[0] + ops.append(op) + +model_file = sys.argv[1] +with open(model_file, 'rb') as f: + program = Program.parse_from_string(f.read()) + +unsupported_ops = set() +for op in program.blocks[0].ops: + if op.type not in ops: + unsupported_ops.add(op.type) + +nums = len(unsupported_ops) +if len(unsupported_ops) > 0: + print("========= {} OPs are not supported in Paddle-Lite=========".format( + nums)) + for op in unsupported_ops: + print("========= {} ========".format(op)) +else: + print("\n========== Good News! ========") + print("Good! All ops in this model are supported in Paddle-Lite!\n") diff --git a/tools/compile.sh b/tools/compile.sh new file mode 100644 index 0000000000000000000000000000000000000000..2d31521baa44450eaefb21791998177adf2f1342 --- /dev/null +++ b/tools/compile.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +#function: +# script used to generate caffe_pb2.py from caffe.proto using protoc +# + +PROTOC=`which protoc` +if [[ -z $PROTOC ]];then + echo "not found protoc, you should first install it following this[https://github.com/google/protobuf/releases]" + exit 1 +fi + +WORK_ROOT=$1 +PY_NAME="$WORK_ROOT/caffe_pb2.py" +$PROTOC --proto_path=$WORK_ROOT --python_out=$WORK_ROOT $WORK_ROOT/caffe.proto +ret=$? + +if [ -e "$PY_NAME" ];then + echo "succeed to generate [$PY_NAME]" + exit 0 +else + echo "failed to generate [$PY_NAME]" +fi +exit $ret diff --git a/tools/merge_params.py b/tools/merge_params.py new file mode 100644 index 0000000000000000000000000000000000000000..e6a8a3d2a1d338cf64ceac9a9b1983d180334a58 --- /dev/null +++ b/tools/merge_params.py @@ -0,0 +1,16 @@ +import paddle.fluid as fluid +import sys + +model_dir = sys.argv[1] +new_model_dir = sys.argv[2] +exe = fluid.Executor(fluid.CPUPlace()) +[inference_program, feed_target_names, + fetch_targets] = fluid.io.load_inference_model(dirname=model_dir, executor=exe) + +print(feed_target_names) +fluid.io.save_inference_model(dirname=new_model_dir, + feeded_var_names=feed_target_names, + target_vars=fetch_targets, + executor=exe, + main_program=inference_program, + params_filename="__params__") diff --git a/x2paddle/__init__.py b/x2paddle/__init__.py index 3d26edf777ed646f93a5251a6de0c443c106c694..98a433b31058a4c8166312666d91533a8e53e50a 100644 --- a/x2paddle/__init__.py +++ b/x2paddle/__init__.py @@ -1 +1 @@ -__version__ = "0.4.1" +__version__ = "0.4.5" diff --git a/x2paddle/convert.py b/x2paddle/convert.py index f1b1b12d677474d3f0d8fe8fb7560603bf1801ee..b21e8d8050b99a171a98c45844d6ae89823a9a88 100644 --- a/x2paddle/convert.py +++ b/x2paddle/convert.py @@ -23,7 +23,7 @@ def arg_parser(): "-m", type=_text_type, default=None, - help="model file path") + help="define model file path for tensorflow or onnx") parser.add_argument("--prototxt", "-p", type=_text_type, @@ -39,29 +39,47 @@ def arg_parser(): type=_text_type, default=None, help="path to save translated model") - parser.add_argument("--framework", - "-f", - type=_text_type, - default=None, - help="define which deeplearning framework") + parser.add_argument( + "--framework", + "-f", + type=_text_type, + default=None, + help="define which deeplearning framework(tensorflow/caffe/onnx)") parser.add_argument( "--caffe_proto", "-c", type=_text_type, default=None, - help="the .py file compiled by caffe proto file of caffe model") + help="optional: the .py file compiled by caffe proto file of caffe model" + ) parser.add_argument("--version", "-v", action="store_true", default=False, help="get version of x2paddle") + parser.add_argument( + "--without_data_format_optimization", + "-wo", + action="store_true", + default=False, + help="tf model conversion without data format optimization") + parser.add_argument("--define_input_shape", + "-d", + action="store_true", + default=False, + help="define input shape for tf model") return parser -def tf2paddle(model_path, save_dir): +def tf2paddle(model_path, + save_dir, + without_data_format_optimization=False, + define_input_shape=False): # check tensorflow installation and version try: + import os + os.environ["TF_CPP_MIN_LOG_LEVEL"] = '3' import tensorflow as tf version = tf.__version__ if version >= '2.0.0' or version < '1.0.0': @@ -75,27 +93,47 @@ def tf2paddle(model_path, save_dir): from x2paddle.decoder.tf_decoder import TFDecoder from x2paddle.op_mapper.tf_op_mapper import TFOpMapper + from x2paddle.op_mapper.tf_op_mapper_nhwc import TFOpMapperNHWC from x2paddle.optimizer.tf_optimizer import TFOptimizer print("Now translating model from tensorflow to paddle.") - model = TFDecoder(model_path) - mapper = TFOpMapper(model) - optimizer = TFOptimizer(mapper) - # neccesary optimization - optimizer.delete_redundance_code() - # optimizer below is experimental - optimizer.merge_activation() - optimizer.merge_bias() + model = TFDecoder(model_path, define_input_shape=define_input_shape) + if not without_data_format_optimization: + mapper = TFOpMapper(model) + optimizer = TFOptimizer(mapper) + # neccesary optimization + optimizer.delete_redundance_code() + # optimizer below is experimental + optimizer.merge_activation() + optimizer.merge_bias() + optimizer.merge_batch_norm() + optimizer.merge_prelu() + else: + mapper = TFOpMapperNHWC(model) + optimizer = TFOptimizer(mapper) + optimizer.delete_redundance_code() + optimizer.strip_graph() + optimizer.merge_activation() + optimizer.merge_bias() + optimizer.make_nchw_input_output() + optimizer.remove_transpose() mapper.save_inference_model(save_dir) def caffe2paddle(proto, weight, save_dir, caffe_proto): from x2paddle.decoder.caffe_decoder import CaffeDecoder from x2paddle.op_mapper.caffe_op_mapper import CaffeOpMapper - + from x2paddle.optimizer.caffe_optimizer import CaffeOptimizer + import google.protobuf as gpb + ver_str = gpb.__version__.replace('.', '') + ver_int = int(ver_str[0:2]) + assert ver_int >= 36, 'The version of protobuf must be larger than 3.6.0!' print("Now translating model from caffe to paddle.") model = CaffeDecoder(proto, weight, caffe_proto) mapper = CaffeOpMapper(model) + optimizer = CaffeOptimizer(mapper) + optimizer.merge_bn_scale() + optimizer.merge_op_activation() mapper.save_inference_model(save_dir) @@ -139,13 +177,17 @@ def onnx2paddle(model_path, save_dir): def main(): if len(sys.argv) < 2: print("Use \"x2paddle -h\" to print the help information") + print("For more information, please follow our github repo below:)") + print("\nGithub: https://github.com/PaddlePaddle/X2Paddle.git\n") return parser = arg_parser() args = parser.parse_args() if args.version: - print("x2paddle-{} with python>=3.5\n".format(x2paddle.__version__)) + import x2paddle + print("x2paddle-{} with python>=3.5, paddlepaddle>=1.5.0\n".format( + x2paddle.__version__)) return try: @@ -156,12 +198,19 @@ def main(): return except: print("paddlepaddle not installed, use \"pip install paddlepaddle\"") - assert args.framework is not None, "--from is not defined(tensorflow/caffe)" + assert args.framework is not None, "--framework is not defined(support tensorflow/caffe/onnx)" assert args.save_dir is not None, "--save_dir is not defined" if args.framework == "tensorflow": assert args.model is not None, "--model should be defined while translating tensorflow model" - tf2paddle(args.model, args.save_dir) + without_data_format_optimization = False + define_input_shape = False + if args.without_data_format_optimization: + without_data_format_optimization = True + if args.define_input_shape: + define_input_shape = True + tf2paddle(args.model, args.save_dir, without_data_format_optimization, + define_input_shape) elif args.framework == "caffe": assert args.prototxt is not None and args.weight is not None, "--prototxt and --weight should be defined while translating caffe model" diff --git a/x2paddle/core/fluid_code.py b/x2paddle/core/fluid_code.py index f77d88e2eff3115198e8da6c61e622050e2689b8..42b51f117143cd7a3f7b3a579d2ba6c4e2f33a74 100644 --- a/x2paddle/core/fluid_code.py +++ b/x2paddle/core/fluid_code.py @@ -14,6 +14,7 @@ from x2paddle.core.graph import GraphNode import collections +from x2paddle.core.util import * class Layer(object): @@ -63,11 +64,8 @@ class Layer(object): else: layer_code = layer_code + key + "={}, ".format( input.layer_name) - elif isinstance(input, str): - layer_code = layer_code + key + "={}, ".format(input) else: - raise Exception( - "Element of inputs should GraphNode or String") + layer_code = layer_code + key + "={}, ".format(input) elif isinstance(self.inputs, GraphNode): if hasattr(self.inputs, "index"): layer_code += (self.inputs.layer_name + @@ -81,6 +79,8 @@ class Layer(object): param_attr = collections.OrderedDict(self.param_attr) for key, value in param_attr.items(): + if '\n' in str(value): + value = string(str(value).replace('\n', ',')) layer_code = layer_code + key + "={}, ".format(value) layer_code = layer_code.strip(", ") diff --git a/x2paddle/core/graph.py b/x2paddle/core/graph.py index 0d7eb76b2833ffed6b3f16bd58c1d3531d4cbdc9..3165dcd1d9ea26ff39408c3628de8ba982c4657b 100644 --- a/x2paddle/core/graph.py +++ b/x2paddle/core/graph.py @@ -85,7 +85,7 @@ class Graph(object): node.index = int(idx) return node else: - raise Exception("Graph doesn't have node [%s]." % name) + return None else: if copy: node = cp.copy(self.node_map[name]) diff --git a/x2paddle/core/op_mapper.py b/x2paddle/core/op_mapper.py index dacf4dd37c9411fb3d48888c9ea22ecd25e86956..a8024b1e7ea8f785b8ea87b83a2edef4476287ff 100644 --- a/x2paddle/core/op_mapper.py +++ b/x2paddle/core/op_mapper.py @@ -97,6 +97,11 @@ class OpMapper(object): import model try: inputs, outputs = model.x2paddle_net() + for i, out in enumerate(outputs): + if isinstance(out, list): + for out_part in out: + outputs.append(out_part) + del outputs[i] input_names = [input.name for input in inputs] exe = fluid.Executor(fluid.CPUPlace()) exe.run(fluid.default_startup_program()) @@ -143,6 +148,8 @@ class OpMapper(object): for i in range(len(self.graph.topo_sort)): node_name = self.graph.topo_sort[i] node = self.graph.get_node(node_name) + if node is None: + continue if len(node.fluid_code.layers) == 0: continue self.add_codes(node.fluid_code.gen_codes(), 1) diff --git a/x2paddle/core/util.py b/x2paddle/core/util.py index 54524b8fd5e8e678c80982abb59398241bfc0f70..faafe83288b00938bf0b1b39d8f079111a4e6545 100644 --- a/x2paddle/core/util.py +++ b/x2paddle/core/util.py @@ -26,6 +26,11 @@ def string(param): def run_net(param_dir="./"): import os inputs, outputs = x2paddle_net() + for i, out in enumerate(outputs): + if isinstance(out, list): + for out_part in out: + outputs.append(out_part) + del outputs[i] exe = fluid.Executor(fluid.CPUPlace()) exe.run(fluid.default_startup_program()) diff --git a/x2paddle/decoder/caffe_decoder.py b/x2paddle/decoder/caffe_decoder.py index e4bd86c4833944ea325868f5770b61e836b90843..9573d10409064245fe33338d5ac8394604487ae1 100644 --- a/x2paddle/decoder/caffe_decoder.py +++ b/x2paddle/decoder/caffe_decoder.py @@ -47,7 +47,7 @@ class CaffeResolver(object): class CaffeGraphNode(GraphNode): - def __init__(self, layer, layer_name=None): + def __init__(self, layer, type_str, layer_name=None): if layer_name is None: super(CaffeGraphNode, self).__init__(layer, @@ -56,28 +56,18 @@ class CaffeGraphNode(GraphNode): super(CaffeGraphNode, self).__init__(layer, layer_name.replace('/', '_').replace('-', '_')) - self.layer_type = layer.type + self.layer_type = type_str self.fluid_code = FluidCode() self.data = None def set_params(self, params): self.data = params - def set_output_shape(self, input_shape, is_input=True): - func_name = 'shape_' + self.layer_type.lower() - if is_input: - self.output_shape = getattr(caffe_shape, func_name)(self.layer, - input_shape) - else: - self.output_shape = input_shape - - def set_input_shape(self, input_shape): - self.input_shape = input_shape - class CaffeGraph(Graph): - def __init__(self, model, params): + def __init__(self, model, params, caffe_pb): self.params = params + self.caffe_pb = caffe_pb super(CaffeGraph, self).__init__(model) def filter_layers(self, layers): @@ -86,6 +76,9 @@ class CaffeGraph(Graph): filtered_layer_names = set() filtered_layers = [] for layer in layers: + if hasattr(layer, 'input'): + continue + type_str = self.get_layer_type(layer) phase = 'test' if len(layer.include): phase = phase_map[layer.include[0].phase] @@ -96,7 +89,7 @@ class CaffeGraph(Graph): # test-time networks. These are just ignored. We'll # filter them out here. if (not exclude) and (phase == 'test'): - exclude = (layer.type == 'Dropout') + exclude = (type_str == 'Dropout') if not exclude: filtered_layers.append(layer) # Guard against dupes. @@ -106,13 +99,85 @@ class CaffeGraph(Graph): print('The filter layer:' + layer.name) return filtered_layers + def generate_input_layer(self, dims, index): + dim_str = '' + for dim in dims: + dim_str += 'dim: {}\n'.format(str(dim)) + input_str = 'layer {\n' + input_str += 'name: \"{}\"\n '.format(str(self.model.input[index])) + input_str += 'type: "Input"\n' + input_str += 'top: \"{}\"\n'.format(str(self.model.input[index])) + input_str += 'input_param {\n' + input_str += 'shape {\n' + input_str += dim_str + input_str += '}}}' + input_str = str.encode(input_str) + net = self.caffe_pb.NetParameter() + text_format.Merge(input_str, net) + return net.layers or net.layer + + def input2layers(self, input_layers=[]): + inputs_num = len(self.model.input) + if inputs_num != 0: + input_dims_num = len(self.model.input_dim) + if input_dims_num != 0: + if input_dims_num > 0 and input_dims_num != inputs_num * 4: + raise Error('invalid input_dim[%d] param in prototxt' % + (input_dims_num)) + for i in range(inputs_num): + dims = self.model.input_dim[i * 4:(i + 1) * 4] + l = self.generate_input_layer(dims, i) + input_layers.append(l[0]) + else: + for i in range(inputs_num): + dims = self.model.input_shape[i].dim[0:4] + l = self.generate_input_layer(dims, i) + input_layers.append(l[0]) + + def transform_input_layers(self, layers, input_layers=[]): + for layer in layers: + if hasattr(layer, 'input'): + input_dims_num = len(layers.input_dim) + if input_dims_num > 0 and input_dims_num != 4: + raise Error('invalid input_dim[%d] param in prototxt' % + (input_dims_num)) + dims = self.model.input_dim[0:4] + l = self.generate_input_layer(dims, i) + input_layers.append(l[0]) + + def get_layer_type(self, layer): + if isinstance(layer.type, int): + enum_values = self.caffe_pb._V1LAYERPARAMETER_LAYERTYPE.values + vals = [val for val in enum_values if val.number == layer.type] + part = vals[0].name.split('_') + part = [s.capitalize() for s in part] + type_str = '' + type_str = type_str.join(part) + if 'relu' in type_str.lower(): + type_str = type_str.replace('elu', 'eLU') + elif type_str.lower() == 'lrn': + type_str = 'LRN' + return type_str + else: + return layer.type + def build(self): layers = self.model.layers or self.model.layer + layers = self.filter_layers(layers) + input_layers = [] + + self.input2layers(input_layers) + self.transform_input_layers(layers, input_layers) + layers = input_layers + layers + top_layer = {} for layer in layers: - self.node_map[layer.name] = CaffeGraphNode(layer) + if hasattr(layer, 'input'): + continue + type_str = self.get_layer_type(layer) + self.node_map[layer.name] = CaffeGraphNode(layer, type_str) for in_name in layer.bottom: if in_name in top_layer: self.connect(top_layer[in_name][-1], layer.name) @@ -125,7 +190,6 @@ class CaffeGraph(Graph): top_layer[out_name] = [layer.name] else: top_layer[out_name].append(layer.name) - for layer_name, data in self.params: if layer_name in self.node_map: node = self.node_map[layer_name] @@ -157,19 +221,26 @@ class CaffeDecoder(object): self.resolver = CaffeResolver(caffe_proto=caffe_proto) self.net = self.resolver.NetParameter() with open(proto_path, 'rb') as proto_file: - proto_str = self.old2new(proto_file) + proto_str = proto_file.read() text_format.Merge(proto_str, self.net) self.load_using_pb() - self.caffe_graph = CaffeGraph(self.net, self.params) + + self.caffe_graph = CaffeGraph(self.net, self.params, + self.resolver.caffepb) self.caffe_graph.build() def load_using_pb(self): data = self.resolver.NetParameter() + data.MergeFromString(open(self.model_path, 'rb').read()) pair = lambda layer: (layer.name, self.normalize_pb_data(layer)) layers = data.layers or data.layer + import time + start = time.time() self.params = [pair(layer) for layer in layers if layer.blobs] + end = time.time() + print('cost:', str(end - start)) def normalize_pb_data(self, layer): transformed = [] @@ -182,72 +253,8 @@ class CaffeDecoder(object): c_i = blob.channels h = blob.height w = blob.width - data = np.array(blob.data, dtype=np.float32).reshape(c_o, c_i, h, w) + data = np.asarray(list(blob.data), + dtype=np.float32).reshape(c_o, c_i, h, w) + transformed.append(data) return transformed - - def old2new(self, proto_file): - part1_str = '' - part2_str = '' - part3_str = '' - is_input = False - dims = [] - line = proto_file.readline() - print('Check if it is a new style of caffe...') - while line: - l_str = bytes.decode(line) - if l_str.replace(' ', '').startswith('input:'): - part2_str += 'layer {\n' - part2_str += ( - ' name: ' + - l_str.strip().replace(' ', '').split('input:')[-1] + '\n') - part2_str += ' type: \"Input\"\n' - part2_str += ( - ' top: ' + - l_str.strip().replace(' ', '').split('input:')[-1] + '\n') - is_input = True - line = proto_file.readline() - continue - elif l_str.replace(' ', '').startswith('input_dim:'): - dims.append( - int(l_str.strip().replace(' ', '').split('input_dim:')[-1])) - if len(dims) == 4: - part2_str += ' input_param { shape: { dim: ' + str(dims[0]) + \ - ' dim: ' + str(dims[1]) + \ - ' dim: ' + str(dims[2]) + \ - ' dim: ' + str(dims[3]) + ' } }\n' - dims = [] - part2_str += '}\n' - line = proto_file.readline() - if bytes.decode(line).replace(' ', '').startswith('}'): - line = proto_file.readline() - continue - elif l_str.replace(' ', '').startswith('input_shape'): - part2_str += l_str.replace('input_shape', - 'input_param { shape: ') - l_str = bytes.decode(proto_file.readline()) - while l_str: - if '}' in l_str: - part2_str += l_str + '\n}\n}' - break - else: - part2_str += l_str - l_str = bytes.decode(proto_file.readline()) - line = proto_file.readline() - continue - if not is_input: - part1_str += bytes.decode(line) - else: - part3_str += bytes.decode(line) - line = proto_file.readline() - out = part1_str + part2_str + part3_str - layer_str = 'layer{' - part = out.split(layer_str) - if len(part) == 1: - layer_str = 'layer {' - part = out.split(layer_str) - for i in range(len(part)): - if part[i].strip().replace(' ', '') == '' or part[i].count(':') > 1: - continue - out = out.replace(layer_str + part[i], part[i].replace(' ', '')) - return str.encode(out) diff --git a/x2paddle/decoder/caffe_pb2.py b/x2paddle/decoder/caffe_pb2.py index ede75ec795883f256dcbde0675fd5cd4fa769ae1..d640206c86f3f2ae24ff94d5a204f5a11a830b8f 100644 --- a/x2paddle/decoder/caffe_pb2.py +++ b/x2paddle/decoder/caffe_pb2.py @@ -2,7 +2,7 @@ # source: caffe.proto import sys -_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode('latin1')) +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) from google.protobuf.internal import enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message @@ -12,36 +12,36 @@ from google.protobuf import symbol_database as _symbol_database _sym_db = _symbol_database.Default() + + + DESCRIPTOR = _descriptor.FileDescriptor( - name='caffe.proto', - package='caffe', - syntax='proto2', - serialized_options=None, - serialized_pb=_b( - '\n\x0b\x63\x61\x66\x66\x65.proto\x12\x05\x63\x61\x66\x66\x65\"\x1c\n\tBlobShape\x12\x0f\n\x03\x64im\x18\x01 \x03(\x03\x42\x02\x10\x01\"\xcc\x01\n\tBlobProto\x12\x1f\n\x05shape\x18\x07 \x01(\x0b\x32\x10.caffe.BlobShape\x12\x10\n\x04\x64\x61ta\x18\x05 \x03(\x02\x42\x02\x10\x01\x12\x10\n\x04\x64iff\x18\x06 \x03(\x02\x42\x02\x10\x01\x12\x17\n\x0b\x64ouble_data\x18\x08 \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0b\x64ouble_diff\x18\t \x03(\x01\x42\x02\x10\x01\x12\x0e\n\x03num\x18\x01 \x01(\x05:\x01\x30\x12\x13\n\x08\x63hannels\x18\x02 \x01(\x05:\x01\x30\x12\x11\n\x06height\x18\x03 \x01(\x05:\x01\x30\x12\x10\n\x05width\x18\x04 \x01(\x05:\x01\x30\"2\n\x0f\x42lobProtoVector\x12\x1f\n\x05\x62lobs\x18\x01 \x03(\x0b\x32\x10.caffe.BlobProto\"\x81\x01\n\x05\x44\x61tum\x12\x10\n\x08\x63hannels\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\r\n\x05label\x18\x05 \x01(\x05\x12\x12\n\nfloat_data\x18\x06 \x03(\x02\x12\x16\n\x07\x65ncoded\x18\x07 \x01(\x08:\x05\x66\x61lse\"\x8a\x02\n\x0f\x46illerParameter\x12\x16\n\x04type\x18\x01 \x01(\t:\x08\x63onstant\x12\x10\n\x05value\x18\x02 \x01(\x02:\x01\x30\x12\x0e\n\x03min\x18\x03 \x01(\x02:\x01\x30\x12\x0e\n\x03max\x18\x04 \x01(\x02:\x01\x31\x12\x0f\n\x04mean\x18\x05 \x01(\x02:\x01\x30\x12\x0e\n\x03std\x18\x06 \x01(\x02:\x01\x31\x12\x12\n\x06sparse\x18\x07 \x01(\x05:\x02-1\x12\x42\n\rvariance_norm\x18\x08 \x01(\x0e\x32#.caffe.FillerParameter.VarianceNorm:\x06\x46\x41N_IN\"4\n\x0cVarianceNorm\x12\n\n\x06\x46\x41N_IN\x10\x00\x12\x0b\n\x07\x46\x41N_OUT\x10\x01\x12\x0b\n\x07\x41VERAGE\x10\x02\"\x8e\x02\n\x0cNetParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05input\x18\x03 \x03(\t\x12%\n\x0binput_shape\x18\x08 \x03(\x0b\x32\x10.caffe.BlobShape\x12\x11\n\tinput_dim\x18\x04 \x03(\x05\x12\x1d\n\x0e\x66orce_backward\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x05state\x18\x06 \x01(\x0b\x32\x0f.caffe.NetState\x12\x19\n\ndebug_info\x18\x07 \x01(\x08:\x05\x66\x61lse\x12$\n\x05layer\x18\x64 \x03(\x0b\x32\x15.caffe.LayerParameter\x12\'\n\x06layers\x18\x02 \x03(\x0b\x32\x17.caffe.V1LayerParameter\"\xd4\n\n\x0fSolverParameter\x12\x0b\n\x03net\x18\x18 \x01(\t\x12&\n\tnet_param\x18\x19 \x01(\x0b\x32\x13.caffe.NetParameter\x12\x11\n\ttrain_net\x18\x01 \x01(\t\x12\x10\n\x08test_net\x18\x02 \x03(\t\x12,\n\x0ftrain_net_param\x18\x15 \x01(\x0b\x32\x13.caffe.NetParameter\x12+\n\x0etest_net_param\x18\x16 \x03(\x0b\x32\x13.caffe.NetParameter\x12$\n\x0btrain_state\x18\x1a \x01(\x0b\x32\x0f.caffe.NetState\x12#\n\ntest_state\x18\x1b \x03(\x0b\x32\x0f.caffe.NetState\x12\x11\n\ttest_iter\x18\x03 \x03(\x05\x12\x18\n\rtest_interval\x18\x04 \x01(\x05:\x01\x30\x12 \n\x11test_compute_loss\x18\x13 \x01(\x08:\x05\x66\x61lse\x12!\n\x13test_initialization\x18 \x01(\x08:\x04true\x12\x0f\n\x07\x62\x61se_lr\x18\x05 \x01(\x02\x12\x0f\n\x07\x64isplay\x18\x06 \x01(\x05\x12\x17\n\x0c\x61verage_loss\x18! \x01(\x05:\x01\x31\x12\x10\n\x08max_iter\x18\x07 \x01(\x05\x12\x14\n\titer_size\x18$ \x01(\x05:\x01\x31\x12\x11\n\tlr_policy\x18\x08 \x01(\t\x12\r\n\x05gamma\x18\t \x01(\x02\x12\r\n\x05power\x18\n \x01(\x02\x12\x10\n\x08momentum\x18\x0b \x01(\x02\x12\x14\n\x0cweight_decay\x18\x0c \x01(\x02\x12\x1f\n\x13regularization_type\x18\x1d \x01(\t:\x02L2\x12\x10\n\x08stepsize\x18\r \x01(\x05\x12\x11\n\tstepvalue\x18\" \x03(\x05\x12\x1a\n\x0e\x63lip_gradients\x18# \x01(\x02:\x02-1\x12\x13\n\x08snapshot\x18\x0e \x01(\x05:\x01\x30\x12\x17\n\x0fsnapshot_prefix\x18\x0f \x01(\t\x12\x1c\n\rsnapshot_diff\x18\x10 \x01(\x08:\x05\x66\x61lse\x12K\n\x0fsnapshot_format\x18% \x01(\x0e\x32%.caffe.SolverParameter.SnapshotFormat:\x0b\x42INARYPROTO\x12;\n\x0bsolver_mode\x18\x11 \x01(\x0e\x32!.caffe.SolverParameter.SolverMode:\x03GPU\x12\x14\n\tdevice_id\x18\x12 \x01(\x05:\x01\x30\x12\x17\n\x0brandom_seed\x18\x14 \x01(\x03:\x02-1\x12\x11\n\x04type\x18( \x01(\t:\x03SGD\x12\x14\n\x05\x64\x65lta\x18\x1f \x01(\x02:\x05\x31\x65-08\x12\x18\n\tmomentum2\x18\' \x01(\x02:\x05\x30.999\x12\x17\n\trms_decay\x18& \x01(\x02:\x04\x30.99\x12\x19\n\ndebug_info\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\"\n\x14snapshot_after_train\x18\x1c \x01(\x08:\x04true\x12;\n\x0bsolver_type\x18\x1e \x01(\x0e\x32!.caffe.SolverParameter.SolverType:\x03SGD\x12\x1f\n\x11layer_wise_reduce\x18) \x01(\x08:\x04true\x12\x0f\n\x07weights\x18* \x03(\t\"+\n\x0eSnapshotFormat\x12\x08\n\x04HDF5\x10\x00\x12\x0f\n\x0b\x42INARYPROTO\x10\x01\"\x1e\n\nSolverMode\x12\x07\n\x03\x43PU\x10\x00\x12\x07\n\x03GPU\x10\x01\"U\n\nSolverType\x12\x07\n\x03SGD\x10\x00\x12\x0c\n\x08NESTEROV\x10\x01\x12\x0b\n\x07\x41\x44\x41GRAD\x10\x02\x12\x0b\n\x07RMSPROP\x10\x03\x12\x0c\n\x08\x41\x44\x41\x44\x45LTA\x10\x04\x12\x08\n\x04\x41\x44\x41M\x10\x05\"l\n\x0bSolverState\x12\x0c\n\x04iter\x18\x01 \x01(\x05\x12\x13\n\x0blearned_net\x18\x02 \x01(\t\x12!\n\x07history\x18\x03 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x17\n\x0c\x63urrent_step\x18\x04 \x01(\x05:\x01\x30\"N\n\x08NetState\x12!\n\x05phase\x18\x01 \x01(\x0e\x32\x0c.caffe.Phase:\x04TEST\x12\x10\n\x05level\x18\x02 \x01(\x05:\x01\x30\x12\r\n\x05stage\x18\x03 \x03(\t\"s\n\x0cNetStateRule\x12\x1b\n\x05phase\x18\x01 \x01(\x0e\x32\x0c.caffe.Phase\x12\x11\n\tmin_level\x18\x02 \x01(\x05\x12\x11\n\tmax_level\x18\x03 \x01(\x05\x12\r\n\x05stage\x18\x04 \x03(\t\x12\x11\n\tnot_stage\x18\x05 \x03(\t\"\xa3\x01\n\tParamSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\nshare_mode\x18\x02 \x01(\x0e\x32\x1d.caffe.ParamSpec.DimCheckMode\x12\x12\n\x07lr_mult\x18\x03 \x01(\x02:\x01\x31\x12\x15\n\ndecay_mult\x18\x04 \x01(\x02:\x01\x31\"*\n\x0c\x44imCheckMode\x12\n\n\x06STRICT\x10\x00\x12\x0e\n\nPERMISSIVE\x10\x01\"\x9a\x15\n\x0eLayerParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06\x62ottom\x18\x03 \x03(\t\x12\x0b\n\x03top\x18\x04 \x03(\t\x12\x1b\n\x05phase\x18\n \x01(\x0e\x32\x0c.caffe.Phase\x12\x13\n\x0bloss_weight\x18\x05 \x03(\x02\x12\x1f\n\x05param\x18\x06 \x03(\x0b\x32\x10.caffe.ParamSpec\x12\x1f\n\x05\x62lobs\x18\x07 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x16\n\x0epropagate_down\x18\x0b \x03(\x08\x12$\n\x07include\x18\x08 \x03(\x0b\x32\x13.caffe.NetStateRule\x12$\n\x07\x65xclude\x18\t \x03(\x0b\x32\x13.caffe.NetStateRule\x12\x37\n\x0ftransform_param\x18\x64 \x01(\x0b\x32\x1e.caffe.TransformationParameter\x12(\n\nloss_param\x18\x65 \x01(\x0b\x32\x14.caffe.LossParameter\x12\x30\n\x0e\x61\x63\x63uracy_param\x18\x66 \x01(\x0b\x32\x18.caffe.AccuracyParameter\x12,\n\x0c\x61rgmax_param\x18g \x01(\x0b\x32\x16.caffe.ArgMaxParameter\x12\x34\n\x10\x62\x61tch_norm_param\x18\x8b\x01 \x01(\x0b\x32\x19.caffe.BatchNormParameter\x12)\n\nbias_param\x18\x8d\x01 \x01(\x0b\x32\x14.caffe.BiasParameter\x12)\n\nclip_param\x18\x94\x01 \x01(\x0b\x32\x14.caffe.ClipParameter\x12,\n\x0c\x63oncat_param\x18h \x01(\x0b\x32\x16.caffe.ConcatParameter\x12?\n\x16\x63ontrastive_loss_param\x18i \x01(\x0b\x32\x1f.caffe.ContrastiveLossParameter\x12\x36\n\x11\x63onvolution_param\x18j \x01(\x0b\x32\x1b.caffe.ConvolutionParameter\x12)\n\ncrop_param\x18\x90\x01 \x01(\x0b\x32\x14.caffe.CropParameter\x12(\n\ndata_param\x18k \x01(\x0b\x32\x14.caffe.DataParameter\x12.\n\rdropout_param\x18l \x01(\x0b\x32\x17.caffe.DropoutParameter\x12\x33\n\x10\x64ummy_data_param\x18m \x01(\x0b\x32\x19.caffe.DummyDataParameter\x12.\n\reltwise_param\x18n \x01(\x0b\x32\x17.caffe.EltwiseParameter\x12\'\n\telu_param\x18\x8c\x01 \x01(\x0b\x32\x13.caffe.ELUParameter\x12+\n\x0b\x65mbed_param\x18\x89\x01 \x01(\x0b\x32\x15.caffe.EmbedParameter\x12&\n\texp_param\x18o \x01(\x0b\x32\x13.caffe.ExpParameter\x12/\n\rflatten_param\x18\x87\x01 \x01(\x0b\x32\x17.caffe.FlattenParameter\x12\x31\n\x0fhdf5_data_param\x18p \x01(\x0b\x32\x18.caffe.HDF5DataParameter\x12\x35\n\x11hdf5_output_param\x18q \x01(\x0b\x32\x1a.caffe.HDF5OutputParameter\x12\x33\n\x10hinge_loss_param\x18r \x01(\x0b\x32\x19.caffe.HingeLossParameter\x12\x33\n\x10image_data_param\x18s \x01(\x0b\x32\x19.caffe.ImageDataParameter\x12\x39\n\x13infogain_loss_param\x18t \x01(\x0b\x32\x1c.caffe.InfogainLossParameter\x12\x39\n\x13inner_product_param\x18u \x01(\x0b\x32\x1c.caffe.InnerProductParameter\x12+\n\x0binput_param\x18\x8f\x01 \x01(\x0b\x32\x15.caffe.InputParameter\x12\'\n\tlog_param\x18\x86\x01 \x01(\x0b\x32\x13.caffe.LogParameter\x12&\n\tlrn_param\x18v \x01(\x0b\x32\x13.caffe.LRNParameter\x12\x35\n\x11memory_data_param\x18w \x01(\x0b\x32\x1a.caffe.MemoryDataParameter\x12&\n\tmvn_param\x18x \x01(\x0b\x32\x13.caffe.MVNParameter\x12\x33\n\x0fparameter_param\x18\x91\x01 \x01(\x0b\x32\x19.caffe.ParameterParameter\x12.\n\rpooling_param\x18y \x01(\x0b\x32\x17.caffe.PoolingParameter\x12*\n\x0bpower_param\x18z \x01(\x0b\x32\x15.caffe.PowerParameter\x12+\n\x0bprelu_param\x18\x83\x01 \x01(\x0b\x32\x15.caffe.PReLUParameter\x12-\n\x0cpython_param\x18\x82\x01 \x01(\x0b\x32\x16.caffe.PythonParameter\x12\x33\n\x0frecurrent_param\x18\x92\x01 \x01(\x0b\x32\x19.caffe.RecurrentParameter\x12\x33\n\x0freduction_param\x18\x88\x01 \x01(\x0b\x32\x19.caffe.ReductionParameter\x12(\n\nrelu_param\x18{ \x01(\x0b\x32\x14.caffe.ReLUParameter\x12/\n\rreshape_param\x18\x85\x01 \x01(\x0b\x32\x17.caffe.ReshapeParameter\x12+\n\x0bscale_param\x18\x8e\x01 \x01(\x0b\x32\x15.caffe.ScaleParameter\x12.\n\rsigmoid_param\x18| \x01(\x0b\x32\x17.caffe.SigmoidParameter\x12.\n\rsoftmax_param\x18} \x01(\x0b\x32\x17.caffe.SoftmaxParameter\x12\'\n\tspp_param\x18\x84\x01 \x01(\x0b\x32\x13.caffe.SPPParameter\x12*\n\x0bslice_param\x18~ \x01(\x0b\x32\x15.caffe.SliceParameter\x12+\n\x0bswish_param\x18\x93\x01 \x01(\x0b\x32\x15.caffe.SwishParameter\x12(\n\ntanh_param\x18\x7f \x01(\x0b\x32\x14.caffe.TanHParameter\x12\x33\n\x0fthreshold_param\x18\x80\x01 \x01(\x0b\x32\x19.caffe.ThresholdParameter\x12)\n\ntile_param\x18\x8a\x01 \x01(\x0b\x32\x14.caffe.TileParameter\x12\x36\n\x11window_data_param\x18\x81\x01 \x01(\x0b\x32\x1a.caffe.WindowDataParameter\x12>\n\x15shuffle_channel_param\x18\xa6\x01 \x01(\x0b\x32\x1e.caffe.ShuffleChannelParameter\"\xb6\x01\n\x17TransformationParameter\x12\x10\n\x05scale\x18\x01 \x01(\x02:\x01\x31\x12\x15\n\x06mirror\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x14\n\tcrop_size\x18\x03 \x01(\r:\x01\x30\x12\x11\n\tmean_file\x18\x04 \x01(\t\x12\x12\n\nmean_value\x18\x05 \x03(\x02\x12\x1a\n\x0b\x66orce_color\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x19\n\nforce_gray\x18\x07 \x01(\x08:\x05\x66\x61lse\"\xc2\x01\n\rLossParameter\x12\x14\n\x0cignore_label\x18\x01 \x01(\x05\x12\x44\n\rnormalization\x18\x03 \x01(\x0e\x32&.caffe.LossParameter.NormalizationMode:\x05VALID\x12\x11\n\tnormalize\x18\x02 \x01(\x08\"B\n\x11NormalizationMode\x12\x08\n\x04\x46ULL\x10\x00\x12\t\n\x05VALID\x10\x01\x12\x0e\n\nBATCH_SIZE\x10\x02\x12\x08\n\x04NONE\x10\x03\"L\n\x11\x41\x63\x63uracyParameter\x12\x10\n\x05top_k\x18\x01 \x01(\r:\x01\x31\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\x12\x14\n\x0cignore_label\x18\x03 \x01(\x05\"M\n\x0f\x41rgMaxParameter\x12\x1a\n\x0bout_max_val\x18\x01 \x01(\x08:\x05\x66\x61lse\x12\x10\n\x05top_k\x18\x02 \x01(\r:\x01\x31\x12\x0c\n\x04\x61xis\x18\x03 \x01(\x05\")\n\rClipParameter\x12\x0b\n\x03min\x18\x01 \x02(\x02\x12\x0b\n\x03max\x18\x02 \x02(\x02\"9\n\x0f\x43oncatParameter\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\x12\x15\n\nconcat_dim\x18\x01 \x01(\r:\x01\x31\"j\n\x12\x42\x61tchNormParameter\x12\x18\n\x10use_global_stats\x18\x01 \x01(\x08\x12&\n\x17moving_average_fraction\x18\x02 \x01(\x02:\x05\x30.999\x12\x12\n\x03\x65ps\x18\x03 \x01(\x02:\x05\x31\x65-05\"]\n\rBiasParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\x13\n\x08num_axes\x18\x02 \x01(\x05:\x01\x31\x12&\n\x06\x66iller\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\"L\n\x18\x43ontrastiveLossParameter\x12\x11\n\x06margin\x18\x01 \x01(\x02:\x01\x31\x12\x1d\n\x0elegacy_version\x18\x02 \x01(\x08:\x05\x66\x61lse\"\xfc\x03\n\x14\x43onvolutionParameter\x12\x12\n\nnum_output\x18\x01 \x01(\r\x12\x17\n\tbias_term\x18\x02 \x01(\x08:\x04true\x12\x0b\n\x03pad\x18\x03 \x03(\r\x12\x13\n\x0bkernel_size\x18\x04 \x03(\r\x12\x0e\n\x06stride\x18\x06 \x03(\r\x12\x10\n\x08\x64ilation\x18\x12 \x03(\r\x12\x10\n\x05pad_h\x18\t \x01(\r:\x01\x30\x12\x10\n\x05pad_w\x18\n \x01(\r:\x01\x30\x12\x10\n\x08kernel_h\x18\x0b \x01(\r\x12\x10\n\x08kernel_w\x18\x0c \x01(\r\x12\x10\n\x08stride_h\x18\r \x01(\r\x12\x10\n\x08stride_w\x18\x0e \x01(\r\x12\x10\n\x05group\x18\x05 \x01(\r:\x01\x31\x12-\n\rweight_filler\x18\x07 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x08 \x01(\x0b\x32\x16.caffe.FillerParameter\x12;\n\x06\x65ngine\x18\x0f \x01(\x0e\x32\".caffe.ConvolutionParameter.Engine:\x07\x44\x45\x46\x41ULT\x12\x0f\n\x04\x61xis\x18\x10 \x01(\x05:\x01\x31\x12\x1e\n\x0f\x66orce_nd_im2col\x18\x11 \x01(\x08:\x05\x66\x61lse\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"0\n\rCropParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06offset\x18\x02 \x03(\r\"\xa4\x02\n\rDataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x12\n\nbatch_size\x18\x04 \x01(\r\x12\x14\n\trand_skip\x18\x07 \x01(\r:\x01\x30\x12\x31\n\x07\x62\x61\x63kend\x18\x08 \x01(\x0e\x32\x17.caffe.DataParameter.DB:\x07LEVELDB\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x11\n\tmean_file\x18\x03 \x01(\t\x12\x14\n\tcrop_size\x18\x05 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13\x66orce_encoded_color\x18\t \x01(\x08:\x05\x66\x61lse\x12\x13\n\x08prefetch\x18\n \x01(\r:\x01\x34\"\x1b\n\x02\x44\x42\x12\x0b\n\x07LEVELDB\x10\x00\x12\x08\n\x04LMDB\x10\x01\".\n\x10\x44ropoutParameter\x12\x1a\n\rdropout_ratio\x18\x01 \x01(\x02:\x03\x30.5\"\xa0\x01\n\x12\x44ummyDataParameter\x12+\n\x0b\x64\x61ta_filler\x18\x01 \x03(\x0b\x32\x16.caffe.FillerParameter\x12\x1f\n\x05shape\x18\x06 \x03(\x0b\x32\x10.caffe.BlobShape\x12\x0b\n\x03num\x18\x02 \x03(\r\x12\x10\n\x08\x63hannels\x18\x03 \x03(\r\x12\x0e\n\x06height\x18\x04 \x03(\r\x12\r\n\x05width\x18\x05 \x03(\r\"\xa5\x01\n\x10\x45ltwiseParameter\x12\x39\n\toperation\x18\x01 \x01(\x0e\x32!.caffe.EltwiseParameter.EltwiseOp:\x03SUM\x12\r\n\x05\x63oeff\x18\x02 \x03(\x02\x12\x1e\n\x10stable_prod_grad\x18\x03 \x01(\x08:\x04true\"\'\n\tEltwiseOp\x12\x08\n\x04PROD\x10\x00\x12\x07\n\x03SUM\x10\x01\x12\x07\n\x03MAX\x10\x02\" \n\x0c\x45LUParameter\x12\x10\n\x05\x61lpha\x18\x01 \x01(\x02:\x01\x31\"\xac\x01\n\x0e\x45mbedParameter\x12\x12\n\nnum_output\x18\x01 \x01(\r\x12\x11\n\tinput_dim\x18\x02 \x01(\r\x12\x17\n\tbias_term\x18\x03 \x01(\x08:\x04true\x12-\n\rweight_filler\x18\x04 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x05 \x01(\x0b\x32\x16.caffe.FillerParameter\"D\n\x0c\x45xpParameter\x12\x10\n\x04\x62\x61se\x18\x01 \x01(\x02:\x02-1\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x10\n\x05shift\x18\x03 \x01(\x02:\x01\x30\"9\n\x10\x46lattenParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\x14\n\x08\x65nd_axis\x18\x02 \x01(\x05:\x02-1\"O\n\x11HDF5DataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x12\n\nbatch_size\x18\x02 \x01(\r\x12\x16\n\x07shuffle\x18\x03 \x01(\x08:\x05\x66\x61lse\"(\n\x13HDF5OutputParameter\x12\x11\n\tfile_name\x18\x01 \x01(\t\"^\n\x12HingeLossParameter\x12\x30\n\x04norm\x18\x01 \x01(\x0e\x32\x1e.caffe.HingeLossParameter.Norm:\x02L1\"\x16\n\x04Norm\x12\x06\n\x02L1\x10\x01\x12\x06\n\x02L2\x10\x02\"\x97\x02\n\x12ImageDataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x15\n\nbatch_size\x18\x04 \x01(\r:\x01\x31\x12\x14\n\trand_skip\x18\x07 \x01(\r:\x01\x30\x12\x16\n\x07shuffle\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\x15\n\nnew_height\x18\t \x01(\r:\x01\x30\x12\x14\n\tnew_width\x18\n \x01(\r:\x01\x30\x12\x16\n\x08is_color\x18\x0b \x01(\x08:\x04true\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x11\n\tmean_file\x18\x03 \x01(\t\x12\x14\n\tcrop_size\x18\x05 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x15\n\x0broot_folder\x18\x0c \x01(\t:\x00\"8\n\x15InfogainLossParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\"\xcb\x01\n\x15InnerProductParameter\x12\x12\n\nnum_output\x18\x01 \x01(\r\x12\x17\n\tbias_term\x18\x02 \x01(\x08:\x04true\x12-\n\rweight_filler\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x04 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x0f\n\x04\x61xis\x18\x05 \x01(\x05:\x01\x31\x12\x18\n\ttranspose\x18\x06 \x01(\x08:\x05\x66\x61lse\"1\n\x0eInputParameter\x12\x1f\n\x05shape\x18\x01 \x03(\x0b\x32\x10.caffe.BlobShape\"D\n\x0cLogParameter\x12\x10\n\x04\x62\x61se\x18\x01 \x01(\x02:\x02-1\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x10\n\x05shift\x18\x03 \x01(\x02:\x01\x30\"\xb8\x02\n\x0cLRNParameter\x12\x15\n\nlocal_size\x18\x01 \x01(\r:\x01\x35\x12\x10\n\x05\x61lpha\x18\x02 \x01(\x02:\x01\x31\x12\x12\n\x04\x62\x65ta\x18\x03 \x01(\x02:\x04\x30.75\x12\x44\n\x0bnorm_region\x18\x04 \x01(\x0e\x32\x1e.caffe.LRNParameter.NormRegion:\x0f\x41\x43ROSS_CHANNELS\x12\x0c\n\x01k\x18\x05 \x01(\x02:\x01\x31\x12\x33\n\x06\x65ngine\x18\x06 \x01(\x0e\x32\x1a.caffe.LRNParameter.Engine:\x07\x44\x45\x46\x41ULT\"5\n\nNormRegion\x12\x13\n\x0f\x41\x43ROSS_CHANNELS\x10\x00\x12\x12\n\x0eWITHIN_CHANNEL\x10\x01\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"Z\n\x13MemoryDataParameter\x12\x12\n\nbatch_size\x18\x01 \x01(\r\x12\x10\n\x08\x63hannels\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\"d\n\x0cMVNParameter\x12 \n\x12normalize_variance\x18\x01 \x01(\x08:\x04true\x12\x1e\n\x0f\x61\x63ross_channels\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x12\n\x03\x65ps\x18\x03 \x01(\x02:\x05\x31\x65-09\"5\n\x12ParameterParameter\x12\x1f\n\x05shape\x18\x01 \x01(\x0b\x32\x10.caffe.BlobShape\"\x81\x04\n\x10PoolingParameter\x12\x35\n\x04pool\x18\x01 \x01(\x0e\x32\".caffe.PoolingParameter.PoolMethod:\x03MAX\x12\x0e\n\x03pad\x18\x04 \x01(\r:\x01\x30\x12\x10\n\x05pad_h\x18\t \x01(\r:\x01\x30\x12\x10\n\x05pad_w\x18\n \x01(\r:\x01\x30\x12\x13\n\x0bkernel_size\x18\x02 \x01(\r\x12\x10\n\x08kernel_h\x18\x05 \x01(\r\x12\x10\n\x08kernel_w\x18\x06 \x01(\r\x12\x11\n\x06stride\x18\x03 \x01(\r:\x01\x31\x12\x10\n\x08stride_h\x18\x07 \x01(\r\x12\x10\n\x08stride_w\x18\x08 \x01(\r\x12\x37\n\x06\x65ngine\x18\x0b \x01(\x0e\x32\x1e.caffe.PoolingParameter.Engine:\x07\x44\x45\x46\x41ULT\x12\x1d\n\x0eglobal_pooling\x18\x0c \x01(\x08:\x05\x66\x61lse\x12;\n\nround_mode\x18\r \x01(\x0e\x32!.caffe.PoolingParameter.RoundMode:\x04\x43\x45IL\".\n\nPoolMethod\x12\x07\n\x03MAX\x10\x00\x12\x07\n\x03\x41VE\x10\x01\x12\x0e\n\nSTOCHASTIC\x10\x02\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\" \n\tRoundMode\x12\x08\n\x04\x43\x45IL\x10\x00\x12\t\n\x05\x46LOOR\x10\x01\"F\n\x0ePowerParameter\x12\x10\n\x05power\x18\x01 \x01(\x02:\x01\x31\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x10\n\x05shift\x18\x03 \x01(\x02:\x01\x30\"g\n\x0fPythonParameter\x12\x0e\n\x06module\x18\x01 \x01(\t\x12\r\n\x05layer\x18\x02 \x01(\t\x12\x13\n\tparam_str\x18\x03 \x01(\t:\x00\x12 \n\x11share_in_parallel\x18\x04 \x01(\x08:\x05\x66\x61lse\"\xc0\x01\n\x12RecurrentParameter\x12\x15\n\nnum_output\x18\x01 \x01(\r:\x01\x30\x12-\n\rweight_filler\x18\x02 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x19\n\ndebug_info\x18\x04 \x01(\x08:\x05\x66\x61lse\x12\x1c\n\rexpose_hidden\x18\x05 \x01(\x08:\x05\x66\x61lse\"\xad\x01\n\x12ReductionParameter\x12=\n\toperation\x18\x01 \x01(\x0e\x32%.caffe.ReductionParameter.ReductionOp:\x03SUM\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x30\x12\x10\n\x05\x63oeff\x18\x03 \x01(\x02:\x01\x31\"5\n\x0bReductionOp\x12\x07\n\x03SUM\x10\x01\x12\x08\n\x04\x41SUM\x10\x02\x12\t\n\x05SUMSQ\x10\x03\x12\x08\n\x04MEAN\x10\x04\"\x8d\x01\n\rReLUParameter\x12\x19\n\x0enegative_slope\x18\x01 \x01(\x02:\x01\x30\x12\x34\n\x06\x65ngine\x18\x02 \x01(\x0e\x32\x1b.caffe.ReLUParameter.Engine:\x07\x44\x45\x46\x41ULT\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"Z\n\x10ReshapeParameter\x12\x1f\n\x05shape\x18\x01 \x01(\x0b\x32\x10.caffe.BlobShape\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x30\x12\x14\n\x08num_axes\x18\x03 \x01(\x05:\x02-1\"\xa5\x01\n\x0eScaleParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\x13\n\x08num_axes\x18\x02 \x01(\x05:\x01\x31\x12&\n\x06\x66iller\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x18\n\tbias_term\x18\x04 \x01(\x08:\x05\x66\x61lse\x12+\n\x0b\x62ias_filler\x18\x05 \x01(\x0b\x32\x16.caffe.FillerParameter\"x\n\x10SigmoidParameter\x12\x37\n\x06\x65ngine\x18\x01 \x01(\x0e\x32\x1e.caffe.SigmoidParameter.Engine:\x07\x44\x45\x46\x41ULT\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"L\n\x0eSliceParameter\x12\x0f\n\x04\x61xis\x18\x03 \x01(\x05:\x01\x31\x12\x13\n\x0bslice_point\x18\x02 \x03(\r\x12\x14\n\tslice_dim\x18\x01 \x01(\r:\x01\x31\"\x89\x01\n\x10SoftmaxParameter\x12\x37\n\x06\x65ngine\x18\x01 \x01(\x0e\x32\x1e.caffe.SoftmaxParameter.Engine:\x07\x44\x45\x46\x41ULT\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"!\n\x0eSwishParameter\x12\x0f\n\x04\x62\x65ta\x18\x01 \x01(\x02:\x01\x31\"r\n\rTanHParameter\x12\x34\n\x06\x65ngine\x18\x01 \x01(\x0e\x32\x1b.caffe.TanHParameter.Engine:\x07\x44\x45\x46\x41ULT\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"/\n\rTileParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\r\n\x05tiles\x18\x02 \x01(\x05\"*\n\x12ThresholdParameter\x12\x14\n\tthreshold\x18\x01 \x01(\x02:\x01\x30\"\xc1\x02\n\x13WindowDataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x11\n\tmean_file\x18\x03 \x01(\t\x12\x12\n\nbatch_size\x18\x04 \x01(\r\x12\x14\n\tcrop_size\x18\x05 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x19\n\x0c\x66g_threshold\x18\x07 \x01(\x02:\x03\x30.5\x12\x19\n\x0c\x62g_threshold\x18\x08 \x01(\x02:\x03\x30.5\x12\x19\n\x0b\x66g_fraction\x18\t \x01(\x02:\x04\x30.25\x12\x16\n\x0b\x63ontext_pad\x18\n \x01(\r:\x01\x30\x12\x17\n\tcrop_mode\x18\x0b \x01(\t:\x04warp\x12\x1b\n\x0c\x63\x61\x63he_images\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x15\n\x0broot_folder\x18\r \x01(\t:\x00\"\xeb\x01\n\x0cSPPParameter\x12\x16\n\x0epyramid_height\x18\x01 \x01(\r\x12\x31\n\x04pool\x18\x02 \x01(\x0e\x32\x1e.caffe.SPPParameter.PoolMethod:\x03MAX\x12\x33\n\x06\x65ngine\x18\x06 \x01(\x0e\x32\x1a.caffe.SPPParameter.Engine:\x07\x44\x45\x46\x41ULT\".\n\nPoolMethod\x12\x07\n\x03MAX\x10\x00\x12\x07\n\x03\x41VE\x10\x01\x12\x0e\n\nSTOCHASTIC\x10\x02\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"\xe0\x13\n\x10V1LayerParameter\x12\x0e\n\x06\x62ottom\x18\x02 \x03(\t\x12\x0b\n\x03top\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12$\n\x07include\x18 \x03(\x0b\x32\x13.caffe.NetStateRule\x12$\n\x07\x65xclude\x18! \x03(\x0b\x32\x13.caffe.NetStateRule\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.caffe.V1LayerParameter.LayerType\x12\x1f\n\x05\x62lobs\x18\x06 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x0e\n\x05param\x18\xe9\x07 \x03(\t\x12>\n\x0f\x62lob_share_mode\x18\xea\x07 \x03(\x0e\x32$.caffe.V1LayerParameter.DimCheckMode\x12\x10\n\x08\x62lobs_lr\x18\x07 \x03(\x02\x12\x14\n\x0cweight_decay\x18\x08 \x03(\x02\x12\x13\n\x0bloss_weight\x18# \x03(\x02\x12\x30\n\x0e\x61\x63\x63uracy_param\x18\x1b \x01(\x0b\x32\x18.caffe.AccuracyParameter\x12,\n\x0c\x61rgmax_param\x18\x17 \x01(\x0b\x32\x16.caffe.ArgMaxParameter\x12,\n\x0c\x63oncat_param\x18\t \x01(\x0b\x32\x16.caffe.ConcatParameter\x12?\n\x16\x63ontrastive_loss_param\x18( \x01(\x0b\x32\x1f.caffe.ContrastiveLossParameter\x12\x36\n\x11\x63onvolution_param\x18\n \x01(\x0b\x32\x1b.caffe.ConvolutionParameter\x12(\n\ndata_param\x18\x0b \x01(\x0b\x32\x14.caffe.DataParameter\x12.\n\rdropout_param\x18\x0c \x01(\x0b\x32\x17.caffe.DropoutParameter\x12\x33\n\x10\x64ummy_data_param\x18\x1a \x01(\x0b\x32\x19.caffe.DummyDataParameter\x12.\n\reltwise_param\x18\x18 \x01(\x0b\x32\x17.caffe.EltwiseParameter\x12&\n\texp_param\x18) \x01(\x0b\x32\x13.caffe.ExpParameter\x12\x31\n\x0fhdf5_data_param\x18\r \x01(\x0b\x32\x18.caffe.HDF5DataParameter\x12\x35\n\x11hdf5_output_param\x18\x0e \x01(\x0b\x32\x1a.caffe.HDF5OutputParameter\x12\x33\n\x10hinge_loss_param\x18\x1d \x01(\x0b\x32\x19.caffe.HingeLossParameter\x12\x33\n\x10image_data_param\x18\x0f \x01(\x0b\x32\x19.caffe.ImageDataParameter\x12\x39\n\x13infogain_loss_param\x18\x10 \x01(\x0b\x32\x1c.caffe.InfogainLossParameter\x12\x39\n\x13inner_product_param\x18\x11 \x01(\x0b\x32\x1c.caffe.InnerProductParameter\x12&\n\tlrn_param\x18\x12 \x01(\x0b\x32\x13.caffe.LRNParameter\x12\x35\n\x11memory_data_param\x18\x16 \x01(\x0b\x32\x1a.caffe.MemoryDataParameter\x12&\n\tmvn_param\x18\" \x01(\x0b\x32\x13.caffe.MVNParameter\x12.\n\rpooling_param\x18\x13 \x01(\x0b\x32\x17.caffe.PoolingParameter\x12*\n\x0bpower_param\x18\x15 \x01(\x0b\x32\x15.caffe.PowerParameter\x12(\n\nrelu_param\x18\x1e \x01(\x0b\x32\x14.caffe.ReLUParameter\x12.\n\rsigmoid_param\x18& \x01(\x0b\x32\x17.caffe.SigmoidParameter\x12.\n\rsoftmax_param\x18\' \x01(\x0b\x32\x17.caffe.SoftmaxParameter\x12*\n\x0bslice_param\x18\x1f \x01(\x0b\x32\x15.caffe.SliceParameter\x12(\n\ntanh_param\x18% \x01(\x0b\x32\x14.caffe.TanHParameter\x12\x32\n\x0fthreshold_param\x18\x19 \x01(\x0b\x32\x19.caffe.ThresholdParameter\x12\x35\n\x11window_data_param\x18\x14 \x01(\x0b\x32\x1a.caffe.WindowDataParameter\x12\x37\n\x0ftransform_param\x18$ \x01(\x0b\x32\x1e.caffe.TransformationParameter\x12(\n\nloss_param\x18* \x01(\x0b\x32\x14.caffe.LossParameter\x12&\n\x05layer\x18\x01 \x01(\x0b\x32\x17.caffe.V0LayerParameter\"\xd8\x04\n\tLayerType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06\x41\x42SVAL\x10#\x12\x0c\n\x08\x41\x43\x43URACY\x10\x01\x12\n\n\x06\x41RGMAX\x10\x1e\x12\x08\n\x04\x42NLL\x10\x02\x12\n\n\x06\x43ONCAT\x10\x03\x12\x14\n\x10\x43ONTRASTIVE_LOSS\x10%\x12\x0f\n\x0b\x43ONVOLUTION\x10\x04\x12\x08\n\x04\x44\x41TA\x10\x05\x12\x11\n\rDECONVOLUTION\x10\'\x12\x0b\n\x07\x44ROPOUT\x10\x06\x12\x0e\n\nDUMMY_DATA\x10 \x12\x12\n\x0e\x45UCLIDEAN_LOSS\x10\x07\x12\x0b\n\x07\x45LTWISE\x10\x19\x12\x07\n\x03\x45XP\x10&\x12\x0b\n\x07\x46LATTEN\x10\x08\x12\r\n\tHDF5_DATA\x10\t\x12\x0f\n\x0bHDF5_OUTPUT\x10\n\x12\x0e\n\nHINGE_LOSS\x10\x1c\x12\n\n\x06IM2COL\x10\x0b\x12\x0e\n\nIMAGE_DATA\x10\x0c\x12\x11\n\rINFOGAIN_LOSS\x10\r\x12\x11\n\rINNER_PRODUCT\x10\x0e\x12\x07\n\x03LRN\x10\x0f\x12\x0f\n\x0bMEMORY_DATA\x10\x1d\x12\x1d\n\x19MULTINOMIAL_LOGISTIC_LOSS\x10\x10\x12\x07\n\x03MVN\x10\"\x12\x0b\n\x07POOLING\x10\x11\x12\t\n\x05POWER\x10\x1a\x12\x08\n\x04RELU\x10\x12\x12\x0b\n\x07SIGMOID\x10\x13\x12\x1e\n\x1aSIGMOID_CROSS_ENTROPY_LOSS\x10\x1b\x12\x0b\n\x07SILENCE\x10$\x12\x0b\n\x07SOFTMAX\x10\x14\x12\x10\n\x0cSOFTMAX_LOSS\x10\x15\x12\t\n\x05SPLIT\x10\x16\x12\t\n\x05SLICE\x10!\x12\x08\n\x04TANH\x10\x17\x12\x0f\n\x0bWINDOW_DATA\x10\x18\x12\r\n\tTHRESHOLD\x10\x1f\"*\n\x0c\x44imCheckMode\x12\n\n\x06STRICT\x10\x00\x12\x0e\n\nPERMISSIVE\x10\x01\"\xfd\x07\n\x10V0LayerParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x12\n\nnum_output\x18\x03 \x01(\r\x12\x16\n\x08\x62iasterm\x18\x04 \x01(\x08:\x04true\x12-\n\rweight_filler\x18\x05 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x06 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x0e\n\x03pad\x18\x07 \x01(\r:\x01\x30\x12\x12\n\nkernelsize\x18\x08 \x01(\r\x12\x10\n\x05group\x18\t \x01(\r:\x01\x31\x12\x11\n\x06stride\x18\n \x01(\r:\x01\x31\x12\x35\n\x04pool\x18\x0b \x01(\x0e\x32\".caffe.V0LayerParameter.PoolMethod:\x03MAX\x12\x1a\n\rdropout_ratio\x18\x0c \x01(\x02:\x03\x30.5\x12\x15\n\nlocal_size\x18\r \x01(\r:\x01\x35\x12\x10\n\x05\x61lpha\x18\x0e \x01(\x02:\x01\x31\x12\x12\n\x04\x62\x65ta\x18\x0f \x01(\x02:\x04\x30.75\x12\x0c\n\x01k\x18\x16 \x01(\x02:\x01\x31\x12\x0e\n\x06source\x18\x10 \x01(\t\x12\x10\n\x05scale\x18\x11 \x01(\x02:\x01\x31\x12\x10\n\x08meanfile\x18\x12 \x01(\t\x12\x11\n\tbatchsize\x18\x13 \x01(\r\x12\x13\n\x08\x63ropsize\x18\x14 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x05\x62lobs\x18\x32 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x10\n\x08\x62lobs_lr\x18\x33 \x03(\x02\x12\x14\n\x0cweight_decay\x18\x34 \x03(\x02\x12\x14\n\trand_skip\x18\x35 \x01(\r:\x01\x30\x12\x1d\n\x10\x64\x65t_fg_threshold\x18\x36 \x01(\x02:\x03\x30.5\x12\x1d\n\x10\x64\x65t_bg_threshold\x18\x37 \x01(\x02:\x03\x30.5\x12\x1d\n\x0f\x64\x65t_fg_fraction\x18\x38 \x01(\x02:\x04\x30.25\x12\x1a\n\x0f\x64\x65t_context_pad\x18: \x01(\r:\x01\x30\x12\x1b\n\rdet_crop_mode\x18; \x01(\t:\x04warp\x12\x12\n\x07new_num\x18< \x01(\x05:\x01\x30\x12\x17\n\x0cnew_channels\x18= \x01(\x05:\x01\x30\x12\x15\n\nnew_height\x18> \x01(\x05:\x01\x30\x12\x14\n\tnew_width\x18? \x01(\x05:\x01\x30\x12\x1d\n\x0eshuffle_images\x18@ \x01(\x08:\x05\x66\x61lse\x12\x15\n\nconcat_dim\x18\x41 \x01(\r:\x01\x31\x12\x36\n\x11hdf5_output_param\x18\xe9\x07 \x01(\x0b\x32\x1a.caffe.HDF5OutputParameter\".\n\nPoolMethod\x12\x07\n\x03MAX\x10\x00\x12\x07\n\x03\x41VE\x10\x01\x12\x0e\n\nSTOCHASTIC\x10\x02\"W\n\x0ePReLUParameter\x12&\n\x06\x66iller\x18\x01 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x1d\n\x0e\x63hannel_shared\x18\x02 \x01(\x08:\x05\x66\x61lse\"+\n\x17ShuffleChannelParameter\x12\x10\n\x05group\x18\x01 \x01(\r:\x01\x31*\x1c\n\x05Phase\x12\t\n\x05TRAIN\x10\x00\x12\x08\n\x04TEST\x10\x01' - )) + name='caffe.proto', + package='caffe', + syntax='proto2', + serialized_options=None, + serialized_pb=_b('\n\x0b\x63\x61\x66\x66\x65.proto\x12\x05\x63\x61\x66\x66\x65\"\x1c\n\tBlobShape\x12\x0f\n\x03\x64im\x18\x01 \x03(\x03\x42\x02\x10\x01\"\xcc\x01\n\tBlobProto\x12\x1f\n\x05shape\x18\x07 \x01(\x0b\x32\x10.caffe.BlobShape\x12\x10\n\x04\x64\x61ta\x18\x05 \x03(\x02\x42\x02\x10\x01\x12\x10\n\x04\x64iff\x18\x06 \x03(\x02\x42\x02\x10\x01\x12\x17\n\x0b\x64ouble_data\x18\x08 \x03(\x01\x42\x02\x10\x01\x12\x17\n\x0b\x64ouble_diff\x18\t \x03(\x01\x42\x02\x10\x01\x12\x0e\n\x03num\x18\x01 \x01(\x05:\x01\x30\x12\x13\n\x08\x63hannels\x18\x02 \x01(\x05:\x01\x30\x12\x11\n\x06height\x18\x03 \x01(\x05:\x01\x30\x12\x10\n\x05width\x18\x04 \x01(\x05:\x01\x30\"2\n\x0f\x42lobProtoVector\x12\x1f\n\x05\x62lobs\x18\x01 \x03(\x0b\x32\x10.caffe.BlobProto\"\x81\x01\n\x05\x44\x61tum\x12\x10\n\x08\x63hannels\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05width\x18\x03 \x01(\x05\x12\x0c\n\x04\x64\x61ta\x18\x04 \x01(\x0c\x12\r\n\x05label\x18\x05 \x01(\x05\x12\x12\n\nfloat_data\x18\x06 \x03(\x02\x12\x16\n\x07\x65ncoded\x18\x07 \x01(\x08:\x05\x66\x61lse\"A\n\x0cLabelMapItem\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05label\x18\x02 \x01(\x05\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\"-\n\x08LabelMap\x12!\n\x04item\x18\x01 \x03(\x0b\x32\x13.caffe.LabelMapItem\"o\n\x07Sampler\x12\x14\n\tmin_scale\x18\x01 \x01(\x02:\x01\x31\x12\x14\n\tmax_scale\x18\x02 \x01(\x02:\x01\x31\x12\x1b\n\x10min_aspect_ratio\x18\x03 \x01(\x02:\x01\x31\x12\x1b\n\x10max_aspect_ratio\x18\x04 \x01(\x02:\x01\x31\"\xc0\x01\n\x10SampleConstraint\x12\x1b\n\x13min_jaccard_overlap\x18\x01 \x01(\x02\x12\x1b\n\x13max_jaccard_overlap\x18\x02 \x01(\x02\x12\x1b\n\x13min_sample_coverage\x18\x03 \x01(\x02\x12\x1b\n\x13max_sample_coverage\x18\x04 \x01(\x02\x12\x1b\n\x13min_object_coverage\x18\x05 \x01(\x02\x12\x1b\n\x13max_object_coverage\x18\x06 \x01(\x02\"\xb2\x01\n\x0c\x42\x61tchSampler\x12 \n\x12use_original_image\x18\x01 \x01(\x08:\x04true\x12\x1f\n\x07sampler\x18\x02 \x01(\x0b\x32\x0e.caffe.Sampler\x12\x32\n\x11sample_constraint\x18\x03 \x01(\x0b\x32\x17.caffe.SampleConstraint\x12\x12\n\nmax_sample\x18\x04 \x01(\r\x12\x17\n\nmax_trials\x18\x05 \x01(\r:\x03\x31\x30\x30\"\x8a\x01\n\x0e\x45mitConstraint\x12\x39\n\temit_type\x18\x01 \x01(\x0e\x32\x1e.caffe.EmitConstraint.EmitType:\x06\x43\x45NTER\x12\x14\n\x0c\x65mit_overlap\x18\x02 \x01(\x02\"\'\n\x08\x45mitType\x12\n\n\x06\x43\x45NTER\x10\x00\x12\x0f\n\x0bMIN_OVERLAP\x10\x01\"\x87\x01\n\x0eNormalizedBBox\x12\x0c\n\x04xmin\x18\x01 \x01(\x02\x12\x0c\n\x04ymin\x18\x02 \x01(\x02\x12\x0c\n\x04xmax\x18\x03 \x01(\x02\x12\x0c\n\x04ymax\x18\x04 \x01(\x02\x12\r\n\x05label\x18\x05 \x01(\x05\x12\x11\n\tdifficult\x18\x06 \x01(\x08\x12\r\n\x05score\x18\x07 \x01(\x02\x12\x0c\n\x04size\x18\x08 \x01(\x02\"I\n\nAnnotation\x12\x16\n\x0binstance_id\x18\x01 \x01(\x05:\x01\x30\x12#\n\x04\x62\x62ox\x18\x02 \x01(\x0b\x32\x15.caffe.NormalizedBBox\"M\n\x0f\x41nnotationGroup\x12\x13\n\x0bgroup_label\x18\x01 \x01(\x05\x12%\n\nannotation\x18\x02 \x03(\x0b\x32\x11.caffe.Annotation\"\xaf\x01\n\x0e\x41nnotatedDatum\x12\x1b\n\x05\x64\x61tum\x18\x01 \x01(\x0b\x32\x0c.caffe.Datum\x12\x32\n\x04type\x18\x02 \x01(\x0e\x32$.caffe.AnnotatedDatum.AnnotationType\x12\x30\n\x10\x61nnotation_group\x18\x03 \x03(\x0b\x32\x16.caffe.AnnotationGroup\"\x1a\n\x0e\x41nnotationType\x12\x08\n\x04\x42\x42OX\x10\x00\"\x8a\x02\n\x0f\x46illerParameter\x12\x16\n\x04type\x18\x01 \x01(\t:\x08\x63onstant\x12\x10\n\x05value\x18\x02 \x01(\x02:\x01\x30\x12\x0e\n\x03min\x18\x03 \x01(\x02:\x01\x30\x12\x0e\n\x03max\x18\x04 \x01(\x02:\x01\x31\x12\x0f\n\x04mean\x18\x05 \x01(\x02:\x01\x30\x12\x0e\n\x03std\x18\x06 \x01(\x02:\x01\x31\x12\x12\n\x06sparse\x18\x07 \x01(\x05:\x02-1\x12\x42\n\rvariance_norm\x18\x08 \x01(\x0e\x32#.caffe.FillerParameter.VarianceNorm:\x06\x46\x41N_IN\"4\n\x0cVarianceNorm\x12\n\n\x06\x46\x41N_IN\x10\x00\x12\x0b\n\x07\x46\x41N_OUT\x10\x01\x12\x0b\n\x07\x41VERAGE\x10\x02\"\x8e\x02\n\x0cNetParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05input\x18\x03 \x03(\t\x12%\n\x0binput_shape\x18\x08 \x03(\x0b\x32\x10.caffe.BlobShape\x12\x11\n\tinput_dim\x18\x04 \x03(\x05\x12\x1d\n\x0e\x66orce_backward\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x1e\n\x05state\x18\x06 \x01(\x0b\x32\x0f.caffe.NetState\x12\x19\n\ndebug_info\x18\x07 \x01(\x08:\x05\x66\x61lse\x12$\n\x05layer\x18\x64 \x03(\x0b\x32\x15.caffe.LayerParameter\x12\'\n\x06layers\x18\x02 \x03(\x0b\x32\x17.caffe.V1LayerParameter\"\xa2\x0b\n\x0fSolverParameter\x12\x0b\n\x03net\x18\x18 \x01(\t\x12&\n\tnet_param\x18\x19 \x01(\x0b\x32\x13.caffe.NetParameter\x12\x11\n\ttrain_net\x18\x01 \x01(\t\x12\x10\n\x08test_net\x18\x02 \x03(\t\x12,\n\x0ftrain_net_param\x18\x15 \x01(\x0b\x32\x13.caffe.NetParameter\x12+\n\x0etest_net_param\x18\x16 \x03(\x0b\x32\x13.caffe.NetParameter\x12$\n\x0btrain_state\x18\x1a \x01(\x0b\x32\x0f.caffe.NetState\x12#\n\ntest_state\x18\x1b \x03(\x0b\x32\x0f.caffe.NetState\x12!\n\teval_type\x18) \x01(\t:\x0e\x63lassification\x12\x1c\n\nap_version\x18* \x01(\t:\x08Integral\x12$\n\x15show_per_class_result\x18, \x01(\x08:\x05\x66\x61lse\x12\x11\n\ttest_iter\x18\x03 \x03(\x05\x12\x18\n\rtest_interval\x18\x04 \x01(\x05:\x01\x30\x12 \n\x11test_compute_loss\x18\x13 \x01(\x08:\x05\x66\x61lse\x12!\n\x13test_initialization\x18 \x01(\x08:\x04true\x12\x0f\n\x07\x62\x61se_lr\x18\x05 \x01(\x02\x12\x0f\n\x07\x64isplay\x18\x06 \x01(\x05\x12\x17\n\x0c\x61verage_loss\x18! \x01(\x05:\x01\x31\x12\x10\n\x08max_iter\x18\x07 \x01(\x05\x12\x14\n\titer_size\x18$ \x01(\x05:\x01\x31\x12\x11\n\tlr_policy\x18\x08 \x01(\t\x12\r\n\x05gamma\x18\t \x01(\x02\x12\r\n\x05power\x18\n \x01(\x02\x12\x10\n\x08momentum\x18\x0b \x01(\x02\x12\x14\n\x0cweight_decay\x18\x0c \x01(\x02\x12\x1f\n\x13regularization_type\x18\x1d \x01(\t:\x02L2\x12\x10\n\x08stepsize\x18\r \x01(\x05\x12\x11\n\tstepvalue\x18\" \x03(\x05\x12\x17\n\x0fplateau_winsize\x18+ \x03(\x05\x12\x1a\n\x0e\x63lip_gradients\x18# \x01(\x02:\x02-1\x12\x13\n\x08snapshot\x18\x0e \x01(\x05:\x01\x30\x12\x17\n\x0fsnapshot_prefix\x18\x0f \x01(\t\x12\x1c\n\rsnapshot_diff\x18\x10 \x01(\x08:\x05\x66\x61lse\x12K\n\x0fsnapshot_format\x18% \x01(\x0e\x32%.caffe.SolverParameter.SnapshotFormat:\x0b\x42INARYPROTO\x12;\n\x0bsolver_mode\x18\x11 \x01(\x0e\x32!.caffe.SolverParameter.SolverMode:\x03GPU\x12\x14\n\tdevice_id\x18\x12 \x01(\x05:\x01\x30\x12\x17\n\x0brandom_seed\x18\x14 \x01(\x03:\x02-1\x12\x11\n\x04type\x18( \x01(\t:\x03SGD\x12\x14\n\x05\x64\x65lta\x18\x1f \x01(\x02:\x05\x31\x65-08\x12\x18\n\tmomentum2\x18\' \x01(\x02:\x05\x30.999\x12\x17\n\trms_decay\x18& \x01(\x02:\x04\x30.99\x12\x19\n\ndebug_info\x18\x17 \x01(\x08:\x05\x66\x61lse\x12\"\n\x14snapshot_after_train\x18\x1c \x01(\x08:\x04true\x12;\n\x0bsolver_type\x18\x1e \x01(\x0e\x32!.caffe.SolverParameter.SolverType:\x03SGD\"+\n\x0eSnapshotFormat\x12\x08\n\x04HDF5\x10\x00\x12\x0f\n\x0b\x42INARYPROTO\x10\x01\"\x1e\n\nSolverMode\x12\x07\n\x03\x43PU\x10\x00\x12\x07\n\x03GPU\x10\x01\"U\n\nSolverType\x12\x07\n\x03SGD\x10\x00\x12\x0c\n\x08NESTEROV\x10\x01\x12\x0b\n\x07\x41\x44\x41GRAD\x10\x02\x12\x0b\n\x07RMSPROP\x10\x03\x12\x0c\n\x08\x41\x44\x41\x44\x45LTA\x10\x04\x12\x08\n\x04\x41\x44\x41M\x10\x05\"\xa5\x01\n\x0bSolverState\x12\x0c\n\x04iter\x18\x01 \x01(\x05\x12\x13\n\x0blearned_net\x18\x02 \x01(\t\x12!\n\x07history\x18\x03 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x17\n\x0c\x63urrent_step\x18\x04 \x01(\x05:\x01\x30\x12\x1b\n\x0cminimum_loss\x18\x05 \x01(\x02:\x05\x31\x65+38\x12\x1a\n\x0fiter_last_event\x18\x06 \x01(\x05:\x01\x30\"N\n\x08NetState\x12!\n\x05phase\x18\x01 \x01(\x0e\x32\x0c.caffe.Phase:\x04TEST\x12\x10\n\x05level\x18\x02 \x01(\x05:\x01\x30\x12\r\n\x05stage\x18\x03 \x03(\t\"s\n\x0cNetStateRule\x12\x1b\n\x05phase\x18\x01 \x01(\x0e\x32\x0c.caffe.Phase\x12\x11\n\tmin_level\x18\x02 \x01(\x05\x12\x11\n\tmax_level\x18\x03 \x01(\x05\x12\r\n\x05stage\x18\x04 \x03(\t\x12\x11\n\tnot_stage\x18\x05 \x03(\t\"\xa3\x01\n\tParamSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x31\n\nshare_mode\x18\x02 \x01(\x0e\x32\x1d.caffe.ParamSpec.DimCheckMode\x12\x12\n\x07lr_mult\x18\x03 \x01(\x02:\x01\x31\x12\x15\n\ndecay_mult\x18\x04 \x01(\x02:\x01\x31\"*\n\x0c\x44imCheckMode\x12\n\n\x06STRICT\x10\x00\x12\x0e\n\nPERMISSIVE\x10\x01\"\x8f\x18\n\x0eLayerParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06\x62ottom\x18\x03 \x03(\t\x12\x0b\n\x03top\x18\x04 \x03(\t\x12\x1b\n\x05phase\x18\n \x01(\x0e\x32\x0c.caffe.Phase\x12\x13\n\x0bloss_weight\x18\x05 \x03(\x02\x12\x1f\n\x05param\x18\x06 \x03(\x0b\x32\x10.caffe.ParamSpec\x12\x1f\n\x05\x62lobs\x18\x07 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x16\n\x0epropagate_down\x18\x0b \x03(\x08\x12$\n\x07include\x18\x08 \x03(\x0b\x32\x13.caffe.NetStateRule\x12$\n\x07\x65xclude\x18\t \x03(\x0b\x32\x13.caffe.NetStateRule\x12\x37\n\x0ftransform_param\x18\x64 \x01(\x0b\x32\x1e.caffe.TransformationParameter\x12(\n\nloss_param\x18\x65 \x01(\x0b\x32\x14.caffe.LossParameter\x12\x30\n\x0e\x61\x63\x63uracy_param\x18\x66 \x01(\x0b\x32\x18.caffe.AccuracyParameter\x12<\n\x14\x61nnotated_data_param\x18\xc8\x01 \x01(\x0b\x32\x1d.caffe.AnnotatedDataParameter\x12,\n\x0c\x61rgmax_param\x18g \x01(\x0b\x32\x16.caffe.ArgMaxParameter\x12\x34\n\x10\x62\x61tch_norm_param\x18\x8b\x01 \x01(\x0b\x32\x19.caffe.BatchNormParameter\x12)\n\nbias_param\x18\x8d\x01 \x01(\x0b\x32\x14.caffe.BiasParameter\x12,\n\x0c\x63oncat_param\x18h \x01(\x0b\x32\x16.caffe.ConcatParameter\x12?\n\x16\x63ontrastive_loss_param\x18i \x01(\x0b\x32\x1f.caffe.ContrastiveLossParameter\x12\x36\n\x11\x63onvolution_param\x18j \x01(\x0b\x32\x1b.caffe.ConvolutionParameter\x12)\n\ncrop_param\x18\x90\x01 \x01(\x0b\x32\x14.caffe.CropParameter\x12(\n\ndata_param\x18k \x01(\x0b\x32\x14.caffe.DataParameter\x12\x44\n\x18\x64\x65tection_evaluate_param\x18\xcd\x01 \x01(\x0b\x32!.caffe.DetectionEvaluateParameter\x12@\n\x16\x64\x65tection_output_param\x18\xcc\x01 \x01(\x0b\x32\x1f.caffe.DetectionOutputParameter\x12.\n\rdropout_param\x18l \x01(\x0b\x32\x17.caffe.DropoutParameter\x12\x33\n\x10\x64ummy_data_param\x18m \x01(\x0b\x32\x19.caffe.DummyDataParameter\x12.\n\reltwise_param\x18n \x01(\x0b\x32\x17.caffe.EltwiseParameter\x12\'\n\telu_param\x18\x8c\x01 \x01(\x0b\x32\x13.caffe.ELUParameter\x12+\n\x0b\x65mbed_param\x18\x89\x01 \x01(\x0b\x32\x15.caffe.EmbedParameter\x12&\n\texp_param\x18o \x01(\x0b\x32\x13.caffe.ExpParameter\x12/\n\rflatten_param\x18\x87\x01 \x01(\x0b\x32\x17.caffe.FlattenParameter\x12\x31\n\x0fhdf5_data_param\x18p \x01(\x0b\x32\x18.caffe.HDF5DataParameter\x12\x35\n\x11hdf5_output_param\x18q \x01(\x0b\x32\x1a.caffe.HDF5OutputParameter\x12\x33\n\x10hinge_loss_param\x18r \x01(\x0b\x32\x19.caffe.HingeLossParameter\x12\x33\n\x10image_data_param\x18s \x01(\x0b\x32\x19.caffe.ImageDataParameter\x12\x39\n\x13infogain_loss_param\x18t \x01(\x0b\x32\x1c.caffe.InfogainLossParameter\x12\x39\n\x13inner_product_param\x18u \x01(\x0b\x32\x1c.caffe.InnerProductParameter\x12+\n\x0binput_param\x18\x8f\x01 \x01(\x0b\x32\x15.caffe.InputParameter\x12\'\n\tlog_param\x18\x86\x01 \x01(\x0b\x32\x13.caffe.LogParameter\x12&\n\tlrn_param\x18v \x01(\x0b\x32\x13.caffe.LRNParameter\x12\x35\n\x11memory_data_param\x18w \x01(\x0b\x32\x1a.caffe.MemoryDataParameter\x12:\n\x13multibox_loss_param\x18\xc9\x01 \x01(\x0b\x32\x1c.caffe.MultiBoxLossParameter\x12&\n\tmvn_param\x18x \x01(\x0b\x32\x13.caffe.MVNParameter\x12.\n\nnorm_param\x18\xce\x01 \x01(\x0b\x32\x19.caffe.NormalizeParameter\x12\x33\n\x0fparameter_param\x18\x91\x01 \x01(\x0b\x32\x19.caffe.ParameterParameter\x12/\n\rpermute_param\x18\xca\x01 \x01(\x0b\x32\x17.caffe.PermuteParameter\x12.\n\rpooling_param\x18y \x01(\x0b\x32\x17.caffe.PoolingParameter\x12*\n\x0bpower_param\x18z \x01(\x0b\x32\x15.caffe.PowerParameter\x12+\n\x0bprelu_param\x18\x83\x01 \x01(\x0b\x32\x15.caffe.PReLUParameter\x12\x32\n\x0fprior_box_param\x18\xcb\x01 \x01(\x0b\x32\x18.caffe.PriorBoxParameter\x12-\n\x0cpython_param\x18\x82\x01 \x01(\x0b\x32\x16.caffe.PythonParameter\x12\x33\n\x0frecurrent_param\x18\x92\x01 \x01(\x0b\x32\x19.caffe.RecurrentParameter\x12\x33\n\x0freduction_param\x18\x88\x01 \x01(\x0b\x32\x19.caffe.ReductionParameter\x12(\n\nrelu_param\x18{ \x01(\x0b\x32\x14.caffe.ReLUParameter\x12/\n\rreshape_param\x18\x85\x01 \x01(\x0b\x32\x17.caffe.ReshapeParameter\x12+\n\x0bscale_param\x18\x8e\x01 \x01(\x0b\x32\x15.caffe.ScaleParameter\x12>\n\x15shuffle_channel_param\x18\xd0\x01 \x01(\x0b\x32\x1e.caffe.ShuffleChannelParameter\x12.\n\rsigmoid_param\x18| \x01(\x0b\x32\x17.caffe.SigmoidParameter\x12.\n\rsoftmax_param\x18} \x01(\x0b\x32\x17.caffe.SoftmaxParameter\x12\'\n\tspp_param\x18\x84\x01 \x01(\x0b\x32\x13.caffe.SPPParameter\x12*\n\x0bslice_param\x18~ \x01(\x0b\x32\x15.caffe.SliceParameter\x12(\n\ntanh_param\x18\x7f \x01(\x0b\x32\x14.caffe.TanHParameter\x12\x33\n\x0fthreshold_param\x18\x80\x01 \x01(\x0b\x32\x19.caffe.ThresholdParameter\x12)\n\ntile_param\x18\x8a\x01 \x01(\x0b\x32\x14.caffe.TileParameter\x12\x34\n\x10video_data_param\x18\xcf\x01 \x01(\x0b\x32\x19.caffe.VideoDataParameter\x12\x36\n\x11window_data_param\x18\x81\x01 \x01(\x0b\x32\x1a.caffe.WindowDataParameter\"\xca\x03\n\x17TransformationParameter\x12\x10\n\x05scale\x18\x01 \x01(\x02:\x01\x31\x12\x15\n\x06mirror\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x14\n\tcrop_size\x18\x03 \x01(\r:\x01\x30\x12\x11\n\x06\x63rop_h\x18\x0b \x01(\r:\x01\x30\x12\x11\n\x06\x63rop_w\x18\x0c \x01(\r:\x01\x30\x12\x11\n\tmean_file\x18\x04 \x01(\t\x12\x12\n\nmean_value\x18\x05 \x03(\x02\x12\x1a\n\x0b\x66orce_color\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x19\n\nforce_gray\x18\x07 \x01(\x08:\x05\x66\x61lse\x12,\n\x0cresize_param\x18\x08 \x01(\x0b\x32\x16.caffe.ResizeParameter\x12*\n\x0bnoise_param\x18\t \x01(\x0b\x32\x15.caffe.NoiseParameter\x12\x31\n\rdistort_param\x18\r \x01(\x0b\x32\x1a.caffe.DistortionParameter\x12/\n\x0c\x65xpand_param\x18\x0e \x01(\x0b\x32\x19.caffe.ExpansionParameter\x12.\n\x0f\x65mit_constraint\x18\n \x01(\x0b\x32\x15.caffe.EmitConstraint\"\x90\x04\n\x0fResizeParameter\x12\x0f\n\x04prob\x18\x01 \x01(\x02:\x01\x31\x12=\n\x0bresize_mode\x18\x02 \x01(\x0e\x32\".caffe.ResizeParameter.Resize_mode:\x04WARP\x12\x11\n\x06height\x18\x03 \x01(\r:\x01\x30\x12\x10\n\x05width\x18\x04 \x01(\r:\x01\x30\x12\x17\n\x0cheight_scale\x18\x08 \x01(\r:\x01\x30\x12\x16\n\x0bwidth_scale\x18\t \x01(\r:\x01\x30\x12;\n\x08pad_mode\x18\x05 \x01(\x0e\x32\x1f.caffe.ResizeParameter.Pad_mode:\x08\x43ONSTANT\x12\x11\n\tpad_value\x18\x06 \x03(\x02\x12\x37\n\x0binterp_mode\x18\x07 \x03(\x0e\x32\".caffe.ResizeParameter.Interp_mode\"G\n\x0bResize_mode\x12\x08\n\x04WARP\x10\x01\x12\x12\n\x0e\x46IT_SMALL_SIZE\x10\x02\x12\x1a\n\x16\x46IT_LARGE_SIZE_AND_PAD\x10\x03\":\n\x08Pad_mode\x12\x0c\n\x08\x43ONSTANT\x10\x01\x12\x0c\n\x08MIRRORED\x10\x02\x12\x12\n\x0eREPEAT_NEAREST\x10\x03\"I\n\x0bInterp_mode\x12\n\n\x06LINEAR\x10\x01\x12\x08\n\x04\x41REA\x10\x02\x12\x0b\n\x07NEAREST\x10\x03\x12\t\n\x05\x43UBIC\x10\x04\x12\x0c\n\x08LANCZOS4\x10\x05\"9\n\x13SaltPepperParameter\x12\x13\n\x08\x66raction\x18\x01 \x01(\x02:\x01\x30\x12\r\n\x05value\x18\x02 \x03(\x02\"\xee\x02\n\x0eNoiseParameter\x12\x0f\n\x04prob\x18\x01 \x01(\x02:\x01\x30\x12\x16\n\x07hist_eq\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x16\n\x07inverse\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ndecolorize\x18\x04 \x01(\x08:\x05\x66\x61lse\x12\x19\n\ngauss_blur\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x10\n\x04jpeg\x18\x06 \x01(\x02:\x02-1\x12\x18\n\tposterize\x18\x07 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x05\x65rode\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\x19\n\nsaltpepper\x18\t \x01(\x08:\x05\x66\x61lse\x12\x34\n\x10saltpepper_param\x18\n \x01(\x0b\x32\x1a.caffe.SaltPepperParameter\x12\x14\n\x05\x63lahe\x18\x0b \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x63onvert_to_hsv\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x1d\n\x0e\x63onvert_to_lab\x18\r \x01(\x08:\x05\x66\x61lse\"\xbd\x02\n\x13\x44istortionParameter\x12\x1a\n\x0f\x62rightness_prob\x18\x01 \x01(\x02:\x01\x30\x12\x1b\n\x10\x62rightness_delta\x18\x02 \x01(\x02:\x01\x30\x12\x18\n\rcontrast_prob\x18\x03 \x01(\x02:\x01\x30\x12\x19\n\x0e\x63ontrast_lower\x18\x04 \x01(\x02:\x01\x30\x12\x19\n\x0e\x63ontrast_upper\x18\x05 \x01(\x02:\x01\x30\x12\x13\n\x08hue_prob\x18\x06 \x01(\x02:\x01\x30\x12\x14\n\thue_delta\x18\x07 \x01(\x02:\x01\x30\x12\x1a\n\x0fsaturation_prob\x18\x08 \x01(\x02:\x01\x30\x12\x1b\n\x10saturation_lower\x18\t \x01(\x02:\x01\x30\x12\x1b\n\x10saturation_upper\x18\n \x01(\x02:\x01\x30\x12\x1c\n\x11random_order_prob\x18\x0b \x01(\x02:\x01\x30\"B\n\x12\x45xpansionParameter\x12\x0f\n\x04prob\x18\x01 \x01(\x02:\x01\x31\x12\x1b\n\x10max_expand_ratio\x18\x02 \x01(\x02:\x01\x31\"\xc2\x01\n\rLossParameter\x12\x14\n\x0cignore_label\x18\x01 \x01(\x05\x12\x44\n\rnormalization\x18\x03 \x01(\x0e\x32&.caffe.LossParameter.NormalizationMode:\x05VALID\x12\x11\n\tnormalize\x18\x02 \x01(\x08\"B\n\x11NormalizationMode\x12\x08\n\x04\x46ULL\x10\x00\x12\t\n\x05VALID\x10\x01\x12\x0e\n\nBATCH_SIZE\x10\x02\x12\x08\n\x04NONE\x10\x03\"L\n\x11\x41\x63\x63uracyParameter\x12\x10\n\x05top_k\x18\x01 \x01(\r:\x01\x31\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\x12\x14\n\x0cignore_label\x18\x03 \x01(\x05\"\x95\x01\n\x16\x41nnotatedDataParameter\x12*\n\rbatch_sampler\x18\x01 \x03(\x0b\x32\x13.caffe.BatchSampler\x12\x16\n\x0elabel_map_file\x18\x02 \x01(\t\x12\x37\n\tanno_type\x18\x03 \x01(\x0e\x32$.caffe.AnnotatedDatum.AnnotationType\"M\n\x0f\x41rgMaxParameter\x12\x1a\n\x0bout_max_val\x18\x01 \x01(\x08:\x05\x66\x61lse\x12\x10\n\x05top_k\x18\x02 \x01(\r:\x01\x31\x12\x0c\n\x04\x61xis\x18\x03 \x01(\x05\"9\n\x0f\x43oncatParameter\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\x12\x15\n\nconcat_dim\x18\x01 \x01(\r:\x01\x31\"j\n\x12\x42\x61tchNormParameter\x12\x18\n\x10use_global_stats\x18\x01 \x01(\x08\x12&\n\x17moving_average_fraction\x18\x02 \x01(\x02:\x05\x30.999\x12\x12\n\x03\x65ps\x18\x03 \x01(\x02:\x05\x31\x65-05\"]\n\rBiasParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\x13\n\x08num_axes\x18\x02 \x01(\x05:\x01\x31\x12&\n\x06\x66iller\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\"L\n\x18\x43ontrastiveLossParameter\x12\x11\n\x06margin\x18\x01 \x01(\x02:\x01\x31\x12\x1d\n\x0elegacy_version\x18\x02 \x01(\x08:\x05\x66\x61lse\"\xfc\x03\n\x14\x43onvolutionParameter\x12\x12\n\nnum_output\x18\x01 \x01(\r\x12\x17\n\tbias_term\x18\x02 \x01(\x08:\x04true\x12\x0b\n\x03pad\x18\x03 \x03(\r\x12\x13\n\x0bkernel_size\x18\x04 \x03(\r\x12\x0e\n\x06stride\x18\x06 \x03(\r\x12\x10\n\x08\x64ilation\x18\x12 \x03(\r\x12\x10\n\x05pad_h\x18\t \x01(\r:\x01\x30\x12\x10\n\x05pad_w\x18\n \x01(\r:\x01\x30\x12\x10\n\x08kernel_h\x18\x0b \x01(\r\x12\x10\n\x08kernel_w\x18\x0c \x01(\r\x12\x10\n\x08stride_h\x18\r \x01(\r\x12\x10\n\x08stride_w\x18\x0e \x01(\r\x12\x10\n\x05group\x18\x05 \x01(\r:\x01\x31\x12-\n\rweight_filler\x18\x07 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x08 \x01(\x0b\x32\x16.caffe.FillerParameter\x12;\n\x06\x65ngine\x18\x0f \x01(\x0e\x32\".caffe.ConvolutionParameter.Engine:\x07\x44\x45\x46\x41ULT\x12\x0f\n\x04\x61xis\x18\x10 \x01(\x05:\x01\x31\x12\x1e\n\x0f\x66orce_nd_im2col\x18\x11 \x01(\x08:\x05\x66\x61lse\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"0\n\rCropParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x32\x12\x0e\n\x06offset\x18\x02 \x03(\r\"\xa4\x02\n\rDataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x12\n\nbatch_size\x18\x04 \x01(\r\x12\x14\n\trand_skip\x18\x07 \x01(\r:\x01\x30\x12\x31\n\x07\x62\x61\x63kend\x18\x08 \x01(\x0e\x32\x17.caffe.DataParameter.DB:\x07LEVELDB\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x11\n\tmean_file\x18\x03 \x01(\t\x12\x14\n\tcrop_size\x18\x05 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\"\n\x13\x66orce_encoded_color\x18\t \x01(\x08:\x05\x66\x61lse\x12\x13\n\x08prefetch\x18\n \x01(\r:\x01\x34\"\x1b\n\x02\x44\x42\x12\x0b\n\x07LEVELDB\x10\x00\x12\x08\n\x04LMDB\x10\x01\"\xdc\x01\n\x1a\x44\x65tectionEvaluateParameter\x12\x13\n\x0bnum_classes\x18\x01 \x01(\r\x12\x1e\n\x13\x62\x61\x63kground_label_id\x18\x02 \x01(\r:\x01\x30\x12\x1e\n\x11overlap_threshold\x18\x03 \x01(\x02:\x03\x30.5\x12#\n\x15\x65valuate_difficult_gt\x18\x04 \x01(\x08:\x04true\x12\x16\n\x0ename_size_file\x18\x05 \x01(\t\x12,\n\x0cresize_param\x18\x06 \x01(\x0b\x32\x16.caffe.ResizeParameter\"[\n\x1eNonMaximumSuppressionParameter\x12\x1a\n\rnms_threshold\x18\x01 \x01(\x02:\x03\x30.3\x12\r\n\x05top_k\x18\x02 \x01(\x05\x12\x0e\n\x03\x65ta\x18\x03 \x01(\x02:\x01\x31\"\xd8\x01\n\x13SaveOutputParameter\x12\x18\n\x10output_directory\x18\x01 \x01(\t\x12\x1a\n\x12output_name_prefix\x18\x02 \x01(\t\x12\x15\n\routput_format\x18\x03 \x01(\t\x12\x16\n\x0elabel_map_file\x18\x04 \x01(\t\x12\x16\n\x0ename_size_file\x18\x05 \x01(\t\x12\x16\n\x0enum_test_image\x18\x06 \x01(\r\x12,\n\x0cresize_param\x18\x07 \x01(\x0b\x32\x16.caffe.ResizeParameter\"\xc7\x03\n\x18\x44\x65tectionOutputParameter\x12\x13\n\x0bnum_classes\x18\x01 \x01(\r\x12\x1c\n\x0eshare_location\x18\x02 \x01(\x08:\x04true\x12\x1e\n\x13\x62\x61\x63kground_label_id\x18\x03 \x01(\x05:\x01\x30\x12\x38\n\tnms_param\x18\x04 \x01(\x0b\x32%.caffe.NonMaximumSuppressionParameter\x12\x35\n\x11save_output_param\x18\x05 \x01(\x0b\x32\x1a.caffe.SaveOutputParameter\x12<\n\tcode_type\x18\x06 \x01(\x0e\x32!.caffe.PriorBoxParameter.CodeType:\x06\x43ORNER\x12)\n\x1avariance_encoded_in_target\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\x16\n\nkeep_top_k\x18\x07 \x01(\x05:\x02-1\x12\x1c\n\x14\x63onfidence_threshold\x18\t \x01(\x02\x12\x18\n\tvisualize\x18\n \x01(\x08:\x05\x66\x61lse\x12\x1b\n\x13visualize_threshold\x18\x0b \x01(\x02\x12\x11\n\tsave_file\x18\x0c \x01(\t\".\n\x10\x44ropoutParameter\x12\x1a\n\rdropout_ratio\x18\x01 \x01(\x02:\x03\x30.5\"\xa0\x01\n\x12\x44ummyDataParameter\x12+\n\x0b\x64\x61ta_filler\x18\x01 \x03(\x0b\x32\x16.caffe.FillerParameter\x12\x1f\n\x05shape\x18\x06 \x03(\x0b\x32\x10.caffe.BlobShape\x12\x0b\n\x03num\x18\x02 \x03(\r\x12\x10\n\x08\x63hannels\x18\x03 \x03(\r\x12\x0e\n\x06height\x18\x04 \x03(\r\x12\r\n\x05width\x18\x05 \x03(\r\"\xa5\x01\n\x10\x45ltwiseParameter\x12\x39\n\toperation\x18\x01 \x01(\x0e\x32!.caffe.EltwiseParameter.EltwiseOp:\x03SUM\x12\r\n\x05\x63oeff\x18\x02 \x03(\x02\x12\x1e\n\x10stable_prod_grad\x18\x03 \x01(\x08:\x04true\"\'\n\tEltwiseOp\x12\x08\n\x04PROD\x10\x00\x12\x07\n\x03SUM\x10\x01\x12\x07\n\x03MAX\x10\x02\" \n\x0c\x45LUParameter\x12\x10\n\x05\x61lpha\x18\x01 \x01(\x02:\x01\x31\"\xac\x01\n\x0e\x45mbedParameter\x12\x12\n\nnum_output\x18\x01 \x01(\r\x12\x11\n\tinput_dim\x18\x02 \x01(\r\x12\x17\n\tbias_term\x18\x03 \x01(\x08:\x04true\x12-\n\rweight_filler\x18\x04 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x05 \x01(\x0b\x32\x16.caffe.FillerParameter\"D\n\x0c\x45xpParameter\x12\x10\n\x04\x62\x61se\x18\x01 \x01(\x02:\x02-1\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x10\n\x05shift\x18\x03 \x01(\x02:\x01\x30\"9\n\x10\x46lattenParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\x14\n\x08\x65nd_axis\x18\x02 \x01(\x05:\x02-1\"O\n\x11HDF5DataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x12\n\nbatch_size\x18\x02 \x01(\r\x12\x16\n\x07shuffle\x18\x03 \x01(\x08:\x05\x66\x61lse\"(\n\x13HDF5OutputParameter\x12\x11\n\tfile_name\x18\x01 \x01(\t\"^\n\x12HingeLossParameter\x12\x30\n\x04norm\x18\x01 \x01(\x0e\x32\x1e.caffe.HingeLossParameter.Norm:\x02L1\"\x16\n\x04Norm\x12\x06\n\x02L1\x10\x01\x12\x06\n\x02L2\x10\x02\"\x97\x02\n\x12ImageDataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x15\n\nbatch_size\x18\x04 \x01(\r:\x01\x31\x12\x14\n\trand_skip\x18\x07 \x01(\r:\x01\x30\x12\x16\n\x07shuffle\x18\x08 \x01(\x08:\x05\x66\x61lse\x12\x15\n\nnew_height\x18\t \x01(\r:\x01\x30\x12\x14\n\tnew_width\x18\n \x01(\r:\x01\x30\x12\x16\n\x08is_color\x18\x0b \x01(\x08:\x04true\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x11\n\tmean_file\x18\x03 \x01(\t\x12\x14\n\tcrop_size\x18\x05 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x15\n\x0broot_folder\x18\x0c \x01(\t:\x00\"\'\n\x15InfogainLossParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\"\xcb\x01\n\x15InnerProductParameter\x12\x12\n\nnum_output\x18\x01 \x01(\r\x12\x17\n\tbias_term\x18\x02 \x01(\x08:\x04true\x12-\n\rweight_filler\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x04 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x0f\n\x04\x61xis\x18\x05 \x01(\x05:\x01\x31\x12\x18\n\ttranspose\x18\x06 \x01(\x08:\x05\x66\x61lse\"1\n\x0eInputParameter\x12\x1f\n\x05shape\x18\x01 \x03(\x0b\x32\x10.caffe.BlobShape\"D\n\x0cLogParameter\x12\x10\n\x04\x62\x61se\x18\x01 \x01(\x02:\x02-1\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x10\n\x05shift\x18\x03 \x01(\x02:\x01\x30\"\xb8\x02\n\x0cLRNParameter\x12\x15\n\nlocal_size\x18\x01 \x01(\r:\x01\x35\x12\x10\n\x05\x61lpha\x18\x02 \x01(\x02:\x01\x31\x12\x12\n\x04\x62\x65ta\x18\x03 \x01(\x02:\x04\x30.75\x12\x44\n\x0bnorm_region\x18\x04 \x01(\x0e\x32\x1e.caffe.LRNParameter.NormRegion:\x0f\x41\x43ROSS_CHANNELS\x12\x0c\n\x01k\x18\x05 \x01(\x02:\x01\x31\x12\x33\n\x06\x65ngine\x18\x06 \x01(\x0e\x32\x1a.caffe.LRNParameter.Engine:\x07\x44\x45\x46\x41ULT\"5\n\nNormRegion\x12\x13\n\x0f\x41\x43ROSS_CHANNELS\x10\x00\x12\x12\n\x0eWITHIN_CHANNEL\x10\x01\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"Z\n\x13MemoryDataParameter\x12\x12\n\nbatch_size\x18\x01 \x01(\r\x12\x10\n\x08\x63hannels\x18\x02 \x01(\r\x12\x0e\n\x06height\x18\x03 \x01(\r\x12\r\n\x05width\x18\x04 \x01(\r\"\xe8\x08\n\x15MultiBoxLossParameter\x12J\n\rloc_loss_type\x18\x01 \x01(\x0e\x32(.caffe.MultiBoxLossParameter.LocLossType:\tSMOOTH_L1\x12J\n\x0e\x63onf_loss_type\x18\x02 \x01(\x0e\x32).caffe.MultiBoxLossParameter.ConfLossType:\x07SOFTMAX\x12\x15\n\nloc_weight\x18\x03 \x01(\x02:\x01\x31\x12\x13\n\x0bnum_classes\x18\x04 \x01(\r\x12\x1c\n\x0eshare_location\x18\x05 \x01(\x08:\x04true\x12J\n\nmatch_type\x18\x06 \x01(\x0e\x32&.caffe.MultiBoxLossParameter.MatchType:\x0ePER_PREDICTION\x12\x1e\n\x11overlap_threshold\x18\x07 \x01(\x02:\x03\x30.5\x12$\n\x16use_prior_for_matching\x18\x08 \x01(\x08:\x04true\x12\x1e\n\x13\x62\x61\x63kground_label_id\x18\t \x01(\r:\x01\x30\x12\x1e\n\x10use_difficult_gt\x18\n \x01(\x08:\x04true\x12\x15\n\rdo_neg_mining\x18\x0b \x01(\x08\x12\x18\n\rneg_pos_ratio\x18\x0c \x01(\x02:\x01\x33\x12\x18\n\x0bneg_overlap\x18\r \x01(\x02:\x03\x30.5\x12<\n\tcode_type\x18\x0e \x01(\x0e\x32!.caffe.PriorBoxParameter.CodeType:\x06\x43ORNER\x12(\n\x19\x65ncode_variance_in_target\x18\x10 \x01(\x08:\x05\x66\x61lse\x12%\n\x16map_object_to_agnostic\x18\x11 \x01(\x08:\x05\x66\x61lse\x12)\n\x1aignore_cross_boundary_bbox\x18\x12 \x01(\x08:\x05\x66\x61lse\x12\x18\n\tbp_inside\x18\x13 \x01(\x08:\x05\x66\x61lse\x12J\n\x0bmining_type\x18\x14 \x01(\x0e\x32\'.caffe.MultiBoxLossParameter.MiningType:\x0cMAX_NEGATIVE\x12\x38\n\tnms_param\x18\x15 \x01(\x0b\x32%.caffe.NonMaximumSuppressionParameter\x12\x17\n\x0bsample_size\x18\x16 \x01(\x05:\x02\x36\x34\x12 \n\x11use_prior_for_nms\x18\x17 \x01(\x08:\x05\x66\x61lse\"$\n\x0bLocLossType\x12\x06\n\x02L2\x10\x00\x12\r\n\tSMOOTH_L1\x10\x01\")\n\x0c\x43onfLossType\x12\x0b\n\x07SOFTMAX\x10\x00\x12\x0c\n\x08LOGISTIC\x10\x01\".\n\tMatchType\x12\r\n\tBIPARTITE\x10\x00\x12\x12\n\x0ePER_PREDICTION\x10\x01\":\n\nMiningType\x12\x08\n\x04NONE\x10\x00\x12\x10\n\x0cMAX_NEGATIVE\x10\x01\x12\x10\n\x0cHARD_EXAMPLE\x10\x02\"d\n\x0cMVNParameter\x12 \n\x12normalize_variance\x18\x01 \x01(\x08:\x04true\x12\x1e\n\x0f\x61\x63ross_channels\x18\x02 \x01(\x08:\x05\x66\x61lse\x12\x12\n\x03\x65ps\x18\x03 \x01(\x02:\x05\x31\x65-09\"\x92\x01\n\x12NormalizeParameter\x12\x1c\n\x0e\x61\x63ross_spatial\x18\x01 \x01(\x08:\x04true\x12,\n\x0cscale_filler\x18\x02 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x1c\n\x0e\x63hannel_shared\x18\x03 \x01(\x08:\x04true\x12\x12\n\x03\x65ps\x18\x04 \x01(\x02:\x05\x31\x65-10\"5\n\x12ParameterParameter\x12\x1f\n\x05shape\x18\x01 \x01(\x0b\x32\x10.caffe.BlobShape\"!\n\x10PermuteParameter\x12\r\n\x05order\x18\x01 \x03(\r\"\xa2\x03\n\x10PoolingParameter\x12\x35\n\x04pool\x18\x01 \x01(\x0e\x32\".caffe.PoolingParameter.PoolMethod:\x03MAX\x12\x0e\n\x03pad\x18\x04 \x01(\r:\x01\x30\x12\x10\n\x05pad_h\x18\t \x01(\r:\x01\x30\x12\x10\n\x05pad_w\x18\n \x01(\r:\x01\x30\x12\x13\n\x0bkernel_size\x18\x02 \x01(\r\x12\x10\n\x08kernel_h\x18\x05 \x01(\r\x12\x10\n\x08kernel_w\x18\x06 \x01(\r\x12\x11\n\x06stride\x18\x03 \x01(\r:\x01\x31\x12\x10\n\x08stride_h\x18\x07 \x01(\r\x12\x10\n\x08stride_w\x18\x08 \x01(\r\x12\x37\n\x06\x65ngine\x18\x0b \x01(\x0e\x32\x1e.caffe.PoolingParameter.Engine:\x07\x44\x45\x46\x41ULT\x12\x1d\n\x0eglobal_pooling\x18\x0c \x01(\x08:\x05\x66\x61lse\".\n\nPoolMethod\x12\x07\n\x03MAX\x10\x00\x12\x07\n\x03\x41VE\x10\x01\x12\x0e\n\nSTOCHASTIC\x10\x02\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"F\n\x0ePowerParameter\x12\x10\n\x05power\x18\x01 \x01(\x02:\x01\x31\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x10\n\x05shift\x18\x03 \x01(\x02:\x01\x30\"\xb5\x02\n\x11PriorBoxParameter\x12\x10\n\x08min_size\x18\x01 \x03(\x02\x12\x10\n\x08max_size\x18\x02 \x03(\x02\x12\x14\n\x0c\x61spect_ratio\x18\x03 \x03(\x02\x12\x12\n\x04\x66lip\x18\x04 \x01(\x08:\x04true\x12\x13\n\x04\x63lip\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x10\n\x08variance\x18\x06 \x03(\x02\x12\x10\n\x08img_size\x18\x07 \x01(\r\x12\r\n\x05img_h\x18\x08 \x01(\r\x12\r\n\x05img_w\x18\t \x01(\r\x12\x0c\n\x04step\x18\n \x01(\x02\x12\x0e\n\x06step_h\x18\x0b \x01(\x02\x12\x0e\n\x06step_w\x18\x0c \x01(\x02\x12\x13\n\x06offset\x18\r \x01(\x02:\x03\x30.5\"8\n\x08\x43odeType\x12\n\n\x06\x43ORNER\x10\x01\x12\x0f\n\x0b\x43\x45NTER_SIZE\x10\x02\x12\x0f\n\x0b\x43ORNER_SIZE\x10\x03\"g\n\x0fPythonParameter\x12\x0e\n\x06module\x18\x01 \x01(\t\x12\r\n\x05layer\x18\x02 \x01(\t\x12\x13\n\tparam_str\x18\x03 \x01(\t:\x00\x12 \n\x11share_in_parallel\x18\x04 \x01(\x08:\x05\x66\x61lse\"\xc0\x01\n\x12RecurrentParameter\x12\x15\n\nnum_output\x18\x01 \x01(\r:\x01\x30\x12-\n\rweight_filler\x18\x02 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x19\n\ndebug_info\x18\x04 \x01(\x08:\x05\x66\x61lse\x12\x1c\n\rexpose_hidden\x18\x05 \x01(\x08:\x05\x66\x61lse\"\xad\x01\n\x12ReductionParameter\x12=\n\toperation\x18\x01 \x01(\x0e\x32%.caffe.ReductionParameter.ReductionOp:\x03SUM\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x30\x12\x10\n\x05\x63oeff\x18\x03 \x01(\x02:\x01\x31\"5\n\x0bReductionOp\x12\x07\n\x03SUM\x10\x01\x12\x08\n\x04\x41SUM\x10\x02\x12\t\n\x05SUMSQ\x10\x03\x12\x08\n\x04MEAN\x10\x04\"\x8d\x01\n\rReLUParameter\x12\x19\n\x0enegative_slope\x18\x01 \x01(\x02:\x01\x30\x12\x34\n\x06\x65ngine\x18\x02 \x01(\x0e\x32\x1b.caffe.ReLUParameter.Engine:\x07\x44\x45\x46\x41ULT\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"Z\n\x10ReshapeParameter\x12\x1f\n\x05shape\x18\x01 \x01(\x0b\x32\x10.caffe.BlobShape\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x30\x12\x14\n\x08num_axes\x18\x03 \x01(\x05:\x02-1\"\xa5\x01\n\x0eScaleParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\x13\n\x08num_axes\x18\x02 \x01(\x05:\x01\x31\x12&\n\x06\x66iller\x18\x03 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x18\n\tbias_term\x18\x04 \x01(\x08:\x05\x66\x61lse\x12+\n\x0b\x62ias_filler\x18\x05 \x01(\x0b\x32\x16.caffe.FillerParameter\"x\n\x10SigmoidParameter\x12\x37\n\x06\x65ngine\x18\x01 \x01(\x0e\x32\x1e.caffe.SigmoidParameter.Engine:\x07\x44\x45\x46\x41ULT\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"L\n\x0eSliceParameter\x12\x0f\n\x04\x61xis\x18\x03 \x01(\x05:\x01\x31\x12\x13\n\x0bslice_point\x18\x02 \x03(\r\x12\x14\n\tslice_dim\x18\x01 \x01(\r:\x01\x31\"\x89\x01\n\x10SoftmaxParameter\x12\x37\n\x06\x65ngine\x18\x01 \x01(\x0e\x32\x1e.caffe.SoftmaxParameter.Engine:\x07\x44\x45\x46\x41ULT\x12\x0f\n\x04\x61xis\x18\x02 \x01(\x05:\x01\x31\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"r\n\rTanHParameter\x12\x34\n\x06\x65ngine\x18\x01 \x01(\x0e\x32\x1b.caffe.TanHParameter.Engine:\x07\x44\x45\x46\x41ULT\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"/\n\rTileParameter\x12\x0f\n\x04\x61xis\x18\x01 \x01(\x05:\x01\x31\x12\r\n\x05tiles\x18\x02 \x01(\x05\"*\n\x12ThresholdParameter\x12\x14\n\tthreshold\x18\x01 \x01(\x02:\x01\x30\"\xbb\x01\n\x12VideoDataParameter\x12?\n\nvideo_type\x18\x01 \x01(\x0e\x32#.caffe.VideoDataParameter.VideoType:\x06WEBCAM\x12\x14\n\tdevice_id\x18\x02 \x01(\x05:\x01\x30\x12\x12\n\nvideo_file\x18\x03 \x01(\t\x12\x16\n\x0bskip_frames\x18\x04 \x01(\r:\x01\x30\"\"\n\tVideoType\x12\n\n\x06WEBCAM\x10\x00\x12\t\n\x05VIDEO\x10\x01\"\xc1\x02\n\x13WindowDataParameter\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x10\n\x05scale\x18\x02 \x01(\x02:\x01\x31\x12\x11\n\tmean_file\x18\x03 \x01(\t\x12\x12\n\nbatch_size\x18\x04 \x01(\r\x12\x14\n\tcrop_size\x18\x05 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x06 \x01(\x08:\x05\x66\x61lse\x12\x19\n\x0c\x66g_threshold\x18\x07 \x01(\x02:\x03\x30.5\x12\x19\n\x0c\x62g_threshold\x18\x08 \x01(\x02:\x03\x30.5\x12\x19\n\x0b\x66g_fraction\x18\t \x01(\x02:\x04\x30.25\x12\x16\n\x0b\x63ontext_pad\x18\n \x01(\r:\x01\x30\x12\x17\n\tcrop_mode\x18\x0b \x01(\t:\x04warp\x12\x1b\n\x0c\x63\x61\x63he_images\x18\x0c \x01(\x08:\x05\x66\x61lse\x12\x15\n\x0broot_folder\x18\r \x01(\t:\x00\"\xeb\x01\n\x0cSPPParameter\x12\x16\n\x0epyramid_height\x18\x01 \x01(\r\x12\x31\n\x04pool\x18\x02 \x01(\x0e\x32\x1e.caffe.SPPParameter.PoolMethod:\x03MAX\x12\x33\n\x06\x65ngine\x18\x06 \x01(\x0e\x32\x1a.caffe.SPPParameter.Engine:\x07\x44\x45\x46\x41ULT\".\n\nPoolMethod\x12\x07\n\x03MAX\x10\x00\x12\x07\n\x03\x41VE\x10\x01\x12\x0e\n\nSTOCHASTIC\x10\x02\"+\n\x06\x45ngine\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\t\n\x05\x43\x41\x46\x46\x45\x10\x01\x12\t\n\x05\x43UDNN\x10\x02\"\xe0\x13\n\x10V1LayerParameter\x12\x0e\n\x06\x62ottom\x18\x02 \x03(\t\x12\x0b\n\x03top\x18\x03 \x03(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12$\n\x07include\x18 \x03(\x0b\x32\x13.caffe.NetStateRule\x12$\n\x07\x65xclude\x18! \x03(\x0b\x32\x13.caffe.NetStateRule\x12/\n\x04type\x18\x05 \x01(\x0e\x32!.caffe.V1LayerParameter.LayerType\x12\x1f\n\x05\x62lobs\x18\x06 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x0e\n\x05param\x18\xe9\x07 \x03(\t\x12>\n\x0f\x62lob_share_mode\x18\xea\x07 \x03(\x0e\x32$.caffe.V1LayerParameter.DimCheckMode\x12\x10\n\x08\x62lobs_lr\x18\x07 \x03(\x02\x12\x14\n\x0cweight_decay\x18\x08 \x03(\x02\x12\x13\n\x0bloss_weight\x18# \x03(\x02\x12\x30\n\x0e\x61\x63\x63uracy_param\x18\x1b \x01(\x0b\x32\x18.caffe.AccuracyParameter\x12,\n\x0c\x61rgmax_param\x18\x17 \x01(\x0b\x32\x16.caffe.ArgMaxParameter\x12,\n\x0c\x63oncat_param\x18\t \x01(\x0b\x32\x16.caffe.ConcatParameter\x12?\n\x16\x63ontrastive_loss_param\x18( \x01(\x0b\x32\x1f.caffe.ContrastiveLossParameter\x12\x36\n\x11\x63onvolution_param\x18\n \x01(\x0b\x32\x1b.caffe.ConvolutionParameter\x12(\n\ndata_param\x18\x0b \x01(\x0b\x32\x14.caffe.DataParameter\x12.\n\rdropout_param\x18\x0c \x01(\x0b\x32\x17.caffe.DropoutParameter\x12\x33\n\x10\x64ummy_data_param\x18\x1a \x01(\x0b\x32\x19.caffe.DummyDataParameter\x12.\n\reltwise_param\x18\x18 \x01(\x0b\x32\x17.caffe.EltwiseParameter\x12&\n\texp_param\x18) \x01(\x0b\x32\x13.caffe.ExpParameter\x12\x31\n\x0fhdf5_data_param\x18\r \x01(\x0b\x32\x18.caffe.HDF5DataParameter\x12\x35\n\x11hdf5_output_param\x18\x0e \x01(\x0b\x32\x1a.caffe.HDF5OutputParameter\x12\x33\n\x10hinge_loss_param\x18\x1d \x01(\x0b\x32\x19.caffe.HingeLossParameter\x12\x33\n\x10image_data_param\x18\x0f \x01(\x0b\x32\x19.caffe.ImageDataParameter\x12\x39\n\x13infogain_loss_param\x18\x10 \x01(\x0b\x32\x1c.caffe.InfogainLossParameter\x12\x39\n\x13inner_product_param\x18\x11 \x01(\x0b\x32\x1c.caffe.InnerProductParameter\x12&\n\tlrn_param\x18\x12 \x01(\x0b\x32\x13.caffe.LRNParameter\x12\x35\n\x11memory_data_param\x18\x16 \x01(\x0b\x32\x1a.caffe.MemoryDataParameter\x12&\n\tmvn_param\x18\" \x01(\x0b\x32\x13.caffe.MVNParameter\x12.\n\rpooling_param\x18\x13 \x01(\x0b\x32\x17.caffe.PoolingParameter\x12*\n\x0bpower_param\x18\x15 \x01(\x0b\x32\x15.caffe.PowerParameter\x12(\n\nrelu_param\x18\x1e \x01(\x0b\x32\x14.caffe.ReLUParameter\x12.\n\rsigmoid_param\x18& \x01(\x0b\x32\x17.caffe.SigmoidParameter\x12.\n\rsoftmax_param\x18\' \x01(\x0b\x32\x17.caffe.SoftmaxParameter\x12*\n\x0bslice_param\x18\x1f \x01(\x0b\x32\x15.caffe.SliceParameter\x12(\n\ntanh_param\x18% \x01(\x0b\x32\x14.caffe.TanHParameter\x12\x32\n\x0fthreshold_param\x18\x19 \x01(\x0b\x32\x19.caffe.ThresholdParameter\x12\x35\n\x11window_data_param\x18\x14 \x01(\x0b\x32\x1a.caffe.WindowDataParameter\x12\x37\n\x0ftransform_param\x18$ \x01(\x0b\x32\x1e.caffe.TransformationParameter\x12(\n\nloss_param\x18* \x01(\x0b\x32\x14.caffe.LossParameter\x12&\n\x05layer\x18\x01 \x01(\x0b\x32\x17.caffe.V0LayerParameter\"\xd8\x04\n\tLayerType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06\x41\x42SVAL\x10#\x12\x0c\n\x08\x41\x43\x43URACY\x10\x01\x12\n\n\x06\x41RGMAX\x10\x1e\x12\x08\n\x04\x42NLL\x10\x02\x12\n\n\x06\x43ONCAT\x10\x03\x12\x14\n\x10\x43ONTRASTIVE_LOSS\x10%\x12\x0f\n\x0b\x43ONVOLUTION\x10\x04\x12\x08\n\x04\x44\x41TA\x10\x05\x12\x11\n\rDECONVOLUTION\x10\'\x12\x0b\n\x07\x44ROPOUT\x10\x06\x12\x0e\n\nDUMMY_DATA\x10 \x12\x12\n\x0e\x45UCLIDEAN_LOSS\x10\x07\x12\x0b\n\x07\x45LTWISE\x10\x19\x12\x07\n\x03\x45XP\x10&\x12\x0b\n\x07\x46LATTEN\x10\x08\x12\r\n\tHDF5_DATA\x10\t\x12\x0f\n\x0bHDF5_OUTPUT\x10\n\x12\x0e\n\nHINGE_LOSS\x10\x1c\x12\n\n\x06IM2COL\x10\x0b\x12\x0e\n\nIMAGE_DATA\x10\x0c\x12\x11\n\rINFOGAIN_LOSS\x10\r\x12\x11\n\rINNER_PRODUCT\x10\x0e\x12\x07\n\x03LRN\x10\x0f\x12\x0f\n\x0bMEMORY_DATA\x10\x1d\x12\x1d\n\x19MULTINOMIAL_LOGISTIC_LOSS\x10\x10\x12\x07\n\x03MVN\x10\"\x12\x0b\n\x07POOLING\x10\x11\x12\t\n\x05POWER\x10\x1a\x12\x08\n\x04RELU\x10\x12\x12\x0b\n\x07SIGMOID\x10\x13\x12\x1e\n\x1aSIGMOID_CROSS_ENTROPY_LOSS\x10\x1b\x12\x0b\n\x07SILENCE\x10$\x12\x0b\n\x07SOFTMAX\x10\x14\x12\x10\n\x0cSOFTMAX_LOSS\x10\x15\x12\t\n\x05SPLIT\x10\x16\x12\t\n\x05SLICE\x10!\x12\x08\n\x04TANH\x10\x17\x12\x0f\n\x0bWINDOW_DATA\x10\x18\x12\r\n\tTHRESHOLD\x10\x1f\"*\n\x0c\x44imCheckMode\x12\n\n\x06STRICT\x10\x00\x12\x0e\n\nPERMISSIVE\x10\x01\"\xfd\x07\n\x10V0LayerParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x12\n\nnum_output\x18\x03 \x01(\r\x12\x16\n\x08\x62iasterm\x18\x04 \x01(\x08:\x04true\x12-\n\rweight_filler\x18\x05 \x01(\x0b\x32\x16.caffe.FillerParameter\x12+\n\x0b\x62ias_filler\x18\x06 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x0e\n\x03pad\x18\x07 \x01(\r:\x01\x30\x12\x12\n\nkernelsize\x18\x08 \x01(\r\x12\x10\n\x05group\x18\t \x01(\r:\x01\x31\x12\x11\n\x06stride\x18\n \x01(\r:\x01\x31\x12\x35\n\x04pool\x18\x0b \x01(\x0e\x32\".caffe.V0LayerParameter.PoolMethod:\x03MAX\x12\x1a\n\rdropout_ratio\x18\x0c \x01(\x02:\x03\x30.5\x12\x15\n\nlocal_size\x18\r \x01(\r:\x01\x35\x12\x10\n\x05\x61lpha\x18\x0e \x01(\x02:\x01\x31\x12\x12\n\x04\x62\x65ta\x18\x0f \x01(\x02:\x04\x30.75\x12\x0c\n\x01k\x18\x16 \x01(\x02:\x01\x31\x12\x0e\n\x06source\x18\x10 \x01(\t\x12\x10\n\x05scale\x18\x11 \x01(\x02:\x01\x31\x12\x10\n\x08meanfile\x18\x12 \x01(\t\x12\x11\n\tbatchsize\x18\x13 \x01(\r\x12\x13\n\x08\x63ropsize\x18\x14 \x01(\r:\x01\x30\x12\x15\n\x06mirror\x18\x15 \x01(\x08:\x05\x66\x61lse\x12\x1f\n\x05\x62lobs\x18\x32 \x03(\x0b\x32\x10.caffe.BlobProto\x12\x10\n\x08\x62lobs_lr\x18\x33 \x03(\x02\x12\x14\n\x0cweight_decay\x18\x34 \x03(\x02\x12\x14\n\trand_skip\x18\x35 \x01(\r:\x01\x30\x12\x1d\n\x10\x64\x65t_fg_threshold\x18\x36 \x01(\x02:\x03\x30.5\x12\x1d\n\x10\x64\x65t_bg_threshold\x18\x37 \x01(\x02:\x03\x30.5\x12\x1d\n\x0f\x64\x65t_fg_fraction\x18\x38 \x01(\x02:\x04\x30.25\x12\x1a\n\x0f\x64\x65t_context_pad\x18: \x01(\r:\x01\x30\x12\x1b\n\rdet_crop_mode\x18; \x01(\t:\x04warp\x12\x12\n\x07new_num\x18< \x01(\x05:\x01\x30\x12\x17\n\x0cnew_channels\x18= \x01(\x05:\x01\x30\x12\x15\n\nnew_height\x18> \x01(\x05:\x01\x30\x12\x14\n\tnew_width\x18? \x01(\x05:\x01\x30\x12\x1d\n\x0eshuffle_images\x18@ \x01(\x08:\x05\x66\x61lse\x12\x15\n\nconcat_dim\x18\x41 \x01(\r:\x01\x31\x12\x36\n\x11hdf5_output_param\x18\xe9\x07 \x01(\x0b\x32\x1a.caffe.HDF5OutputParameter\".\n\nPoolMethod\x12\x07\n\x03MAX\x10\x00\x12\x07\n\x03\x41VE\x10\x01\x12\x0e\n\nSTOCHASTIC\x10\x02\"W\n\x0ePReLUParameter\x12&\n\x06\x66iller\x18\x01 \x01(\x0b\x32\x16.caffe.FillerParameter\x12\x1d\n\x0e\x63hannel_shared\x18\x02 \x01(\x08:\x05\x66\x61lse\"+\n\x17ShuffleChannelParameter\x12\x10\n\x05group\x18\x01 \x01(\r:\x01\x31*\x1c\n\x05Phase\x12\t\n\x05TRAIN\x10\x00\x12\x08\n\x04TEST\x10\x01') +) _PHASE = _descriptor.EnumDescriptor( - name='Phase', - full_name='caffe.Phase', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='TRAIN', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='TEST', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=15790, - serialized_end=15818, + name='Phase', + full_name='caffe.Phase', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='TRAIN', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TEST', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=21908, + serialized_end=21936, ) _sym_db.RegisterEnumDescriptor(_PHASE) @@ -49,9235 +49,7269 @@ Phase = enum_type_wrapper.EnumTypeWrapper(_PHASE) TRAIN = 0 TEST = 1 + +_EMITCONSTRAINT_EMITTYPE = _descriptor.EnumDescriptor( + name='EmitType', + full_name='caffe.EmitConstraint.EmitType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='CENTER', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MIN_OVERLAP', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1146, + serialized_end=1185, +) +_sym_db.RegisterEnumDescriptor(_EMITCONSTRAINT_EMITTYPE) + +_ANNOTATEDDATUM_ANNOTATIONTYPE = _descriptor.EnumDescriptor( + name='AnnotationType', + full_name='caffe.AnnotatedDatum.AnnotationType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='BBOX', index=0, number=0, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1629, + serialized_end=1655, +) +_sym_db.RegisterEnumDescriptor(_ANNOTATEDDATUM_ANNOTATIONTYPE) + _FILLERPARAMETER_VARIANCENORM = _descriptor.EnumDescriptor( - name='VarianceNorm', - full_name='caffe.FillerParameter.VarianceNorm', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='FAN_IN', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='FAN_OUT', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='AVERAGE', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=658, - serialized_end=710, + name='VarianceNorm', + full_name='caffe.FillerParameter.VarianceNorm', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='FAN_IN', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FAN_OUT', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AVERAGE', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=1872, + serialized_end=1924, ) _sym_db.RegisterEnumDescriptor(_FILLERPARAMETER_VARIANCENORM) _SOLVERPARAMETER_SNAPSHOTFORMAT = _descriptor.EnumDescriptor( - name='SnapshotFormat', - full_name='caffe.SolverParameter.SnapshotFormat', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='HDF5', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='BINARYPROTO', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2188, - serialized_end=2231, + name='SnapshotFormat', + full_name='caffe.SolverParameter.SnapshotFormat', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='HDF5', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BINARYPROTO', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=3480, + serialized_end=3523, ) _sym_db.RegisterEnumDescriptor(_SOLVERPARAMETER_SNAPSHOTFORMAT) _SOLVERPARAMETER_SOLVERMODE = _descriptor.EnumDescriptor( - name='SolverMode', - full_name='caffe.SolverParameter.SolverMode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='CPU', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='GPU', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2233, - serialized_end=2263, + name='SolverMode', + full_name='caffe.SolverParameter.SolverMode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='CPU', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='GPU', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=3525, + serialized_end=3555, ) _sym_db.RegisterEnumDescriptor(_SOLVERPARAMETER_SOLVERMODE) _SOLVERPARAMETER_SOLVERTYPE = _descriptor.EnumDescriptor( - name='SolverType', - full_name='caffe.SolverParameter.SolverType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='SGD', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='NESTEROV', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ADAGRAD', - index=2, - number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='RMSPROP', - index=3, - number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ADADELTA', - index=4, - number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ADAM', - index=5, - number=5, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2265, - serialized_end=2350, + name='SolverType', + full_name='caffe.SolverParameter.SolverType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='SGD', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NESTEROV', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADAGRAD', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RMSPROP', index=3, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADADELTA', index=4, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ADAM', index=5, number=5, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=3557, + serialized_end=3642, ) _sym_db.RegisterEnumDescriptor(_SOLVERPARAMETER_SOLVERTYPE) _PARAMSPEC_DIMCHECKMODE = _descriptor.EnumDescriptor( - name='DimCheckMode', - full_name='caffe.ParamSpec.DimCheckMode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='STRICT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='PERMISSIVE', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2781, - serialized_end=2823, + name='DimCheckMode', + full_name='caffe.ParamSpec.DimCheckMode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='STRICT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PERMISSIVE', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=4131, + serialized_end=4173, ) _sym_db.RegisterEnumDescriptor(_PARAMSPEC_DIMCHECKMODE) +_RESIZEPARAMETER_RESIZE_MODE = _descriptor.EnumDescriptor( + name='Resize_mode', + full_name='caffe.ResizeParameter.Resize_mode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='WARP', index=0, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIT_SMALL_SIZE', index=1, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FIT_LARGE_SIZE_AND_PAD', index=2, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=8049, + serialized_end=8120, +) +_sym_db.RegisterEnumDescriptor(_RESIZEPARAMETER_RESIZE_MODE) + +_RESIZEPARAMETER_PAD_MODE = _descriptor.EnumDescriptor( + name='Pad_mode', + full_name='caffe.ResizeParameter.Pad_mode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='CONSTANT', index=0, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MIRRORED', index=1, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='REPEAT_NEAREST', index=2, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=8122, + serialized_end=8180, +) +_sym_db.RegisterEnumDescriptor(_RESIZEPARAMETER_PAD_MODE) + +_RESIZEPARAMETER_INTERP_MODE = _descriptor.EnumDescriptor( + name='Interp_mode', + full_name='caffe.ResizeParameter.Interp_mode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='LINEAR', index=0, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AREA', index=1, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NEAREST', index=2, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUBIC', index=3, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LANCZOS4', index=4, number=5, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=8182, + serialized_end=8255, +) +_sym_db.RegisterEnumDescriptor(_RESIZEPARAMETER_INTERP_MODE) + _LOSSPARAMETER_NORMALIZATIONMODE = _descriptor.EnumDescriptor( - name='NormalizationMode', - full_name='caffe.LossParameter.NormalizationMode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='FULL', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='VALID', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='BATCH_SIZE', - index=2, - number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='NONE', - index=3, - number=3, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=5856, - serialized_end=5922, + name='NormalizationMode', + full_name='caffe.LossParameter.NormalizationMode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='FULL', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='VALID', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BATCH_SIZE', index=2, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='NONE', index=3, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=9202, + serialized_end=9268, ) _sym_db.RegisterEnumDescriptor(_LOSSPARAMETER_NORMALIZATIONMODE) _CONVOLUTIONPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.ConvolutionParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.ConvolutionParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_CONVOLUTIONPARAMETER_ENGINE) _DATAPARAMETER_DB = _descriptor.EnumDescriptor( - name='DB', - full_name='caffe.DataParameter.DB', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='LEVELDB', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='LMDB', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=7291, - serialized_end=7318, + name='DB', + full_name='caffe.DataParameter.DB', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='LEVELDB', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LMDB', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10746, + serialized_end=10773, ) _sym_db.RegisterEnumDescriptor(_DATAPARAMETER_DB) _ELTWISEPARAMETER_ELTWISEOP = _descriptor.EnumDescriptor( - name='EltwiseOp', - full_name='caffe.EltwiseParameter.EltwiseOp', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='PROD', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SUM', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='MAX', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=7658, - serialized_end=7697, + name='EltwiseOp', + full_name='caffe.EltwiseParameter.EltwiseOp', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='PROD', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SUM', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MAX', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=12106, + serialized_end=12145, ) _sym_db.RegisterEnumDescriptor(_ELTWISEPARAMETER_ELTWISEOP) _HINGELOSSPARAMETER_NORM = _descriptor.EnumDescriptor( - name='Norm', - full_name='caffe.HingeLossParameter.Norm', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='L1', - index=0, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='L2', - index=1, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=8232, - serialized_end=8254, + name='Norm', + full_name='caffe.HingeLossParameter.Norm', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='L1', index=0, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='L2', index=1, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=12680, + serialized_end=12702, ) _sym_db.RegisterEnumDescriptor(_HINGELOSSPARAMETER_NORM) _LRNPARAMETER_NORMREGION = _descriptor.EnumDescriptor( - name='NormRegion', - full_name='caffe.LRNParameter.NormRegion', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='ACROSS_CHANNELS', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='WITHIN_CHANNEL', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=9138, - serialized_end=9191, + name='NormRegion', + full_name='caffe.LRNParameter.NormRegion', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='ACROSS_CHANNELS', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='WITHIN_CHANNEL', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=13569, + serialized_end=13622, ) _sym_db.RegisterEnumDescriptor(_LRNPARAMETER_NORMREGION) _LRNPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.LRNParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.LRNParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_LRNPARAMETER_ENGINE) +_MULTIBOXLOSSPARAMETER_LOCLOSSTYPE = _descriptor.EnumDescriptor( + name='LocLossType', + full_name='caffe.MultiBoxLossParameter.LocLossType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='L2', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SMOOTH_L1', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=14703, + serialized_end=14739, +) +_sym_db.RegisterEnumDescriptor(_MULTIBOXLOSSPARAMETER_LOCLOSSTYPE) + +_MULTIBOXLOSSPARAMETER_CONFLOSSTYPE = _descriptor.EnumDescriptor( + name='ConfLossType', + full_name='caffe.MultiBoxLossParameter.ConfLossType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='SOFTMAX', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LOGISTIC', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=14741, + serialized_end=14782, +) +_sym_db.RegisterEnumDescriptor(_MULTIBOXLOSSPARAMETER_CONFLOSSTYPE) + +_MULTIBOXLOSSPARAMETER_MATCHTYPE = _descriptor.EnumDescriptor( + name='MatchType', + full_name='caffe.MultiBoxLossParameter.MatchType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='BIPARTITE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PER_PREDICTION', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=14784, + serialized_end=14830, +) +_sym_db.RegisterEnumDescriptor(_MULTIBOXLOSSPARAMETER_MATCHTYPE) + +_MULTIBOXLOSSPARAMETER_MININGTYPE = _descriptor.EnumDescriptor( + name='MiningType', + full_name='caffe.MultiBoxLossParameter.MiningType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='NONE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MAX_NEGATIVE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HARD_EXAMPLE', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=14832, + serialized_end=14890, +) +_sym_db.RegisterEnumDescriptor(_MULTIBOXLOSSPARAMETER_MININGTYPE) + _POOLINGPARAMETER_POOLMETHOD = _descriptor.EnumDescriptor( - name='PoolMethod', - full_name='caffe.PoolingParameter.PoolMethod', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='MAX', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='AVE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='STOCHASTIC', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=9876, - serialized_end=9922, + name='PoolMethod', + full_name='caffe.PoolingParameter.PoolMethod', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='MAX', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AVE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STOCHASTIC', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=15561, + serialized_end=15607, ) _sym_db.RegisterEnumDescriptor(_POOLINGPARAMETER_POOLMETHOD) _POOLINGPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.PoolingParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.PoolingParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_POOLINGPARAMETER_ENGINE) -_POOLINGPARAMETER_ROUNDMODE = _descriptor.EnumDescriptor( - name='RoundMode', - full_name='caffe.PoolingParameter.RoundMode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='CEIL', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='FLOOR', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=9969, - serialized_end=10001, +_PRIORBOXPARAMETER_CODETYPE = _descriptor.EnumDescriptor( + name='CodeType', + full_name='caffe.PriorBoxParameter.CodeType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='CORNER', index=0, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CENTER_SIZE', index=1, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CORNER_SIZE', index=2, number=3, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=15980, + serialized_end=16036, ) -_sym_db.RegisterEnumDescriptor(_POOLINGPARAMETER_ROUNDMODE) +_sym_db.RegisterEnumDescriptor(_PRIORBOXPARAMETER_CODETYPE) _REDUCTIONPARAMETER_REDUCTIONOP = _descriptor.EnumDescriptor( - name='ReductionOp', - full_name='caffe.ReductionParameter.ReductionOp', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='SUM', - index=0, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ASUM', - index=1, - number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SUMSQ', - index=2, - number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='MEAN', - index=3, - number=4, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=10496, - serialized_end=10549, + name='ReductionOp', + full_name='caffe.ReductionParameter.ReductionOp', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='SUM', index=0, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ASUM', index=1, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SUMSQ', index=2, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEAN', index=3, number=4, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=16459, + serialized_end=16512, ) _sym_db.RegisterEnumDescriptor(_REDUCTIONPARAMETER_REDUCTIONOP) _RELUPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.ReLUParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.ReLUParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_RELUPARAMETER_ENGINE) _SIGMOIDPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.SigmoidParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.SigmoidParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_SIGMOIDPARAMETER_ENGINE) _SOFTMAXPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.SoftmaxParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.SoftmaxParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_SOFTMAXPARAMETER_ENGINE) _TANHPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.TanHParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.TanHParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_TANHPARAMETER_ENGINE) +_VIDEODATAPARAMETER_VIDEOTYPE = _descriptor.EnumDescriptor( + name='VideoType', + full_name='caffe.VideoDataParameter.VideoType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='WEBCAM', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='VIDEO', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=17621, + serialized_end=17655, +) +_sym_db.RegisterEnumDescriptor(_VIDEODATAPARAMETER_VIDEOTYPE) + _SPPPARAMETER_POOLMETHOD = _descriptor.EnumDescriptor( - name='PoolMethod', - full_name='caffe.SPPParameter.PoolMethod', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='MAX', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='AVE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='STOCHASTIC', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=9876, - serialized_end=9922, + name='PoolMethod', + full_name='caffe.SPPParameter.PoolMethod', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='MAX', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AVE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STOCHASTIC', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=15561, + serialized_end=15607, ) _sym_db.RegisterEnumDescriptor(_SPPPARAMETER_POOLMETHOD) _SPPPARAMETER_ENGINE = _descriptor.EnumDescriptor( - name='Engine', - full_name='caffe.SPPParameter.Engine', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='DEFAULT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CAFFE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CUDNN', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=6930, - serialized_end=6973, + name='Engine', + full_name='caffe.SPPParameter.Engine', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='DEFAULT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CAFFE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CUDNN', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=10385, + serialized_end=10428, ) _sym_db.RegisterEnumDescriptor(_SPPPARAMETER_ENGINE) _V1LAYERPARAMETER_LAYERTYPE = _descriptor.EnumDescriptor( - name='LayerType', - full_name='caffe.V1LayerParameter.LayerType', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='NONE', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ABSVAL', - index=1, - number=35, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ACCURACY', - index=2, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ARGMAX', - index=3, - number=30, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='BNLL', - index=4, - number=2, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CONCAT', - index=5, - number=3, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CONTRASTIVE_LOSS', - index=6, - number=37, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='CONVOLUTION', - index=7, - number=4, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='DATA', - index=8, - number=5, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='DECONVOLUTION', - index=9, - number=39, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='DROPOUT', - index=10, - number=6, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='DUMMY_DATA', - index=11, - number=32, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='EUCLIDEAN_LOSS', - index=12, - number=7, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='ELTWISE', - index=13, - number=25, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='EXP', - index=14, - number=38, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='FLATTEN', - index=15, - number=8, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='HDF5_DATA', - index=16, - number=9, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='HDF5_OUTPUT', - index=17, - number=10, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='HINGE_LOSS', - index=18, - number=28, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='IM2COL', - index=19, - number=11, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='IMAGE_DATA', - index=20, - number=12, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='INFOGAIN_LOSS', - index=21, - number=13, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='INNER_PRODUCT', - index=22, - number=14, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='LRN', - index=23, - number=15, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='MEMORY_DATA', - index=24, - number=29, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='MULTINOMIAL_LOGISTIC_LOSS', - index=25, - number=16, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='MVN', - index=26, - number=34, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='POOLING', - index=27, - number=17, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='POWER', - index=28, - number=26, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='RELU', - index=29, - number=18, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SIGMOID', - index=30, - number=19, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SIGMOID_CROSS_ENTROPY_LOSS', - index=31, - number=27, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SILENCE', - index=32, - number=36, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SOFTMAX', - index=33, - number=20, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SOFTMAX_LOSS', - index=34, - number=21, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SPLIT', - index=35, - number=22, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='SLICE', - index=36, - number=33, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='TANH', - index=37, - number=23, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='WINDOW_DATA', - index=38, - number=24, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='THRESHOLD', - index=39, - number=31, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=13986, - serialized_end=14586, + name='LayerType', + full_name='caffe.V1LayerParameter.LayerType', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='NONE', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ABSVAL', index=1, number=35, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ACCURACY', index=2, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ARGMAX', index=3, number=30, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='BNLL', index=4, number=2, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONCAT', index=5, number=3, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONTRASTIVE_LOSS', index=6, number=37, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='CONVOLUTION', index=7, number=4, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DATA', index=8, number=5, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DECONVOLUTION', index=9, number=39, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DROPOUT', index=10, number=6, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='DUMMY_DATA', index=11, number=32, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EUCLIDEAN_LOSS', index=12, number=7, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='ELTWISE', index=13, number=25, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='EXP', index=14, number=38, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='FLATTEN', index=15, number=8, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HDF5_DATA', index=16, number=9, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HDF5_OUTPUT', index=17, number=10, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='HINGE_LOSS', index=18, number=28, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IM2COL', index=19, number=11, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='IMAGE_DATA', index=20, number=12, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INFOGAIN_LOSS', index=21, number=13, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='INNER_PRODUCT', index=22, number=14, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='LRN', index=23, number=15, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MEMORY_DATA', index=24, number=29, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MULTINOMIAL_LOGISTIC_LOSS', index=25, number=16, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='MVN', index=26, number=34, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='POOLING', index=27, number=17, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='POWER', index=28, number=26, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='RELU', index=29, number=18, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SIGMOID', index=30, number=19, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SIGMOID_CROSS_ENTROPY_LOSS', index=31, number=27, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SILENCE', index=32, number=36, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SOFTMAX', index=33, number=20, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SOFTMAX_LOSS', index=34, number=21, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SPLIT', index=35, number=22, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='SLICE', index=36, number=33, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='TANH', index=37, number=23, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='WINDOW_DATA', index=38, number=24, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='THRESHOLD', index=39, number=31, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=20104, + serialized_end=20704, ) _sym_db.RegisterEnumDescriptor(_V1LAYERPARAMETER_LAYERTYPE) _V1LAYERPARAMETER_DIMCHECKMODE = _descriptor.EnumDescriptor( - name='DimCheckMode', - full_name='caffe.V1LayerParameter.DimCheckMode', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='STRICT', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='PERMISSIVE', - index=1, - number=1, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=2781, - serialized_end=2823, + name='DimCheckMode', + full_name='caffe.V1LayerParameter.DimCheckMode', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='STRICT', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='PERMISSIVE', index=1, number=1, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=4131, + serialized_end=4173, ) _sym_db.RegisterEnumDescriptor(_V1LAYERPARAMETER_DIMCHECKMODE) _V0LAYERPARAMETER_POOLMETHOD = _descriptor.EnumDescriptor( - name='PoolMethod', - full_name='caffe.V0LayerParameter.PoolMethod', - filename=None, - file=DESCRIPTOR, - values=[ - _descriptor.EnumValueDescriptor(name='MAX', - index=0, - number=0, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='AVE', - index=1, - number=1, - serialized_options=None, - type=None), - _descriptor.EnumValueDescriptor(name='STOCHASTIC', - index=2, - number=2, - serialized_options=None, - type=None), - ], - containing_type=None, - serialized_options=None, - serialized_start=9876, - serialized_end=9922, + name='PoolMethod', + full_name='caffe.V0LayerParameter.PoolMethod', + filename=None, + file=DESCRIPTOR, + values=[ + _descriptor.EnumValueDescriptor( + name='MAX', index=0, number=0, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='AVE', index=1, number=1, + serialized_options=None, + type=None), + _descriptor.EnumValueDescriptor( + name='STOCHASTIC', index=2, number=2, + serialized_options=None, + type=None), + ], + containing_type=None, + serialized_options=None, + serialized_start=15561, + serialized_end=15607, ) _sym_db.RegisterEnumDescriptor(_V0LAYERPARAMETER_POOLMETHOD) + _BLOBSHAPE = _descriptor.Descriptor( - name='BlobShape', - full_name='caffe.BlobShape', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='dim', - full_name='caffe.BlobShape.dim', - index=0, - number=1, - type=3, - cpp_type=2, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=_b('\020\001'), - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=22, - serialized_end=50, + name='BlobShape', + full_name='caffe.BlobShape', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='dim', full_name='caffe.BlobShape.dim', index=0, + number=1, type=3, cpp_type=2, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=22, + serialized_end=50, ) + _BLOBPROTO = _descriptor.Descriptor( - name='BlobProto', - full_name='caffe.BlobProto', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='shape', - full_name='caffe.BlobProto.shape', - index=0, - number=7, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='data', - full_name='caffe.BlobProto.data', - index=1, - number=5, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=_b('\020\001'), - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='diff', - full_name='caffe.BlobProto.diff', - index=2, - number=6, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=_b('\020\001'), - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='double_data', - full_name='caffe.BlobProto.double_data', - index=3, - number=8, - type=1, - cpp_type=5, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=_b('\020\001'), - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='double_diff', - full_name='caffe.BlobProto.double_diff', - index=4, - number=9, - type=1, - cpp_type=5, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=_b('\020\001'), - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='num', - full_name='caffe.BlobProto.num', - index=5, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='channels', - full_name='caffe.BlobProto.channels', - index=6, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='height', - full_name='caffe.BlobProto.height', - index=7, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='width', - full_name='caffe.BlobProto.width', - index=8, - number=4, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=53, - serialized_end=257, + name='BlobProto', + full_name='caffe.BlobProto', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='shape', full_name='caffe.BlobProto.shape', index=0, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='data', full_name='caffe.BlobProto.data', index=1, + number=5, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='diff', full_name='caffe.BlobProto.diff', index=2, + number=6, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='double_data', full_name='caffe.BlobProto.double_data', index=3, + number=8, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='double_diff', full_name='caffe.BlobProto.double_diff', index=4, + number=9, type=1, cpp_type=5, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=_b('\020\001'), file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num', full_name='caffe.BlobProto.num', index=5, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='channels', full_name='caffe.BlobProto.channels', index=6, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='height', full_name='caffe.BlobProto.height', index=7, + number=3, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='width', full_name='caffe.BlobProto.width', index=8, + number=4, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=53, + serialized_end=257, ) + _BLOBPROTOVECTOR = _descriptor.Descriptor( - name='BlobProtoVector', - full_name='caffe.BlobProtoVector', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='blobs', - full_name='caffe.BlobProtoVector.blobs', - index=0, - number=1, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=259, - serialized_end=309, + name='BlobProtoVector', + full_name='caffe.BlobProtoVector', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='blobs', full_name='caffe.BlobProtoVector.blobs', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=259, + serialized_end=309, ) + _DATUM = _descriptor.Descriptor( - name='Datum', - full_name='caffe.Datum', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='channels', - full_name='caffe.Datum.channels', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='height', - full_name='caffe.Datum.height', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='width', - full_name='caffe.Datum.width', - index=2, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='data', - full_name='caffe.Datum.data', - index=3, - number=4, - type=12, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b(""), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='label', - full_name='caffe.Datum.label', - index=4, - number=5, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='float_data', - full_name='caffe.Datum.float_data', - index=5, - number=6, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='encoded', - full_name='caffe.Datum.encoded', - index=6, - number=7, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=312, - serialized_end=441, + name='Datum', + full_name='caffe.Datum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='channels', full_name='caffe.Datum.channels', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='height', full_name='caffe.Datum.height', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='width', full_name='caffe.Datum.width', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='data', full_name='caffe.Datum.data', index=3, + number=4, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=_b(""), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='label', full_name='caffe.Datum.label', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='float_data', full_name='caffe.Datum.float_data', index=5, + number=6, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='encoded', full_name='caffe.Datum.encoded', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=312, + serialized_end=441, +) + + +_LABELMAPITEM = _descriptor.Descriptor( + name='LabelMapItem', + full_name='caffe.LabelMapItem', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='caffe.LabelMapItem.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='label', full_name='caffe.LabelMapItem.label', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='display_name', full_name='caffe.LabelMapItem.display_name', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=443, + serialized_end=508, +) + + +_LABELMAP = _descriptor.Descriptor( + name='LabelMap', + full_name='caffe.LabelMap', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='item', full_name='caffe.LabelMap.item', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=510, + serialized_end=555, +) + + +_SAMPLER = _descriptor.Descriptor( + name='Sampler', + full_name='caffe.Sampler', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_scale', full_name='caffe.Sampler.min_scale', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_scale', full_name='caffe.Sampler.max_scale', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_aspect_ratio', full_name='caffe.Sampler.min_aspect_ratio', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_aspect_ratio', full_name='caffe.Sampler.max_aspect_ratio', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=557, + serialized_end=668, +) + + +_SAMPLECONSTRAINT = _descriptor.Descriptor( + name='SampleConstraint', + full_name='caffe.SampleConstraint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_jaccard_overlap', full_name='caffe.SampleConstraint.min_jaccard_overlap', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_jaccard_overlap', full_name='caffe.SampleConstraint.max_jaccard_overlap', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_sample_coverage', full_name='caffe.SampleConstraint.min_sample_coverage', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_sample_coverage', full_name='caffe.SampleConstraint.max_sample_coverage', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_object_coverage', full_name='caffe.SampleConstraint.min_object_coverage', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_object_coverage', full_name='caffe.SampleConstraint.max_object_coverage', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=671, + serialized_end=863, ) + +_BATCHSAMPLER = _descriptor.Descriptor( + name='BatchSampler', + full_name='caffe.BatchSampler', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='use_original_image', full_name='caffe.BatchSampler.use_original_image', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sampler', full_name='caffe.BatchSampler.sampler', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sample_constraint', full_name='caffe.BatchSampler.sample_constraint', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_sample', full_name='caffe.BatchSampler.max_sample', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_trials', full_name='caffe.BatchSampler.max_trials', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=100, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=866, + serialized_end=1044, +) + + +_EMITCONSTRAINT = _descriptor.Descriptor( + name='EmitConstraint', + full_name='caffe.EmitConstraint', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='emit_type', full_name='caffe.EmitConstraint.emit_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='emit_overlap', full_name='caffe.EmitConstraint.emit_overlap', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _EMITCONSTRAINT_EMITTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1047, + serialized_end=1185, +) + + +_NORMALIZEDBBOX = _descriptor.Descriptor( + name='NormalizedBBox', + full_name='caffe.NormalizedBBox', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='xmin', full_name='caffe.NormalizedBBox.xmin', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ymin', full_name='caffe.NormalizedBBox.ymin', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='xmax', full_name='caffe.NormalizedBBox.xmax', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ymax', full_name='caffe.NormalizedBBox.ymax', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='label', full_name='caffe.NormalizedBBox.label', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='difficult', full_name='caffe.NormalizedBBox.difficult', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='score', full_name='caffe.NormalizedBBox.score', index=6, + number=7, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='size', full_name='caffe.NormalizedBBox.size', index=7, + number=8, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1188, + serialized_end=1323, +) + + +_ANNOTATION = _descriptor.Descriptor( + name='Annotation', + full_name='caffe.Annotation', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='instance_id', full_name='caffe.Annotation.instance_id', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bbox', full_name='caffe.Annotation.bbox', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1325, + serialized_end=1398, +) + + +_ANNOTATIONGROUP = _descriptor.Descriptor( + name='AnnotationGroup', + full_name='caffe.AnnotationGroup', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='group_label', full_name='caffe.AnnotationGroup.group_label', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='annotation', full_name='caffe.AnnotationGroup.annotation', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1400, + serialized_end=1477, +) + + +_ANNOTATEDDATUM = _descriptor.Descriptor( + name='AnnotatedDatum', + full_name='caffe.AnnotatedDatum', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='datum', full_name='caffe.AnnotatedDatum.datum', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='caffe.AnnotatedDatum.type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='annotation_group', full_name='caffe.AnnotatedDatum.annotation_group', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ANNOTATEDDATUM_ANNOTATIONTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1480, + serialized_end=1655, +) + + _FILLERPARAMETER = _descriptor.Descriptor( - name='FillerParameter', - full_name='caffe.FillerParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='type', - full_name='caffe.FillerParameter.type', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("constant").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='value', - full_name='caffe.FillerParameter.value', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='min', - full_name='caffe.FillerParameter.min', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='max', - full_name='caffe.FillerParameter.max', - index=3, - number=4, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='mean', - full_name='caffe.FillerParameter.mean', - index=4, - number=5, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='std', - full_name='caffe.FillerParameter.std', - index=5, - number=6, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='sparse', - full_name='caffe.FillerParameter.sparse', - index=6, - number=7, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=-1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='variance_norm', - full_name='caffe.FillerParameter.variance_norm', - index=7, - number=8, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _FILLERPARAMETER_VARIANCENORM, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=444, - serialized_end=710, + name='FillerParameter', + full_name='caffe.FillerParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='type', full_name='caffe.FillerParameter.type', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("constant").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='caffe.FillerParameter.value', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min', full_name='caffe.FillerParameter.min', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max', full_name='caffe.FillerParameter.max', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mean', full_name='caffe.FillerParameter.mean', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='std', full_name='caffe.FillerParameter.std', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sparse', full_name='caffe.FillerParameter.sparse', index=6, + number=7, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=-1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='variance_norm', full_name='caffe.FillerParameter.variance_norm', index=7, + number=8, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _FILLERPARAMETER_VARIANCENORM, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1658, + serialized_end=1924, ) + _NETPARAMETER = _descriptor.Descriptor( - name='NetParameter', - full_name='caffe.NetParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='name', - full_name='caffe.NetParameter.name', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='input', - full_name='caffe.NetParameter.input', - index=1, - number=3, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='input_shape', - full_name='caffe.NetParameter.input_shape', - index=2, - number=8, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='input_dim', - full_name='caffe.NetParameter.input_dim', - index=3, - number=4, - type=5, - cpp_type=1, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force_backward', - full_name='caffe.NetParameter.force_backward', - index=4, - number=5, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='state', - full_name='caffe.NetParameter.state', - index=5, - number=6, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='debug_info', - full_name='caffe.NetParameter.debug_info', - index=6, - number=7, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='layer', - full_name='caffe.NetParameter.layer', - index=7, - number=100, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='layers', - full_name='caffe.NetParameter.layers', - index=8, - number=2, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=713, - serialized_end=983, + name='NetParameter', + full_name='caffe.NetParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='caffe.NetParameter.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='input', full_name='caffe.NetParameter.input', index=1, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='input_shape', full_name='caffe.NetParameter.input_shape', index=2, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='input_dim', full_name='caffe.NetParameter.input_dim', index=3, + number=4, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='force_backward', full_name='caffe.NetParameter.force_backward', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='state', full_name='caffe.NetParameter.state', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='debug_info', full_name='caffe.NetParameter.debug_info', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layer', full_name='caffe.NetParameter.layer', index=7, + number=100, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layers', full_name='caffe.NetParameter.layers', index=8, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1927, + serialized_end=2197, ) + _SOLVERPARAMETER = _descriptor.Descriptor( - name='SolverParameter', - full_name='caffe.SolverParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='net', - full_name='caffe.SolverParameter.net', - index=0, - number=24, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='net_param', - full_name='caffe.SolverParameter.net_param', - index=1, - number=25, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='train_net', - full_name='caffe.SolverParameter.train_net', - index=2, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='test_net', - full_name='caffe.SolverParameter.test_net', - index=3, - number=2, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='train_net_param', - full_name='caffe.SolverParameter.train_net_param', - index=4, - number=21, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='test_net_param', - full_name='caffe.SolverParameter.test_net_param', - index=5, - number=22, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='train_state', - full_name='caffe.SolverParameter.train_state', - index=6, - number=26, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='test_state', - full_name='caffe.SolverParameter.test_state', - index=7, - number=27, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='test_iter', - full_name='caffe.SolverParameter.test_iter', - index=8, - number=3, - type=5, - cpp_type=1, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='test_interval', - full_name='caffe.SolverParameter.test_interval', - index=9, - number=4, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='test_compute_loss', - full_name='caffe.SolverParameter.test_compute_loss', - index=10, - number=19, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='test_initialization', - full_name='caffe.SolverParameter.test_initialization', - index=11, - number=32, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='base_lr', - full_name='caffe.SolverParameter.base_lr', - index=12, - number=5, - type=2, - cpp_type=6, - label=1, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='display', - full_name='caffe.SolverParameter.display', - index=13, - number=6, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='average_loss', - full_name='caffe.SolverParameter.average_loss', - index=14, - number=33, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='max_iter', - full_name='caffe.SolverParameter.max_iter', - index=15, - number=7, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='iter_size', - full_name='caffe.SolverParameter.iter_size', - index=16, - number=36, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='lr_policy', - full_name='caffe.SolverParameter.lr_policy', - index=17, - number=8, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='gamma', - full_name='caffe.SolverParameter.gamma', - index=18, - number=9, - type=2, - cpp_type=6, - label=1, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='power', - full_name='caffe.SolverParameter.power', - index=19, - number=10, - type=2, - cpp_type=6, - label=1, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='momentum', - full_name='caffe.SolverParameter.momentum', - index=20, - number=11, - type=2, - cpp_type=6, - label=1, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_decay', - full_name='caffe.SolverParameter.weight_decay', - index=21, - number=12, - type=2, - cpp_type=6, - label=1, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='regularization_type', - full_name='caffe.SolverParameter.regularization_type', - index=22, - number=29, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("L2").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stepsize', - full_name='caffe.SolverParameter.stepsize', - index=23, - number=13, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stepvalue', - full_name='caffe.SolverParameter.stepvalue', - index=24, - number=34, - type=5, - cpp_type=1, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='clip_gradients', - full_name='caffe.SolverParameter.clip_gradients', - index=25, - number=35, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(-1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='snapshot', - full_name='caffe.SolverParameter.snapshot', - index=26, - number=14, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='snapshot_prefix', - full_name='caffe.SolverParameter.snapshot_prefix', - index=27, - number=15, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='snapshot_diff', - full_name='caffe.SolverParameter.snapshot_diff', - index=28, - number=16, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='snapshot_format', - full_name='caffe.SolverParameter.snapshot_format', - index=29, - number=37, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='solver_mode', - full_name='caffe.SolverParameter.solver_mode', - index=30, - number=17, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='device_id', - full_name='caffe.SolverParameter.device_id', - index=31, - number=18, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='random_seed', - full_name='caffe.SolverParameter.random_seed', - index=32, - number=20, - type=3, - cpp_type=2, - label=1, - has_default_value=True, - default_value=-1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='type', - full_name='caffe.SolverParameter.type', - index=33, - number=40, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("SGD").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='delta', - full_name='caffe.SolverParameter.delta', - index=34, - number=31, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1e-08), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='momentum2', - full_name='caffe.SolverParameter.momentum2', - index=35, - number=39, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.999), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='rms_decay', - full_name='caffe.SolverParameter.rms_decay', - index=36, - number=38, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.99), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='debug_info', - full_name='caffe.SolverParameter.debug_info', - index=37, - number=23, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='snapshot_after_train', - full_name='caffe.SolverParameter.snapshot_after_train', - index=38, - number=28, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='solver_type', - full_name='caffe.SolverParameter.solver_type', - index=39, - number=30, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='layer_wise_reduce', - full_name='caffe.SolverParameter.layer_wise_reduce', - index=40, - number=41, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='weights', - full_name='caffe.SolverParameter.weights', - index=41, - number=42, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _SOLVERPARAMETER_SNAPSHOTFORMAT, - _SOLVERPARAMETER_SOLVERMODE, - _SOLVERPARAMETER_SOLVERTYPE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=986, - serialized_end=2350, + name='SolverParameter', + full_name='caffe.SolverParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='net', full_name='caffe.SolverParameter.net', index=0, + number=24, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='net_param', full_name='caffe.SolverParameter.net_param', index=1, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='train_net', full_name='caffe.SolverParameter.train_net', index=2, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_net', full_name='caffe.SolverParameter.test_net', index=3, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='train_net_param', full_name='caffe.SolverParameter.train_net_param', index=4, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_net_param', full_name='caffe.SolverParameter.test_net_param', index=5, + number=22, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='train_state', full_name='caffe.SolverParameter.train_state', index=6, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_state', full_name='caffe.SolverParameter.test_state', index=7, + number=27, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eval_type', full_name='caffe.SolverParameter.eval_type', index=8, + number=41, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("classification").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ap_version', full_name='caffe.SolverParameter.ap_version', index=9, + number=42, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("Integral").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='show_per_class_result', full_name='caffe.SolverParameter.show_per_class_result', index=10, + number=44, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_iter', full_name='caffe.SolverParameter.test_iter', index=11, + number=3, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_interval', full_name='caffe.SolverParameter.test_interval', index=12, + number=4, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_compute_loss', full_name='caffe.SolverParameter.test_compute_loss', index=13, + number=19, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='test_initialization', full_name='caffe.SolverParameter.test_initialization', index=14, + number=32, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='base_lr', full_name='caffe.SolverParameter.base_lr', index=15, + number=5, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='display', full_name='caffe.SolverParameter.display', index=16, + number=6, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='average_loss', full_name='caffe.SolverParameter.average_loss', index=17, + number=33, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_iter', full_name='caffe.SolverParameter.max_iter', index=18, + number=7, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='iter_size', full_name='caffe.SolverParameter.iter_size', index=19, + number=36, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lr_policy', full_name='caffe.SolverParameter.lr_policy', index=20, + number=8, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gamma', full_name='caffe.SolverParameter.gamma', index=21, + number=9, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='power', full_name='caffe.SolverParameter.power', index=22, + number=10, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='momentum', full_name='caffe.SolverParameter.momentum', index=23, + number=11, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_decay', full_name='caffe.SolverParameter.weight_decay', index=24, + number=12, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='regularization_type', full_name='caffe.SolverParameter.regularization_type', index=25, + number=29, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("L2").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stepsize', full_name='caffe.SolverParameter.stepsize', index=26, + number=13, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stepvalue', full_name='caffe.SolverParameter.stepvalue', index=27, + number=34, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='plateau_winsize', full_name='caffe.SolverParameter.plateau_winsize', index=28, + number=43, type=5, cpp_type=1, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='clip_gradients', full_name='caffe.SolverParameter.clip_gradients', index=29, + number=35, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(-1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='snapshot', full_name='caffe.SolverParameter.snapshot', index=30, + number=14, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='snapshot_prefix', full_name='caffe.SolverParameter.snapshot_prefix', index=31, + number=15, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='snapshot_diff', full_name='caffe.SolverParameter.snapshot_diff', index=32, + number=16, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='snapshot_format', full_name='caffe.SolverParameter.snapshot_format', index=33, + number=37, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='solver_mode', full_name='caffe.SolverParameter.solver_mode', index=34, + number=17, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='device_id', full_name='caffe.SolverParameter.device_id', index=35, + number=18, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='random_seed', full_name='caffe.SolverParameter.random_seed', index=36, + number=20, type=3, cpp_type=2, label=1, + has_default_value=True, default_value=-1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='caffe.SolverParameter.type', index=37, + number=40, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("SGD").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='delta', full_name='caffe.SolverParameter.delta', index=38, + number=31, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1e-08), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='momentum2', full_name='caffe.SolverParameter.momentum2', index=39, + number=39, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.999), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='rms_decay', full_name='caffe.SolverParameter.rms_decay', index=40, + number=38, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.99), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='debug_info', full_name='caffe.SolverParameter.debug_info', index=41, + number=23, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='snapshot_after_train', full_name='caffe.SolverParameter.snapshot_after_train', index=42, + number=28, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='solver_type', full_name='caffe.SolverParameter.solver_type', index=43, + number=30, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SOLVERPARAMETER_SNAPSHOTFORMAT, + _SOLVERPARAMETER_SOLVERMODE, + _SOLVERPARAMETER_SOLVERTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2200, + serialized_end=3642, ) + _SOLVERSTATE = _descriptor.Descriptor( - name='SolverState', - full_name='caffe.SolverState', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='iter', - full_name='caffe.SolverState.iter', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='learned_net', - full_name='caffe.SolverState.learned_net', - index=1, - number=2, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='history', - full_name='caffe.SolverState.history', - index=2, - number=3, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='current_step', - full_name='caffe.SolverState.current_step', - index=3, - number=4, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=2352, - serialized_end=2460, + name='SolverState', + full_name='caffe.SolverState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='iter', full_name='caffe.SolverState.iter', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='learned_net', full_name='caffe.SolverState.learned_net', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='history', full_name='caffe.SolverState.history', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='current_step', full_name='caffe.SolverState.current_step', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='minimum_loss', full_name='caffe.SolverState.minimum_loss', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1e+38), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='iter_last_event', full_name='caffe.SolverState.iter_last_event', index=5, + number=6, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3645, + serialized_end=3810, ) + _NETSTATE = _descriptor.Descriptor( - name='NetState', - full_name='caffe.NetState', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='phase', - full_name='caffe.NetState.phase', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='level', - full_name='caffe.NetState.level', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stage', - full_name='caffe.NetState.stage', - index=2, - number=3, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=2462, - serialized_end=2540, + name='NetState', + full_name='caffe.NetState', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='phase', full_name='caffe.NetState.phase', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='level', full_name='caffe.NetState.level', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stage', full_name='caffe.NetState.stage', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3812, + serialized_end=3890, ) + _NETSTATERULE = _descriptor.Descriptor( - name='NetStateRule', - full_name='caffe.NetStateRule', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='phase', - full_name='caffe.NetStateRule.phase', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='min_level', - full_name='caffe.NetStateRule.min_level', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='max_level', - full_name='caffe.NetStateRule.max_level', - index=2, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stage', - full_name='caffe.NetStateRule.stage', - index=3, - number=4, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='not_stage', - full_name='caffe.NetStateRule.not_stage', - index=4, - number=5, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=2542, - serialized_end=2657, + name='NetStateRule', + full_name='caffe.NetStateRule', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='phase', full_name='caffe.NetStateRule.phase', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='min_level', full_name='caffe.NetStateRule.min_level', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_level', full_name='caffe.NetStateRule.max_level', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stage', full_name='caffe.NetStateRule.stage', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='not_stage', full_name='caffe.NetStateRule.not_stage', index=4, + number=5, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=3892, + serialized_end=4007, ) + _PARAMSPEC = _descriptor.Descriptor( - name='ParamSpec', - full_name='caffe.ParamSpec', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='name', - full_name='caffe.ParamSpec.name', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='share_mode', - full_name='caffe.ParamSpec.share_mode', - index=1, - number=2, - type=14, - cpp_type=8, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='lr_mult', - full_name='caffe.ParamSpec.lr_mult', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='decay_mult', - full_name='caffe.ParamSpec.decay_mult', - index=3, - number=4, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _PARAMSPEC_DIMCHECKMODE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=2660, - serialized_end=2823, + name='ParamSpec', + full_name='caffe.ParamSpec', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='caffe.ParamSpec.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='share_mode', full_name='caffe.ParamSpec.share_mode', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lr_mult', full_name='caffe.ParamSpec.lr_mult', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='decay_mult', full_name='caffe.ParamSpec.decay_mult', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PARAMSPEC_DIMCHECKMODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4010, + serialized_end=4173, ) + _LAYERPARAMETER = _descriptor.Descriptor( - name='LayerParameter', - full_name='caffe.LayerParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='name', - full_name='caffe.LayerParameter.name', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='type', - full_name='caffe.LayerParameter.type', - index=1, - number=2, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='bottom', - full_name='caffe.LayerParameter.bottom', - index=2, - number=3, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='top', - full_name='caffe.LayerParameter.top', - index=3, - number=4, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='phase', - full_name='caffe.LayerParameter.phase', - index=4, - number=10, - type=14, - cpp_type=8, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='loss_weight', - full_name='caffe.LayerParameter.loss_weight', - index=5, - number=5, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='param', - full_name='caffe.LayerParameter.param', - index=6, - number=6, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='blobs', - full_name='caffe.LayerParameter.blobs', - index=7, - number=7, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='propagate_down', - full_name='caffe.LayerParameter.propagate_down', - index=8, - number=11, - type=8, - cpp_type=7, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='include', - full_name='caffe.LayerParameter.include', - index=9, - number=8, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='exclude', - full_name='caffe.LayerParameter.exclude', - index=10, - number=9, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='transform_param', - full_name='caffe.LayerParameter.transform_param', - index=11, - number=100, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='loss_param', - full_name='caffe.LayerParameter.loss_param', - index=12, - number=101, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='accuracy_param', - full_name='caffe.LayerParameter.accuracy_param', - index=13, - number=102, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='argmax_param', - full_name='caffe.LayerParameter.argmax_param', - index=14, - number=103, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='batch_norm_param', - full_name='caffe.LayerParameter.batch_norm_param', - index=15, - number=139, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='bias_param', - full_name='caffe.LayerParameter.bias_param', - index=16, - number=141, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='clip_param', - full_name='caffe.LayerParameter.clip_param', - index=17, - number=148, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='concat_param', - full_name='caffe.LayerParameter.concat_param', - index=18, - number=104, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='contrastive_loss_param', - full_name='caffe.LayerParameter.contrastive_loss_param', - index=19, - number=105, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='convolution_param', - full_name='caffe.LayerParameter.convolution_param', - index=20, - number=106, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='crop_param', - full_name='caffe.LayerParameter.crop_param', - index=21, - number=144, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='data_param', - full_name='caffe.LayerParameter.data_param', - index=22, - number=107, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dropout_param', - full_name='caffe.LayerParameter.dropout_param', - index=23, - number=108, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dummy_data_param', - full_name='caffe.LayerParameter.dummy_data_param', - index=24, - number=109, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='eltwise_param', - full_name='caffe.LayerParameter.eltwise_param', - index=25, - number=110, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='elu_param', - full_name='caffe.LayerParameter.elu_param', - index=26, - number=140, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='embed_param', - full_name='caffe.LayerParameter.embed_param', - index=27, - number=137, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='exp_param', - full_name='caffe.LayerParameter.exp_param', - index=28, - number=111, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='flatten_param', - full_name='caffe.LayerParameter.flatten_param', - index=29, - number=135, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hdf5_data_param', - full_name='caffe.LayerParameter.hdf5_data_param', - index=30, - number=112, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hdf5_output_param', - full_name='caffe.LayerParameter.hdf5_output_param', - index=31, - number=113, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hinge_loss_param', - full_name='caffe.LayerParameter.hinge_loss_param', - index=32, - number=114, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='image_data_param', - full_name='caffe.LayerParameter.image_data_param', - index=33, - number=115, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='infogain_loss_param', - full_name='caffe.LayerParameter.infogain_loss_param', - index=34, - number=116, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='inner_product_param', - full_name='caffe.LayerParameter.inner_product_param', - index=35, - number=117, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='input_param', - full_name='caffe.LayerParameter.input_param', - index=36, - number=143, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='log_param', - full_name='caffe.LayerParameter.log_param', - index=37, - number=134, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='lrn_param', - full_name='caffe.LayerParameter.lrn_param', - index=38, - number=118, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='memory_data_param', - full_name='caffe.LayerParameter.memory_data_param', - index=39, - number=119, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='mvn_param', - full_name='caffe.LayerParameter.mvn_param', - index=40, - number=120, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='parameter_param', - full_name='caffe.LayerParameter.parameter_param', - index=41, - number=145, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pooling_param', - full_name='caffe.LayerParameter.pooling_param', - index=42, - number=121, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='power_param', - full_name='caffe.LayerParameter.power_param', - index=43, - number=122, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='prelu_param', - full_name='caffe.LayerParameter.prelu_param', - index=44, - number=131, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='python_param', - full_name='caffe.LayerParameter.python_param', - index=45, - number=130, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='recurrent_param', - full_name='caffe.LayerParameter.recurrent_param', - index=46, - number=146, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='reduction_param', - full_name='caffe.LayerParameter.reduction_param', - index=47, - number=136, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='relu_param', - full_name='caffe.LayerParameter.relu_param', - index=48, - number=123, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='reshape_param', - full_name='caffe.LayerParameter.reshape_param', - index=49, - number=133, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='scale_param', - full_name='caffe.LayerParameter.scale_param', - index=50, - number=142, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='sigmoid_param', - full_name='caffe.LayerParameter.sigmoid_param', - index=51, - number=124, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='softmax_param', - full_name='caffe.LayerParameter.softmax_param', - index=52, - number=125, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='spp_param', - full_name='caffe.LayerParameter.spp_param', - index=53, - number=132, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='slice_param', - full_name='caffe.LayerParameter.slice_param', - index=54, - number=126, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='swish_param', - full_name='caffe.LayerParameter.swish_param', - index=55, - number=147, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='tanh_param', - full_name='caffe.LayerParameter.tanh_param', - index=56, - number=127, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='threshold_param', - full_name='caffe.LayerParameter.threshold_param', - index=57, - number=128, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='tile_param', - full_name='caffe.LayerParameter.tile_param', - index=58, - number=138, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='window_data_param', - full_name='caffe.LayerParameter.window_data_param', - index=59, - number=129, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='shuffle_channel_param', - full_name='caffe.LayerParameter.shuffle_channel_param', - index=60, - number=166, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=2826, - serialized_end=5540, + name='LayerParameter', + full_name='caffe.LayerParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='caffe.LayerParameter.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='caffe.LayerParameter.type', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bottom', full_name='caffe.LayerParameter.bottom', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='top', full_name='caffe.LayerParameter.top', index=3, + number=4, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='phase', full_name='caffe.LayerParameter.phase', index=4, + number=10, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='loss_weight', full_name='caffe.LayerParameter.loss_weight', index=5, + number=5, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='param', full_name='caffe.LayerParameter.param', index=6, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='blobs', full_name='caffe.LayerParameter.blobs', index=7, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='propagate_down', full_name='caffe.LayerParameter.propagate_down', index=8, + number=11, type=8, cpp_type=7, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='include', full_name='caffe.LayerParameter.include', index=9, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exclude', full_name='caffe.LayerParameter.exclude', index=10, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='transform_param', full_name='caffe.LayerParameter.transform_param', index=11, + number=100, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='loss_param', full_name='caffe.LayerParameter.loss_param', index=12, + number=101, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='accuracy_param', full_name='caffe.LayerParameter.accuracy_param', index=13, + number=102, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='annotated_data_param', full_name='caffe.LayerParameter.annotated_data_param', index=14, + number=200, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='argmax_param', full_name='caffe.LayerParameter.argmax_param', index=15, + number=103, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='batch_norm_param', full_name='caffe.LayerParameter.batch_norm_param', index=16, + number=139, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_param', full_name='caffe.LayerParameter.bias_param', index=17, + number=141, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='concat_param', full_name='caffe.LayerParameter.concat_param', index=18, + number=104, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contrastive_loss_param', full_name='caffe.LayerParameter.contrastive_loss_param', index=19, + number=105, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='convolution_param', full_name='caffe.LayerParameter.convolution_param', index=20, + number=106, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_param', full_name='caffe.LayerParameter.crop_param', index=21, + number=144, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='data_param', full_name='caffe.LayerParameter.data_param', index=22, + number=107, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='detection_evaluate_param', full_name='caffe.LayerParameter.detection_evaluate_param', index=23, + number=205, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='detection_output_param', full_name='caffe.LayerParameter.detection_output_param', index=24, + number=204, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dropout_param', full_name='caffe.LayerParameter.dropout_param', index=25, + number=108, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dummy_data_param', full_name='caffe.LayerParameter.dummy_data_param', index=26, + number=109, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eltwise_param', full_name='caffe.LayerParameter.eltwise_param', index=27, + number=110, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='elu_param', full_name='caffe.LayerParameter.elu_param', index=28, + number=140, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='embed_param', full_name='caffe.LayerParameter.embed_param', index=29, + number=137, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exp_param', full_name='caffe.LayerParameter.exp_param', index=30, + number=111, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='flatten_param', full_name='caffe.LayerParameter.flatten_param', index=31, + number=135, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hdf5_data_param', full_name='caffe.LayerParameter.hdf5_data_param', index=32, + number=112, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hdf5_output_param', full_name='caffe.LayerParameter.hdf5_output_param', index=33, + number=113, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hinge_loss_param', full_name='caffe.LayerParameter.hinge_loss_param', index=34, + number=114, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='image_data_param', full_name='caffe.LayerParameter.image_data_param', index=35, + number=115, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='infogain_loss_param', full_name='caffe.LayerParameter.infogain_loss_param', index=36, + number=116, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='inner_product_param', full_name='caffe.LayerParameter.inner_product_param', index=37, + number=117, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='input_param', full_name='caffe.LayerParameter.input_param', index=38, + number=143, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='log_param', full_name='caffe.LayerParameter.log_param', index=39, + number=134, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lrn_param', full_name='caffe.LayerParameter.lrn_param', index=40, + number=118, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='memory_data_param', full_name='caffe.LayerParameter.memory_data_param', index=41, + number=119, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='multibox_loss_param', full_name='caffe.LayerParameter.multibox_loss_param', index=42, + number=201, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mvn_param', full_name='caffe.LayerParameter.mvn_param', index=43, + number=120, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='norm_param', full_name='caffe.LayerParameter.norm_param', index=44, + number=206, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='parameter_param', full_name='caffe.LayerParameter.parameter_param', index=45, + number=145, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='permute_param', full_name='caffe.LayerParameter.permute_param', index=46, + number=202, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pooling_param', full_name='caffe.LayerParameter.pooling_param', index=47, + number=121, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='power_param', full_name='caffe.LayerParameter.power_param', index=48, + number=122, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='prelu_param', full_name='caffe.LayerParameter.prelu_param', index=49, + number=131, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='prior_box_param', full_name='caffe.LayerParameter.prior_box_param', index=50, + number=203, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='python_param', full_name='caffe.LayerParameter.python_param', index=51, + number=130, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='recurrent_param', full_name='caffe.LayerParameter.recurrent_param', index=52, + number=146, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='reduction_param', full_name='caffe.LayerParameter.reduction_param', index=53, + number=136, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='relu_param', full_name='caffe.LayerParameter.relu_param', index=54, + number=123, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='reshape_param', full_name='caffe.LayerParameter.reshape_param', index=55, + number=133, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale_param', full_name='caffe.LayerParameter.scale_param', index=56, + number=142, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shuffle_channel_param', full_name='caffe.LayerParameter.shuffle_channel_param', index=57, + number=208, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sigmoid_param', full_name='caffe.LayerParameter.sigmoid_param', index=58, + number=124, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='softmax_param', full_name='caffe.LayerParameter.softmax_param', index=59, + number=125, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='spp_param', full_name='caffe.LayerParameter.spp_param', index=60, + number=132, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='slice_param', full_name='caffe.LayerParameter.slice_param', index=61, + number=126, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tanh_param', full_name='caffe.LayerParameter.tanh_param', index=62, + number=127, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='threshold_param', full_name='caffe.LayerParameter.threshold_param', index=63, + number=128, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tile_param', full_name='caffe.LayerParameter.tile_param', index=64, + number=138, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='video_data_param', full_name='caffe.LayerParameter.video_data_param', index=65, + number=207, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='window_data_param', full_name='caffe.LayerParameter.window_data_param', index=66, + number=129, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=4176, + serialized_end=7263, ) + _TRANSFORMATIONPARAMETER = _descriptor.Descriptor( - name='TransformationParameter', - full_name='caffe.TransformationParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='scale', - full_name='caffe.TransformationParameter.scale', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mirror', - full_name='caffe.TransformationParameter.mirror', - index=1, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='crop_size', - full_name='caffe.TransformationParameter.crop_size', - index=2, - number=3, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mean_file', - full_name='caffe.TransformationParameter.mean_file', - index=3, - number=4, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mean_value', - full_name='caffe.TransformationParameter.mean_value', - index=4, - number=5, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force_color', - full_name='caffe.TransformationParameter.force_color', - index=5, - number=6, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force_gray', - full_name='caffe.TransformationParameter.force_gray', - index=6, - number=7, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=5543, - serialized_end=5725, + name='TransformationParameter', + full_name='caffe.TransformationParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.TransformationParameter.scale', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mirror', full_name='caffe.TransformationParameter.mirror', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_size', full_name='caffe.TransformationParameter.crop_size', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_h', full_name='caffe.TransformationParameter.crop_h', index=3, + number=11, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_w', full_name='caffe.TransformationParameter.crop_w', index=4, + number=12, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mean_file', full_name='caffe.TransformationParameter.mean_file', index=5, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mean_value', full_name='caffe.TransformationParameter.mean_value', index=6, + number=5, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='force_color', full_name='caffe.TransformationParameter.force_color', index=7, + number=6, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='force_gray', full_name='caffe.TransformationParameter.force_gray', index=8, + number=7, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resize_param', full_name='caffe.TransformationParameter.resize_param', index=9, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='noise_param', full_name='caffe.TransformationParameter.noise_param', index=10, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='distort_param', full_name='caffe.TransformationParameter.distort_param', index=11, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='expand_param', full_name='caffe.TransformationParameter.expand_param', index=12, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='emit_constraint', full_name='caffe.TransformationParameter.emit_constraint', index=13, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7266, + serialized_end=7724, +) + + +_RESIZEPARAMETER = _descriptor.Descriptor( + name='ResizeParameter', + full_name='caffe.ResizeParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='prob', full_name='caffe.ResizeParameter.prob', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resize_mode', full_name='caffe.ResizeParameter.resize_mode', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='height', full_name='caffe.ResizeParameter.height', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='width', full_name='caffe.ResizeParameter.width', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='height_scale', full_name='caffe.ResizeParameter.height_scale', index=4, + number=8, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='width_scale', full_name='caffe.ResizeParameter.width_scale', index=5, + number=9, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad_mode', full_name='caffe.ResizeParameter.pad_mode', index=6, + number=5, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad_value', full_name='caffe.ResizeParameter.pad_value', index=7, + number=6, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='interp_mode', full_name='caffe.ResizeParameter.interp_mode', index=8, + number=7, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RESIZEPARAMETER_RESIZE_MODE, + _RESIZEPARAMETER_PAD_MODE, + _RESIZEPARAMETER_INTERP_MODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=7727, + serialized_end=8255, ) + +_SALTPEPPERPARAMETER = _descriptor.Descriptor( + name='SaltPepperParameter', + full_name='caffe.SaltPepperParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='fraction', full_name='caffe.SaltPepperParameter.fraction', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='value', full_name='caffe.SaltPepperParameter.value', index=1, + number=2, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8257, + serialized_end=8314, +) + + +_NOISEPARAMETER = _descriptor.Descriptor( + name='NoiseParameter', + full_name='caffe.NoiseParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='prob', full_name='caffe.NoiseParameter.prob', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hist_eq', full_name='caffe.NoiseParameter.hist_eq', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='inverse', full_name='caffe.NoiseParameter.inverse', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='decolorize', full_name='caffe.NoiseParameter.decolorize', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='gauss_blur', full_name='caffe.NoiseParameter.gauss_blur', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='jpeg', full_name='caffe.NoiseParameter.jpeg', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(-1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='posterize', full_name='caffe.NoiseParameter.posterize', index=6, + number=7, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='erode', full_name='caffe.NoiseParameter.erode', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='saltpepper', full_name='caffe.NoiseParameter.saltpepper', index=8, + number=9, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='saltpepper_param', full_name='caffe.NoiseParameter.saltpepper_param', index=9, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='clahe', full_name='caffe.NoiseParameter.clahe', index=10, + number=11, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='convert_to_hsv', full_name='caffe.NoiseParameter.convert_to_hsv', index=11, + number=12, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='convert_to_lab', full_name='caffe.NoiseParameter.convert_to_lab', index=12, + number=13, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8317, + serialized_end=8683, +) + + +_DISTORTIONPARAMETER = _descriptor.Descriptor( + name='DistortionParameter', + full_name='caffe.DistortionParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='brightness_prob', full_name='caffe.DistortionParameter.brightness_prob', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='brightness_delta', full_name='caffe.DistortionParameter.brightness_delta', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contrast_prob', full_name='caffe.DistortionParameter.contrast_prob', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contrast_lower', full_name='caffe.DistortionParameter.contrast_lower', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contrast_upper', full_name='caffe.DistortionParameter.contrast_upper', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hue_prob', full_name='caffe.DistortionParameter.hue_prob', index=5, + number=6, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hue_delta', full_name='caffe.DistortionParameter.hue_delta', index=6, + number=7, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='saturation_prob', full_name='caffe.DistortionParameter.saturation_prob', index=7, + number=8, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='saturation_lower', full_name='caffe.DistortionParameter.saturation_lower', index=8, + number=9, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='saturation_upper', full_name='caffe.DistortionParameter.saturation_upper', index=9, + number=10, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='random_order_prob', full_name='caffe.DistortionParameter.random_order_prob', index=10, + number=11, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8686, + serialized_end=9003, +) + + +_EXPANSIONPARAMETER = _descriptor.Descriptor( + name='ExpansionParameter', + full_name='caffe.ExpansionParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='prob', full_name='caffe.ExpansionParameter.prob', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_expand_ratio', full_name='caffe.ExpansionParameter.max_expand_ratio', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9005, + serialized_end=9071, +) + + _LOSSPARAMETER = _descriptor.Descriptor( - name='LossParameter', - full_name='caffe.LossParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='ignore_label', - full_name='caffe.LossParameter.ignore_label', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='normalization', - full_name='caffe.LossParameter.normalization', - index=1, - number=3, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='normalize', - full_name='caffe.LossParameter.normalize', - index=2, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=False, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _LOSSPARAMETER_NORMALIZATIONMODE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=5728, - serialized_end=5922, + name='LossParameter', + full_name='caffe.LossParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='ignore_label', full_name='caffe.LossParameter.ignore_label', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='normalization', full_name='caffe.LossParameter.normalization', index=1, + number=3, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='normalize', full_name='caffe.LossParameter.normalize', index=2, + number=2, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LOSSPARAMETER_NORMALIZATIONMODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9074, + serialized_end=9268, ) + _ACCURACYPARAMETER = _descriptor.Descriptor( - name='AccuracyParameter', - full_name='caffe.AccuracyParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='top_k', - full_name='caffe.AccuracyParameter.top_k', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.AccuracyParameter.axis', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='ignore_label', - full_name='caffe.AccuracyParameter.ignore_label', - index=2, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=5924, - serialized_end=6000, + name='AccuracyParameter', + full_name='caffe.AccuracyParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='top_k', full_name='caffe.AccuracyParameter.top_k', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.AccuracyParameter.axis', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_label', full_name='caffe.AccuracyParameter.ignore_label', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9270, + serialized_end=9346, ) -_ARGMAXPARAMETER = _descriptor.Descriptor( - name='ArgMaxParameter', - full_name='caffe.ArgMaxParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='out_max_val', - full_name='caffe.ArgMaxParameter.out_max_val', - index=0, - number=1, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='top_k', - full_name='caffe.ArgMaxParameter.top_k', - index=1, - number=2, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.ArgMaxParameter.axis', - index=2, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6002, - serialized_end=6079, + +_ANNOTATEDDATAPARAMETER = _descriptor.Descriptor( + name='AnnotatedDataParameter', + full_name='caffe.AnnotatedDataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='batch_sampler', full_name='caffe.AnnotatedDataParameter.batch_sampler', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='label_map_file', full_name='caffe.AnnotatedDataParameter.label_map_file', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='anno_type', full_name='caffe.AnnotatedDataParameter.anno_type', index=2, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9349, + serialized_end=9498, ) -_CLIPPARAMETER = _descriptor.Descriptor( - name='ClipParameter', - full_name='caffe.ClipParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='min', - full_name='caffe.ClipParameter.min', - index=0, - number=1, - type=2, - cpp_type=6, - label=2, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='max', - full_name='caffe.ClipParameter.max', - index=1, - number=2, - type=2, - cpp_type=6, - label=2, - has_default_value=False, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6081, - serialized_end=6122, + +_ARGMAXPARAMETER = _descriptor.Descriptor( + name='ArgMaxParameter', + full_name='caffe.ArgMaxParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='out_max_val', full_name='caffe.ArgMaxParameter.out_max_val', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='top_k', full_name='caffe.ArgMaxParameter.top_k', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.ArgMaxParameter.axis', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9500, + serialized_end=9577, ) + _CONCATPARAMETER = _descriptor.Descriptor( - name='ConcatParameter', - full_name='caffe.ConcatParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.ConcatParameter.axis', - index=0, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='concat_dim', - full_name='caffe.ConcatParameter.concat_dim', - index=1, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6124, - serialized_end=6181, + name='ConcatParameter', + full_name='caffe.ConcatParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.ConcatParameter.axis', index=0, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='concat_dim', full_name='caffe.ConcatParameter.concat_dim', index=1, + number=1, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9579, + serialized_end=9636, ) + _BATCHNORMPARAMETER = _descriptor.Descriptor( - name='BatchNormParameter', - full_name='caffe.BatchNormParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='use_global_stats', - full_name='caffe.BatchNormParameter.use_global_stats', - index=0, - number=1, - type=8, - cpp_type=7, - label=1, - has_default_value=False, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='moving_average_fraction', - full_name='caffe.BatchNormParameter.moving_average_fraction', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.999), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='eps', - full_name='caffe.BatchNormParameter.eps', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1e-05), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6183, - serialized_end=6289, + name='BatchNormParameter', + full_name='caffe.BatchNormParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='use_global_stats', full_name='caffe.BatchNormParameter.use_global_stats', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='moving_average_fraction', full_name='caffe.BatchNormParameter.moving_average_fraction', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.999), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eps', full_name='caffe.BatchNormParameter.eps', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1e-05), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9638, + serialized_end=9744, ) + _BIASPARAMETER = _descriptor.Descriptor( - name='BiasParameter', - full_name='caffe.BiasParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.BiasParameter.axis', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='num_axes', - full_name='caffe.BiasParameter.num_axes', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='filler', - full_name='caffe.BiasParameter.filler', - index=2, - number=3, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6291, - serialized_end=6384, + name='BiasParameter', + full_name='caffe.BiasParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.BiasParameter.axis', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_axes', full_name='caffe.BiasParameter.num_axes', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='filler', full_name='caffe.BiasParameter.filler', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9746, + serialized_end=9839, ) + _CONTRASTIVELOSSPARAMETER = _descriptor.Descriptor( - name='ContrastiveLossParameter', - full_name='caffe.ContrastiveLossParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='margin', - full_name='caffe.ContrastiveLossParameter.margin', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='legacy_version', - full_name='caffe.ContrastiveLossParameter.legacy_version', - index=1, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6386, - serialized_end=6462, + name='ContrastiveLossParameter', + full_name='caffe.ContrastiveLossParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='margin', full_name='caffe.ContrastiveLossParameter.margin', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='legacy_version', full_name='caffe.ContrastiveLossParameter.legacy_version', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9841, + serialized_end=9917, ) + _CONVOLUTIONPARAMETER = _descriptor.Descriptor( - name='ConvolutionParameter', - full_name='caffe.ConvolutionParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='num_output', - full_name='caffe.ConvolutionParameter.num_output', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_term', - full_name='caffe.ConvolutionParameter.bias_term', - index=1, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pad', - full_name='caffe.ConvolutionParameter.pad', - index=2, - number=3, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='kernel_size', - full_name='caffe.ConvolutionParameter.kernel_size', - index=3, - number=4, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='stride', - full_name='caffe.ConvolutionParameter.stride', - index=4, - number=6, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dilation', - full_name='caffe.ConvolutionParameter.dilation', - index=5, - number=18, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pad_h', - full_name='caffe.ConvolutionParameter.pad_h', - index=6, - number=9, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pad_w', - full_name='caffe.ConvolutionParameter.pad_w', - index=7, - number=10, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='kernel_h', - full_name='caffe.ConvolutionParameter.kernel_h', - index=8, - number=11, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='kernel_w', - full_name='caffe.ConvolutionParameter.kernel_w', - index=9, - number=12, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='stride_h', - full_name='caffe.ConvolutionParameter.stride_h', - index=10, - number=13, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='stride_w', - full_name='caffe.ConvolutionParameter.stride_w', - index=11, - number=14, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='group', - full_name='caffe.ConvolutionParameter.group', - index=12, - number=5, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_filler', - full_name='caffe.ConvolutionParameter.weight_filler', - index=13, - number=7, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_filler', - full_name='caffe.ConvolutionParameter.bias_filler', - index=14, - number=8, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='engine', - full_name='caffe.ConvolutionParameter.engine', - index=15, - number=15, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.ConvolutionParameter.axis', - index=16, - number=16, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force_nd_im2col', - full_name='caffe.ConvolutionParameter.force_nd_im2col', - index=17, - number=17, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _CONVOLUTIONPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6465, - serialized_end=6973, + name='ConvolutionParameter', + full_name='caffe.ConvolutionParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='num_output', full_name='caffe.ConvolutionParameter.num_output', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_term', full_name='caffe.ConvolutionParameter.bias_term', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad', full_name='caffe.ConvolutionParameter.pad', index=2, + number=3, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernel_size', full_name='caffe.ConvolutionParameter.kernel_size', index=3, + number=4, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride', full_name='caffe.ConvolutionParameter.stride', index=4, + number=6, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dilation', full_name='caffe.ConvolutionParameter.dilation', index=5, + number=18, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad_h', full_name='caffe.ConvolutionParameter.pad_h', index=6, + number=9, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad_w', full_name='caffe.ConvolutionParameter.pad_w', index=7, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernel_h', full_name='caffe.ConvolutionParameter.kernel_h', index=8, + number=11, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernel_w', full_name='caffe.ConvolutionParameter.kernel_w', index=9, + number=12, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride_h', full_name='caffe.ConvolutionParameter.stride_h', index=10, + number=13, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride_w', full_name='caffe.ConvolutionParameter.stride_w', index=11, + number=14, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='group', full_name='caffe.ConvolutionParameter.group', index=12, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_filler', full_name='caffe.ConvolutionParameter.weight_filler', index=13, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_filler', full_name='caffe.ConvolutionParameter.bias_filler', index=14, + number=8, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.ConvolutionParameter.engine', index=15, + number=15, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.ConvolutionParameter.axis', index=16, + number=16, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='force_nd_im2col', full_name='caffe.ConvolutionParameter.force_nd_im2col', index=17, + number=17, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _CONVOLUTIONPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=9920, + serialized_end=10428, ) + _CROPPARAMETER = _descriptor.Descriptor( - name='CropParameter', - full_name='caffe.CropParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.CropParameter.axis', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=2, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='offset', - full_name='caffe.CropParameter.offset', - index=1, - number=2, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=6975, - serialized_end=7023, + name='CropParameter', + full_name='caffe.CropParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.CropParameter.axis', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=2, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='offset', full_name='caffe.CropParameter.offset', index=1, + number=2, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10430, + serialized_end=10478, ) + _DATAPARAMETER = _descriptor.Descriptor( - name='DataParameter', - full_name='caffe.DataParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='source', - full_name='caffe.DataParameter.source', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='batch_size', - full_name='caffe.DataParameter.batch_size', - index=1, - number=4, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='rand_skip', - full_name='caffe.DataParameter.rand_skip', - index=2, - number=7, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='backend', - full_name='caffe.DataParameter.backend', - index=3, - number=8, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.DataParameter.scale', - index=4, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='mean_file', - full_name='caffe.DataParameter.mean_file', - index=5, - number=3, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='crop_size', - full_name='caffe.DataParameter.crop_size', - index=6, - number=5, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='mirror', - full_name='caffe.DataParameter.mirror', - index=7, - number=6, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='force_encoded_color', - full_name='caffe.DataParameter.force_encoded_color', - index=8, - number=9, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='prefetch', - full_name='caffe.DataParameter.prefetch', - index=9, - number=10, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=4, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _DATAPARAMETER_DB, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7026, - serialized_end=7318, + name='DataParameter', + full_name='caffe.DataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='caffe.DataParameter.source', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='batch_size', full_name='caffe.DataParameter.batch_size', index=1, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='rand_skip', full_name='caffe.DataParameter.rand_skip', index=2, + number=7, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='backend', full_name='caffe.DataParameter.backend', index=3, + number=8, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.DataParameter.scale', index=4, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mean_file', full_name='caffe.DataParameter.mean_file', index=5, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_size', full_name='caffe.DataParameter.crop_size', index=6, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mirror', full_name='caffe.DataParameter.mirror', index=7, + number=6, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='force_encoded_color', full_name='caffe.DataParameter.force_encoded_color', index=8, + number=9, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='prefetch', full_name='caffe.DataParameter.prefetch', index=9, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=4, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _DATAPARAMETER_DB, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10481, + serialized_end=10773, +) + + +_DETECTIONEVALUATEPARAMETER = _descriptor.Descriptor( + name='DetectionEvaluateParameter', + full_name='caffe.DetectionEvaluateParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='num_classes', full_name='caffe.DetectionEvaluateParameter.num_classes', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='background_label_id', full_name='caffe.DetectionEvaluateParameter.background_label_id', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='overlap_threshold', full_name='caffe.DetectionEvaluateParameter.overlap_threshold', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='evaluate_difficult_gt', full_name='caffe.DetectionEvaluateParameter.evaluate_difficult_gt', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name_size_file', full_name='caffe.DetectionEvaluateParameter.name_size_file', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resize_param', full_name='caffe.DetectionEvaluateParameter.resize_param', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10776, + serialized_end=10996, +) + + +_NONMAXIMUMSUPPRESSIONPARAMETER = _descriptor.Descriptor( + name='NonMaximumSuppressionParameter', + full_name='caffe.NonMaximumSuppressionParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='nms_threshold', full_name='caffe.NonMaximumSuppressionParameter.nms_threshold', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.3), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='top_k', full_name='caffe.NonMaximumSuppressionParameter.top_k', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eta', full_name='caffe.NonMaximumSuppressionParameter.eta', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=10998, + serialized_end=11089, +) + + +_SAVEOUTPUTPARAMETER = _descriptor.Descriptor( + name='SaveOutputParameter', + full_name='caffe.SaveOutputParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='output_directory', full_name='caffe.SaveOutputParameter.output_directory', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='output_name_prefix', full_name='caffe.SaveOutputParameter.output_name_prefix', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='output_format', full_name='caffe.SaveOutputParameter.output_format', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='label_map_file', full_name='caffe.SaveOutputParameter.label_map_file', index=3, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name_size_file', full_name='caffe.SaveOutputParameter.name_size_file', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_test_image', full_name='caffe.SaveOutputParameter.num_test_image', index=5, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='resize_param', full_name='caffe.SaveOutputParameter.resize_param', index=6, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11092, + serialized_end=11308, ) + +_DETECTIONOUTPUTPARAMETER = _descriptor.Descriptor( + name='DetectionOutputParameter', + full_name='caffe.DetectionOutputParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='num_classes', full_name='caffe.DetectionOutputParameter.num_classes', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='share_location', full_name='caffe.DetectionOutputParameter.share_location', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='background_label_id', full_name='caffe.DetectionOutputParameter.background_label_id', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='nms_param', full_name='caffe.DetectionOutputParameter.nms_param', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='save_output_param', full_name='caffe.DetectionOutputParameter.save_output_param', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='code_type', full_name='caffe.DetectionOutputParameter.code_type', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='variance_encoded_in_target', full_name='caffe.DetectionOutputParameter.variance_encoded_in_target', index=6, + number=8, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='keep_top_k', full_name='caffe.DetectionOutputParameter.keep_top_k', index=7, + number=7, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=-1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='confidence_threshold', full_name='caffe.DetectionOutputParameter.confidence_threshold', index=8, + number=9, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='visualize', full_name='caffe.DetectionOutputParameter.visualize', index=9, + number=10, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='visualize_threshold', full_name='caffe.DetectionOutputParameter.visualize_threshold', index=10, + number=11, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='save_file', full_name='caffe.DetectionOutputParameter.save_file', index=11, + number=12, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11311, + serialized_end=11766, +) + + _DROPOUTPARAMETER = _descriptor.Descriptor( - name='DropoutParameter', - full_name='caffe.DropoutParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='dropout_ratio', - full_name='caffe.DropoutParameter.dropout_ratio', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.5), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7320, - serialized_end=7366, + name='DropoutParameter', + full_name='caffe.DropoutParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='dropout_ratio', full_name='caffe.DropoutParameter.dropout_ratio', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11768, + serialized_end=11814, ) + _DUMMYDATAPARAMETER = _descriptor.Descriptor( - name='DummyDataParameter', - full_name='caffe.DummyDataParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='data_filler', - full_name='caffe.DummyDataParameter.data_filler', - index=0, - number=1, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='shape', - full_name='caffe.DummyDataParameter.shape', - index=1, - number=6, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='num', - full_name='caffe.DummyDataParameter.num', - index=2, - number=2, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='channels', - full_name='caffe.DummyDataParameter.channels', - index=3, - number=3, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='height', - full_name='caffe.DummyDataParameter.height', - index=4, - number=4, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='width', - full_name='caffe.DummyDataParameter.width', - index=5, - number=5, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7369, - serialized_end=7529, + name='DummyDataParameter', + full_name='caffe.DummyDataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='data_filler', full_name='caffe.DummyDataParameter.data_filler', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shape', full_name='caffe.DummyDataParameter.shape', index=1, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num', full_name='caffe.DummyDataParameter.num', index=2, + number=2, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='channels', full_name='caffe.DummyDataParameter.channels', index=3, + number=3, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='height', full_name='caffe.DummyDataParameter.height', index=4, + number=4, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='width', full_name='caffe.DummyDataParameter.width', index=5, + number=5, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11817, + serialized_end=11977, ) + _ELTWISEPARAMETER = _descriptor.Descriptor( - name='EltwiseParameter', - full_name='caffe.EltwiseParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='operation', - full_name='caffe.EltwiseParameter.operation', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='coeff', - full_name='caffe.EltwiseParameter.coeff', - index=1, - number=2, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='stable_prod_grad', - full_name='caffe.EltwiseParameter.stable_prod_grad', - index=2, - number=3, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _ELTWISEPARAMETER_ELTWISEOP, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7532, - serialized_end=7697, + name='EltwiseParameter', + full_name='caffe.EltwiseParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='operation', full_name='caffe.EltwiseParameter.operation', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='coeff', full_name='caffe.EltwiseParameter.coeff', index=1, + number=2, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stable_prod_grad', full_name='caffe.EltwiseParameter.stable_prod_grad', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _ELTWISEPARAMETER_ELTWISEOP, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=11980, + serialized_end=12145, ) + _ELUPARAMETER = _descriptor.Descriptor( - name='ELUParameter', - full_name='caffe.ELUParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='alpha', - full_name='caffe.ELUParameter.alpha', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7699, - serialized_end=7731, + name='ELUParameter', + full_name='caffe.ELUParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='alpha', full_name='caffe.ELUParameter.alpha', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12147, + serialized_end=12179, ) + _EMBEDPARAMETER = _descriptor.Descriptor( - name='EmbedParameter', - full_name='caffe.EmbedParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='num_output', - full_name='caffe.EmbedParameter.num_output', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='input_dim', - full_name='caffe.EmbedParameter.input_dim', - index=1, - number=2, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='bias_term', - full_name='caffe.EmbedParameter.bias_term', - index=2, - number=3, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_filler', - full_name='caffe.EmbedParameter.weight_filler', - index=3, - number=4, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_filler', - full_name='caffe.EmbedParameter.bias_filler', - index=4, - number=5, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7734, - serialized_end=7906, + name='EmbedParameter', + full_name='caffe.EmbedParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='num_output', full_name='caffe.EmbedParameter.num_output', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='input_dim', full_name='caffe.EmbedParameter.input_dim', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_term', full_name='caffe.EmbedParameter.bias_term', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_filler', full_name='caffe.EmbedParameter.weight_filler', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_filler', full_name='caffe.EmbedParameter.bias_filler', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12182, + serialized_end=12354, ) + _EXPPARAMETER = _descriptor.Descriptor( - name='ExpParameter', - full_name='caffe.ExpParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='base', - full_name='caffe.ExpParameter.base', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(-1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.ExpParameter.scale', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='shift', - full_name='caffe.ExpParameter.shift', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7908, - serialized_end=7976, + name='ExpParameter', + full_name='caffe.ExpParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='base', full_name='caffe.ExpParameter.base', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(-1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.ExpParameter.scale', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shift', full_name='caffe.ExpParameter.shift', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12356, + serialized_end=12424, ) + _FLATTENPARAMETER = _descriptor.Descriptor( - name='FlattenParameter', - full_name='caffe.FlattenParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.FlattenParameter.axis', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='end_axis', - full_name='caffe.FlattenParameter.end_axis', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=-1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=7978, - serialized_end=8035, + name='FlattenParameter', + full_name='caffe.FlattenParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.FlattenParameter.axis', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='end_axis', full_name='caffe.FlattenParameter.end_axis', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=-1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12426, + serialized_end=12483, ) + _HDF5DATAPARAMETER = _descriptor.Descriptor( - name='HDF5DataParameter', - full_name='caffe.HDF5DataParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='source', - full_name='caffe.HDF5DataParameter.source', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='batch_size', - full_name='caffe.HDF5DataParameter.batch_size', - index=1, - number=2, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='shuffle', - full_name='caffe.HDF5DataParameter.shuffle', - index=2, - number=3, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8037, - serialized_end=8116, + name='HDF5DataParameter', + full_name='caffe.HDF5DataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='caffe.HDF5DataParameter.source', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='batch_size', full_name='caffe.HDF5DataParameter.batch_size', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shuffle', full_name='caffe.HDF5DataParameter.shuffle', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12485, + serialized_end=12564, ) + _HDF5OUTPUTPARAMETER = _descriptor.Descriptor( - name='HDF5OutputParameter', - full_name='caffe.HDF5OutputParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='file_name', - full_name='caffe.HDF5OutputParameter.file_name', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8118, - serialized_end=8158, + name='HDF5OutputParameter', + full_name='caffe.HDF5OutputParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='file_name', full_name='caffe.HDF5OutputParameter.file_name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12566, + serialized_end=12606, ) + _HINGELOSSPARAMETER = _descriptor.Descriptor( - name='HingeLossParameter', - full_name='caffe.HingeLossParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='norm', - full_name='caffe.HingeLossParameter.norm', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _HINGELOSSPARAMETER_NORM, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8160, - serialized_end=8254, + name='HingeLossParameter', + full_name='caffe.HingeLossParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='norm', full_name='caffe.HingeLossParameter.norm', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _HINGELOSSPARAMETER_NORM, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12608, + serialized_end=12702, ) + _IMAGEDATAPARAMETER = _descriptor.Descriptor( - name='ImageDataParameter', - full_name='caffe.ImageDataParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='source', - full_name='caffe.ImageDataParameter.source', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='batch_size', - full_name='caffe.ImageDataParameter.batch_size', - index=1, - number=4, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='rand_skip', - full_name='caffe.ImageDataParameter.rand_skip', - index=2, - number=7, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='shuffle', - full_name='caffe.ImageDataParameter.shuffle', - index=3, - number=8, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='new_height', - full_name='caffe.ImageDataParameter.new_height', - index=4, - number=9, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='new_width', - full_name='caffe.ImageDataParameter.new_width', - index=5, - number=10, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='is_color', - full_name='caffe.ImageDataParameter.is_color', - index=6, - number=11, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.ImageDataParameter.scale', - index=7, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mean_file', - full_name='caffe.ImageDataParameter.mean_file', - index=8, - number=3, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='crop_size', - full_name='caffe.ImageDataParameter.crop_size', - index=9, - number=5, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='mirror', - full_name='caffe.ImageDataParameter.mirror', - index=10, - number=6, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='root_folder', - full_name='caffe.ImageDataParameter.root_folder', - index=11, - number=12, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8257, - serialized_end=8536, + name='ImageDataParameter', + full_name='caffe.ImageDataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='caffe.ImageDataParameter.source', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='batch_size', full_name='caffe.ImageDataParameter.batch_size', index=1, + number=4, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='rand_skip', full_name='caffe.ImageDataParameter.rand_skip', index=2, + number=7, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shuffle', full_name='caffe.ImageDataParameter.shuffle', index=3, + number=8, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_height', full_name='caffe.ImageDataParameter.new_height', index=4, + number=9, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_width', full_name='caffe.ImageDataParameter.new_width', index=5, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='is_color', full_name='caffe.ImageDataParameter.is_color', index=6, + number=11, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.ImageDataParameter.scale', index=7, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mean_file', full_name='caffe.ImageDataParameter.mean_file', index=8, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_size', full_name='caffe.ImageDataParameter.crop_size', index=9, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mirror', full_name='caffe.ImageDataParameter.mirror', index=10, + number=6, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='root_folder', full_name='caffe.ImageDataParameter.root_folder', index=11, + number=12, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12705, + serialized_end=12984, ) + _INFOGAINLOSSPARAMETER = _descriptor.Descriptor( - name='InfogainLossParameter', - full_name='caffe.InfogainLossParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='source', - full_name='caffe.InfogainLossParameter.source', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='axis', - full_name='caffe.InfogainLossParameter.axis', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8538, - serialized_end=8594, + name='InfogainLossParameter', + full_name='caffe.InfogainLossParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='caffe.InfogainLossParameter.source', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=12986, + serialized_end=13025, ) + _INNERPRODUCTPARAMETER = _descriptor.Descriptor( - name='InnerProductParameter', - full_name='caffe.InnerProductParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='num_output', - full_name='caffe.InnerProductParameter.num_output', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_term', - full_name='caffe.InnerProductParameter.bias_term', - index=1, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_filler', - full_name='caffe.InnerProductParameter.weight_filler', - index=2, - number=3, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_filler', - full_name='caffe.InnerProductParameter.bias_filler', - index=3, - number=4, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='axis', - full_name='caffe.InnerProductParameter.axis', - index=4, - number=5, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='transpose', - full_name='caffe.InnerProductParameter.transpose', - index=5, - number=6, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8597, - serialized_end=8800, + name='InnerProductParameter', + full_name='caffe.InnerProductParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='num_output', full_name='caffe.InnerProductParameter.num_output', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_term', full_name='caffe.InnerProductParameter.bias_term', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_filler', full_name='caffe.InnerProductParameter.weight_filler', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_filler', full_name='caffe.InnerProductParameter.bias_filler', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.InnerProductParameter.axis', index=4, + number=5, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='transpose', full_name='caffe.InnerProductParameter.transpose', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13028, + serialized_end=13231, ) + _INPUTPARAMETER = _descriptor.Descriptor( - name='InputParameter', - full_name='caffe.InputParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='shape', - full_name='caffe.InputParameter.shape', - index=0, - number=1, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8802, - serialized_end=8851, + name='InputParameter', + full_name='caffe.InputParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='shape', full_name='caffe.InputParameter.shape', index=0, + number=1, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13233, + serialized_end=13282, ) + _LOGPARAMETER = _descriptor.Descriptor( - name='LogParameter', - full_name='caffe.LogParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='base', - full_name='caffe.LogParameter.base', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(-1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.LogParameter.scale', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='shift', - full_name='caffe.LogParameter.shift', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8853, - serialized_end=8921, + name='LogParameter', + full_name='caffe.LogParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='base', full_name='caffe.LogParameter.base', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(-1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.LogParameter.scale', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shift', full_name='caffe.LogParameter.shift', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13284, + serialized_end=13352, ) + _LRNPARAMETER = _descriptor.Descriptor( - name='LRNParameter', - full_name='caffe.LRNParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='local_size', - full_name='caffe.LRNParameter.local_size', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=5, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='alpha', - full_name='caffe.LRNParameter.alpha', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='beta', - full_name='caffe.LRNParameter.beta', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.75), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='norm_region', - full_name='caffe.LRNParameter.norm_region', - index=3, - number=4, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='k', - full_name='caffe.LRNParameter.k', - index=4, - number=5, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.LRNParameter.engine', - index=5, - number=6, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _LRNPARAMETER_NORMREGION, - _LRNPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=8924, - serialized_end=9236, + name='LRNParameter', + full_name='caffe.LRNParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='local_size', full_name='caffe.LRNParameter.local_size', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=5, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='alpha', full_name='caffe.LRNParameter.alpha', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='beta', full_name='caffe.LRNParameter.beta', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.75), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='norm_region', full_name='caffe.LRNParameter.norm_region', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='k', full_name='caffe.LRNParameter.k', index=4, + number=5, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.LRNParameter.engine', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _LRNPARAMETER_NORMREGION, + _LRNPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13355, + serialized_end=13667, ) + _MEMORYDATAPARAMETER = _descriptor.Descriptor( - name='MemoryDataParameter', - full_name='caffe.MemoryDataParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='batch_size', - full_name='caffe.MemoryDataParameter.batch_size', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='channels', - full_name='caffe.MemoryDataParameter.channels', - index=1, - number=2, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='height', - full_name='caffe.MemoryDataParameter.height', - index=2, - number=3, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='width', - full_name='caffe.MemoryDataParameter.width', - index=3, - number=4, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=9238, - serialized_end=9328, + name='MemoryDataParameter', + full_name='caffe.MemoryDataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='batch_size', full_name='caffe.MemoryDataParameter.batch_size', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='channels', full_name='caffe.MemoryDataParameter.channels', index=1, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='height', full_name='caffe.MemoryDataParameter.height', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='width', full_name='caffe.MemoryDataParameter.width', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13669, + serialized_end=13759, ) + +_MULTIBOXLOSSPARAMETER = _descriptor.Descriptor( + name='MultiBoxLossParameter', + full_name='caffe.MultiBoxLossParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='loc_loss_type', full_name='caffe.MultiBoxLossParameter.loc_loss_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='conf_loss_type', full_name='caffe.MultiBoxLossParameter.conf_loss_type', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='loc_weight', full_name='caffe.MultiBoxLossParameter.loc_weight', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_classes', full_name='caffe.MultiBoxLossParameter.num_classes', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='share_location', full_name='caffe.MultiBoxLossParameter.share_location', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='match_type', full_name='caffe.MultiBoxLossParameter.match_type', index=5, + number=6, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='overlap_threshold', full_name='caffe.MultiBoxLossParameter.overlap_threshold', index=6, + number=7, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='use_prior_for_matching', full_name='caffe.MultiBoxLossParameter.use_prior_for_matching', index=7, + number=8, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='background_label_id', full_name='caffe.MultiBoxLossParameter.background_label_id', index=8, + number=9, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='use_difficult_gt', full_name='caffe.MultiBoxLossParameter.use_difficult_gt', index=9, + number=10, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='do_neg_mining', full_name='caffe.MultiBoxLossParameter.do_neg_mining', index=10, + number=11, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='neg_pos_ratio', full_name='caffe.MultiBoxLossParameter.neg_pos_ratio', index=11, + number=12, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(3), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='neg_overlap', full_name='caffe.MultiBoxLossParameter.neg_overlap', index=12, + number=13, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='code_type', full_name='caffe.MultiBoxLossParameter.code_type', index=13, + number=14, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='encode_variance_in_target', full_name='caffe.MultiBoxLossParameter.encode_variance_in_target', index=14, + number=16, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='map_object_to_agnostic', full_name='caffe.MultiBoxLossParameter.map_object_to_agnostic', index=15, + number=17, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='ignore_cross_boundary_bbox', full_name='caffe.MultiBoxLossParameter.ignore_cross_boundary_bbox', index=16, + number=18, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bp_inside', full_name='caffe.MultiBoxLossParameter.bp_inside', index=17, + number=19, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mining_type', full_name='caffe.MultiBoxLossParameter.mining_type', index=18, + number=20, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='nms_param', full_name='caffe.MultiBoxLossParameter.nms_param', index=19, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sample_size', full_name='caffe.MultiBoxLossParameter.sample_size', index=20, + number=22, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=64, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='use_prior_for_nms', full_name='caffe.MultiBoxLossParameter.use_prior_for_nms', index=21, + number=23, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _MULTIBOXLOSSPARAMETER_LOCLOSSTYPE, + _MULTIBOXLOSSPARAMETER_CONFLOSSTYPE, + _MULTIBOXLOSSPARAMETER_MATCHTYPE, + _MULTIBOXLOSSPARAMETER_MININGTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=13762, + serialized_end=14890, +) + + _MVNPARAMETER = _descriptor.Descriptor( - name='MVNParameter', - full_name='caffe.MVNParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='normalize_variance', - full_name='caffe.MVNParameter.normalize_variance', - index=0, - number=1, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='across_channels', - full_name='caffe.MVNParameter.across_channels', - index=1, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='eps', - full_name='caffe.MVNParameter.eps', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1e-09), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=9330, - serialized_end=9430, + name='MVNParameter', + full_name='caffe.MVNParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='normalize_variance', full_name='caffe.MVNParameter.normalize_variance', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='across_channels', full_name='caffe.MVNParameter.across_channels', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eps', full_name='caffe.MVNParameter.eps', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1e-09), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=14892, + serialized_end=14992, ) + +_NORMALIZEPARAMETER = _descriptor.Descriptor( + name='NormalizeParameter', + full_name='caffe.NormalizeParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='across_spatial', full_name='caffe.NormalizeParameter.across_spatial', index=0, + number=1, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale_filler', full_name='caffe.NormalizeParameter.scale_filler', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='channel_shared', full_name='caffe.NormalizeParameter.channel_shared', index=2, + number=3, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eps', full_name='caffe.NormalizeParameter.eps', index=3, + number=4, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1e-10), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=14995, + serialized_end=15141, +) + + _PARAMETERPARAMETER = _descriptor.Descriptor( - name='ParameterParameter', - full_name='caffe.ParameterParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='shape', - full_name='caffe.ParameterParameter.shape', - index=0, - number=1, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=9432, - serialized_end=9485, + name='ParameterParameter', + full_name='caffe.ParameterParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='shape', full_name='caffe.ParameterParameter.shape', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=15143, + serialized_end=15196, +) + + +_PERMUTEPARAMETER = _descriptor.Descriptor( + name='PermuteParameter', + full_name='caffe.PermuteParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='order', full_name='caffe.PermuteParameter.order', index=0, + number=1, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=15198, + serialized_end=15231, ) + _POOLINGPARAMETER = _descriptor.Descriptor( - name='PoolingParameter', - full_name='caffe.PoolingParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='pool', - full_name='caffe.PoolingParameter.pool', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pad', - full_name='caffe.PoolingParameter.pad', - index=1, - number=4, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pad_h', - full_name='caffe.PoolingParameter.pad_h', - index=2, - number=9, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pad_w', - full_name='caffe.PoolingParameter.pad_w', - index=3, - number=10, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='kernel_size', - full_name='caffe.PoolingParameter.kernel_size', - index=4, - number=2, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='kernel_h', - full_name='caffe.PoolingParameter.kernel_h', - index=5, - number=5, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='kernel_w', - full_name='caffe.PoolingParameter.kernel_w', - index=6, - number=6, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stride', - full_name='caffe.PoolingParameter.stride', - index=7, - number=3, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stride_h', - full_name='caffe.PoolingParameter.stride_h', - index=8, - number=7, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stride_w', - full_name='caffe.PoolingParameter.stride_w', - index=9, - number=8, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.PoolingParameter.engine', - index=10, - number=11, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='global_pooling', - full_name='caffe.PoolingParameter.global_pooling', - index=11, - number=12, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='round_mode', - full_name='caffe.PoolingParameter.round_mode', - index=12, - number=13, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _POOLINGPARAMETER_POOLMETHOD, - _POOLINGPARAMETER_ENGINE, - _POOLINGPARAMETER_ROUNDMODE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=9488, - serialized_end=10001, + name='PoolingParameter', + full_name='caffe.PoolingParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='pool', full_name='caffe.PoolingParameter.pool', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad', full_name='caffe.PoolingParameter.pad', index=1, + number=4, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad_h', full_name='caffe.PoolingParameter.pad_h', index=2, + number=9, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad_w', full_name='caffe.PoolingParameter.pad_w', index=3, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernel_size', full_name='caffe.PoolingParameter.kernel_size', index=4, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernel_h', full_name='caffe.PoolingParameter.kernel_h', index=5, + number=5, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernel_w', full_name='caffe.PoolingParameter.kernel_w', index=6, + number=6, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride', full_name='caffe.PoolingParameter.stride', index=7, + number=3, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride_h', full_name='caffe.PoolingParameter.stride_h', index=8, + number=7, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride_w', full_name='caffe.PoolingParameter.stride_w', index=9, + number=8, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.PoolingParameter.engine', index=10, + number=11, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='global_pooling', full_name='caffe.PoolingParameter.global_pooling', index=11, + number=12, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _POOLINGPARAMETER_POOLMETHOD, + _POOLINGPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=15234, + serialized_end=15652, ) + _POWERPARAMETER = _descriptor.Descriptor( - name='PowerParameter', - full_name='caffe.PowerParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='power', - full_name='caffe.PowerParameter.power', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.PowerParameter.scale', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='shift', - full_name='caffe.PowerParameter.shift', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10003, - serialized_end=10073, + name='PowerParameter', + full_name='caffe.PowerParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='power', full_name='caffe.PowerParameter.power', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.PowerParameter.scale', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shift', full_name='caffe.PowerParameter.shift', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=15654, + serialized_end=15724, +) + + +_PRIORBOXPARAMETER = _descriptor.Descriptor( + name='PriorBoxParameter', + full_name='caffe.PriorBoxParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='min_size', full_name='caffe.PriorBoxParameter.min_size', index=0, + number=1, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='max_size', full_name='caffe.PriorBoxParameter.max_size', index=1, + number=2, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='aspect_ratio', full_name='caffe.PriorBoxParameter.aspect_ratio', index=2, + number=3, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='flip', full_name='caffe.PriorBoxParameter.flip', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='clip', full_name='caffe.PriorBoxParameter.clip', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='variance', full_name='caffe.PriorBoxParameter.variance', index=5, + number=6, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='img_size', full_name='caffe.PriorBoxParameter.img_size', index=6, + number=7, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='img_h', full_name='caffe.PriorBoxParameter.img_h', index=7, + number=8, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='img_w', full_name='caffe.PriorBoxParameter.img_w', index=8, + number=9, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='step', full_name='caffe.PriorBoxParameter.step', index=9, + number=10, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='step_h', full_name='caffe.PriorBoxParameter.step_h', index=10, + number=11, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='step_w', full_name='caffe.PriorBoxParameter.step_w', index=11, + number=12, type=2, cpp_type=6, label=1, + has_default_value=False, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='offset', full_name='caffe.PriorBoxParameter.offset', index=12, + number=13, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _PRIORBOXPARAMETER_CODETYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=15727, + serialized_end=16036, ) + _PYTHONPARAMETER = _descriptor.Descriptor( - name='PythonParameter', - full_name='caffe.PythonParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='module', - full_name='caffe.PythonParameter.module', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='layer', - full_name='caffe.PythonParameter.layer', - index=1, - number=2, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='param_str', - full_name='caffe.PythonParameter.param_str', - index=2, - number=3, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='share_in_parallel', - full_name='caffe.PythonParameter.share_in_parallel', - index=3, - number=4, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10075, - serialized_end=10178, + name='PythonParameter', + full_name='caffe.PythonParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='module', full_name='caffe.PythonParameter.module', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layer', full_name='caffe.PythonParameter.layer', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='param_str', full_name='caffe.PythonParameter.param_str', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='share_in_parallel', full_name='caffe.PythonParameter.share_in_parallel', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16038, + serialized_end=16141, ) + _RECURRENTPARAMETER = _descriptor.Descriptor( - name='RecurrentParameter', - full_name='caffe.RecurrentParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='num_output', - full_name='caffe.RecurrentParameter.num_output', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_filler', - full_name='caffe.RecurrentParameter.weight_filler', - index=1, - number=2, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_filler', - full_name='caffe.RecurrentParameter.bias_filler', - index=2, - number=3, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='debug_info', - full_name='caffe.RecurrentParameter.debug_info', - index=3, - number=4, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='expose_hidden', - full_name='caffe.RecurrentParameter.expose_hidden', - index=4, - number=5, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10181, - serialized_end=10373, + name='RecurrentParameter', + full_name='caffe.RecurrentParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='num_output', full_name='caffe.RecurrentParameter.num_output', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_filler', full_name='caffe.RecurrentParameter.weight_filler', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_filler', full_name='caffe.RecurrentParameter.bias_filler', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='debug_info', full_name='caffe.RecurrentParameter.debug_info', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='expose_hidden', full_name='caffe.RecurrentParameter.expose_hidden', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16144, + serialized_end=16336, ) + _REDUCTIONPARAMETER = _descriptor.Descriptor( - name='ReductionParameter', - full_name='caffe.ReductionParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='operation', - full_name='caffe.ReductionParameter.operation', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.ReductionParameter.axis', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='coeff', - full_name='caffe.ReductionParameter.coeff', - index=2, - number=3, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _REDUCTIONPARAMETER_REDUCTIONOP, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10376, - serialized_end=10549, + name='ReductionParameter', + full_name='caffe.ReductionParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='operation', full_name='caffe.ReductionParameter.operation', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.ReductionParameter.axis', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='coeff', full_name='caffe.ReductionParameter.coeff', index=2, + number=3, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _REDUCTIONPARAMETER_REDUCTIONOP, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16339, + serialized_end=16512, ) + _RELUPARAMETER = _descriptor.Descriptor( - name='ReLUParameter', - full_name='caffe.ReLUParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='negative_slope', - full_name='caffe.ReLUParameter.negative_slope', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.ReLUParameter.engine', - index=1, - number=2, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _RELUPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10552, - serialized_end=10693, + name='ReLUParameter', + full_name='caffe.ReLUParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='negative_slope', full_name='caffe.ReLUParameter.negative_slope', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.ReLUParameter.engine', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _RELUPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16515, + serialized_end=16656, ) + _RESHAPEPARAMETER = _descriptor.Descriptor( - name='ReshapeParameter', - full_name='caffe.ReshapeParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='shape', - full_name='caffe.ReshapeParameter.shape', - index=0, - number=1, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.ReshapeParameter.axis', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='num_axes', - full_name='caffe.ReshapeParameter.num_axes', - index=2, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=-1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10695, - serialized_end=10785, + name='ReshapeParameter', + full_name='caffe.ReshapeParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='shape', full_name='caffe.ReshapeParameter.shape', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.ReshapeParameter.axis', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_axes', full_name='caffe.ReshapeParameter.num_axes', index=2, + number=3, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=-1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16658, + serialized_end=16748, ) + _SCALEPARAMETER = _descriptor.Descriptor( - name='ScaleParameter', - full_name='caffe.ScaleParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.ScaleParameter.axis', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='num_axes', - full_name='caffe.ScaleParameter.num_axes', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='filler', - full_name='caffe.ScaleParameter.filler', - index=2, - number=3, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='bias_term', - full_name='caffe.ScaleParameter.bias_term', - index=3, - number=4, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_filler', - full_name='caffe.ScaleParameter.bias_filler', - index=4, - number=5, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10788, - serialized_end=10953, + name='ScaleParameter', + full_name='caffe.ScaleParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.ScaleParameter.axis', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_axes', full_name='caffe.ScaleParameter.num_axes', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='filler', full_name='caffe.ScaleParameter.filler', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_term', full_name='caffe.ScaleParameter.bias_term', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_filler', full_name='caffe.ScaleParameter.bias_filler', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16751, + serialized_end=16916, ) + _SIGMOIDPARAMETER = _descriptor.Descriptor( - name='SigmoidParameter', - full_name='caffe.SigmoidParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.SigmoidParameter.engine', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _SIGMOIDPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=10955, - serialized_end=11075, + name='SigmoidParameter', + full_name='caffe.SigmoidParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.SigmoidParameter.engine', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SIGMOIDPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=16918, + serialized_end=17038, ) + _SLICEPARAMETER = _descriptor.Descriptor( - name='SliceParameter', - full_name='caffe.SliceParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.SliceParameter.axis', - index=0, - number=3, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='slice_point', - full_name='caffe.SliceParameter.slice_point', - index=1, - number=2, - type=13, - cpp_type=3, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='slice_dim', - full_name='caffe.SliceParameter.slice_dim', - index=2, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11077, - serialized_end=11153, + name='SliceParameter', + full_name='caffe.SliceParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.SliceParameter.axis', index=0, + number=3, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='slice_point', full_name='caffe.SliceParameter.slice_point', index=1, + number=2, type=13, cpp_type=3, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='slice_dim', full_name='caffe.SliceParameter.slice_dim', index=2, + number=1, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17040, + serialized_end=17116, ) + _SOFTMAXPARAMETER = _descriptor.Descriptor( - name='SoftmaxParameter', - full_name='caffe.SoftmaxParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.SoftmaxParameter.engine', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.SoftmaxParameter.axis', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _SOFTMAXPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11156, - serialized_end=11293, + name='SoftmaxParameter', + full_name='caffe.SoftmaxParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.SoftmaxParameter.engine', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.SoftmaxParameter.axis', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SOFTMAXPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17119, + serialized_end=17256, ) -_SWISHPARAMETER = _descriptor.Descriptor( - name='SwishParameter', - full_name='caffe.SwishParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='beta', - full_name='caffe.SwishParameter.beta', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11295, - serialized_end=11328, -) _TANHPARAMETER = _descriptor.Descriptor( - name='TanHParameter', - full_name='caffe.TanHParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.TanHParameter.engine', - index=0, - number=1, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _TANHPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11330, - serialized_end=11444, + name='TanHParameter', + full_name='caffe.TanHParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.TanHParameter.engine', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _TANHPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17258, + serialized_end=17372, ) + _TILEPARAMETER = _descriptor.Descriptor( - name='TileParameter', - full_name='caffe.TileParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='axis', - full_name='caffe.TileParameter.axis', - index=0, - number=1, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='tiles', - full_name='caffe.TileParameter.tiles', - index=1, - number=2, - type=5, - cpp_type=1, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11446, - serialized_end=11493, + name='TileParameter', + full_name='caffe.TileParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='axis', full_name='caffe.TileParameter.axis', index=0, + number=1, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tiles', full_name='caffe.TileParameter.tiles', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17374, + serialized_end=17421, ) + _THRESHOLDPARAMETER = _descriptor.Descriptor( - name='ThresholdParameter', - full_name='caffe.ThresholdParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='threshold', - full_name='caffe.ThresholdParameter.threshold', - index=0, - number=1, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11495, - serialized_end=11537, + name='ThresholdParameter', + full_name='caffe.ThresholdParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='threshold', full_name='caffe.ThresholdParameter.threshold', index=0, + number=1, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17423, + serialized_end=17465, ) + +_VIDEODATAPARAMETER = _descriptor.Descriptor( + name='VideoDataParameter', + full_name='caffe.VideoDataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='video_type', full_name='caffe.VideoDataParameter.video_type', index=0, + number=1, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='device_id', full_name='caffe.VideoDataParameter.device_id', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='video_file', full_name='caffe.VideoDataParameter.video_file', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='skip_frames', full_name='caffe.VideoDataParameter.skip_frames', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _VIDEODATAPARAMETER_VIDEOTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17468, + serialized_end=17655, +) + + _WINDOWDATAPARAMETER = _descriptor.Descriptor( - name='WindowDataParameter', - full_name='caffe.WindowDataParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='source', - full_name='caffe.WindowDataParameter.source', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.WindowDataParameter.scale', - index=1, - number=2, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mean_file', - full_name='caffe.WindowDataParameter.mean_file', - index=2, - number=3, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='batch_size', - full_name='caffe.WindowDataParameter.batch_size', - index=3, - number=4, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='crop_size', - full_name='caffe.WindowDataParameter.crop_size', - index=4, - number=5, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mirror', - full_name='caffe.WindowDataParameter.mirror', - index=5, - number=6, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='fg_threshold', - full_name='caffe.WindowDataParameter.fg_threshold', - index=6, - number=7, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.5), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bg_threshold', - full_name='caffe.WindowDataParameter.bg_threshold', - index=7, - number=8, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.5), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='fg_fraction', - full_name='caffe.WindowDataParameter.fg_fraction', - index=8, - number=9, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.25), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='context_pad', - full_name='caffe.WindowDataParameter.context_pad', - index=9, - number=10, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='crop_mode', - full_name='caffe.WindowDataParameter.crop_mode', - index=10, - number=11, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("warp").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='cache_images', - full_name='caffe.WindowDataParameter.cache_images', - index=11, - number=12, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='root_folder', - full_name='caffe.WindowDataParameter.root_folder', - index=12, - number=13, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11540, - serialized_end=11861, + name='WindowDataParameter', + full_name='caffe.WindowDataParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='source', full_name='caffe.WindowDataParameter.source', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.WindowDataParameter.scale', index=1, + number=2, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mean_file', full_name='caffe.WindowDataParameter.mean_file', index=2, + number=3, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='batch_size', full_name='caffe.WindowDataParameter.batch_size', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_size', full_name='caffe.WindowDataParameter.crop_size', index=4, + number=5, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mirror', full_name='caffe.WindowDataParameter.mirror', index=5, + number=6, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fg_threshold', full_name='caffe.WindowDataParameter.fg_threshold', index=6, + number=7, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bg_threshold', full_name='caffe.WindowDataParameter.bg_threshold', index=7, + number=8, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='fg_fraction', full_name='caffe.WindowDataParameter.fg_fraction', index=8, + number=9, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.25), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='context_pad', full_name='caffe.WindowDataParameter.context_pad', index=9, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='crop_mode', full_name='caffe.WindowDataParameter.crop_mode', index=10, + number=11, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("warp").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cache_images', full_name='caffe.WindowDataParameter.cache_images', index=11, + number=12, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='root_folder', full_name='caffe.WindowDataParameter.root_folder', index=12, + number=13, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17658, + serialized_end=17979, ) + _SPPPARAMETER = _descriptor.Descriptor( - name='SPPParameter', - full_name='caffe.SPPParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='pyramid_height', - full_name='caffe.SPPParameter.pyramid_height', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pool', - full_name='caffe.SPPParameter.pool', - index=1, - number=2, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='engine', - full_name='caffe.SPPParameter.engine', - index=2, - number=6, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _SPPPARAMETER_POOLMETHOD, - _SPPPARAMETER_ENGINE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=11864, - serialized_end=12099, + name='SPPParameter', + full_name='caffe.SPPParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='pyramid_height', full_name='caffe.SPPParameter.pyramid_height', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pool', full_name='caffe.SPPParameter.pool', index=1, + number=2, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='engine', full_name='caffe.SPPParameter.engine', index=2, + number=6, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _SPPPARAMETER_POOLMETHOD, + _SPPPARAMETER_ENGINE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=17982, + serialized_end=18217, ) + _V1LAYERPARAMETER = _descriptor.Descriptor( - name='V1LayerParameter', - full_name='caffe.V1LayerParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='bottom', - full_name='caffe.V1LayerParameter.bottom', - index=0, - number=2, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='top', - full_name='caffe.V1LayerParameter.top', - index=1, - number=3, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='name', - full_name='caffe.V1LayerParameter.name', - index=2, - number=4, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='include', - full_name='caffe.V1LayerParameter.include', - index=3, - number=32, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='exclude', - full_name='caffe.V1LayerParameter.exclude', - index=4, - number=33, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='type', - full_name='caffe.V1LayerParameter.type', - index=5, - number=5, - type=14, - cpp_type=8, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='blobs', - full_name='caffe.V1LayerParameter.blobs', - index=6, - number=6, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='param', - full_name='caffe.V1LayerParameter.param', - index=7, - number=1001, - type=9, - cpp_type=9, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='blob_share_mode', - full_name='caffe.V1LayerParameter.blob_share_mode', - index=8, - number=1002, - type=14, - cpp_type=8, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='blobs_lr', - full_name='caffe.V1LayerParameter.blobs_lr', - index=9, - number=7, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_decay', - full_name='caffe.V1LayerParameter.weight_decay', - index=10, - number=8, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='loss_weight', - full_name='caffe.V1LayerParameter.loss_weight', - index=11, - number=35, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='accuracy_param', - full_name='caffe.V1LayerParameter.accuracy_param', - index=12, - number=27, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='argmax_param', - full_name='caffe.V1LayerParameter.argmax_param', - index=13, - number=23, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='concat_param', - full_name='caffe.V1LayerParameter.concat_param', - index=14, - number=9, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='contrastive_loss_param', - full_name='caffe.V1LayerParameter.contrastive_loss_param', - index=15, - number=40, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='convolution_param', - full_name='caffe.V1LayerParameter.convolution_param', - index=16, - number=10, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='data_param', - full_name='caffe.V1LayerParameter.data_param', - index=17, - number=11, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dropout_param', - full_name='caffe.V1LayerParameter.dropout_param', - index=18, - number=12, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dummy_data_param', - full_name='caffe.V1LayerParameter.dummy_data_param', - index=19, - number=26, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='eltwise_param', - full_name='caffe.V1LayerParameter.eltwise_param', - index=20, - number=24, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='exp_param', - full_name='caffe.V1LayerParameter.exp_param', - index=21, - number=41, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hdf5_data_param', - full_name='caffe.V1LayerParameter.hdf5_data_param', - index=22, - number=13, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hdf5_output_param', - full_name='caffe.V1LayerParameter.hdf5_output_param', - index=23, - number=14, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hinge_loss_param', - full_name='caffe.V1LayerParameter.hinge_loss_param', - index=24, - number=29, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='image_data_param', - full_name='caffe.V1LayerParameter.image_data_param', - index=25, - number=15, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='infogain_loss_param', - full_name='caffe.V1LayerParameter.infogain_loss_param', - index=26, - number=16, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='inner_product_param', - full_name='caffe.V1LayerParameter.inner_product_param', - index=27, - number=17, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='lrn_param', - full_name='caffe.V1LayerParameter.lrn_param', - index=28, - number=18, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='memory_data_param', - full_name='caffe.V1LayerParameter.memory_data_param', - index=29, - number=22, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='mvn_param', - full_name='caffe.V1LayerParameter.mvn_param', - index=30, - number=34, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='pooling_param', - full_name='caffe.V1LayerParameter.pooling_param', - index=31, - number=19, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='power_param', - full_name='caffe.V1LayerParameter.power_param', - index=32, - number=21, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='relu_param', - full_name='caffe.V1LayerParameter.relu_param', - index=33, - number=30, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='sigmoid_param', - full_name='caffe.V1LayerParameter.sigmoid_param', - index=34, - number=38, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='softmax_param', - full_name='caffe.V1LayerParameter.softmax_param', - index=35, - number=39, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='slice_param', - full_name='caffe.V1LayerParameter.slice_param', - index=36, - number=31, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='tanh_param', - full_name='caffe.V1LayerParameter.tanh_param', - index=37, - number=37, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='threshold_param', - full_name='caffe.V1LayerParameter.threshold_param', - index=38, - number=25, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='window_data_param', - full_name='caffe.V1LayerParameter.window_data_param', - index=39, - number=20, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='transform_param', - full_name='caffe.V1LayerParameter.transform_param', - index=40, - number=36, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='loss_param', - full_name='caffe.V1LayerParameter.loss_param', - index=41, - number=42, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='layer', - full_name='caffe.V1LayerParameter.layer', - index=42, - number=1, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _V1LAYERPARAMETER_LAYERTYPE, - _V1LAYERPARAMETER_DIMCHECKMODE, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=12102, - serialized_end=14630, + name='V1LayerParameter', + full_name='caffe.V1LayerParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='bottom', full_name='caffe.V1LayerParameter.bottom', index=0, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='top', full_name='caffe.V1LayerParameter.top', index=1, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='name', full_name='caffe.V1LayerParameter.name', index=2, + number=4, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='include', full_name='caffe.V1LayerParameter.include', index=3, + number=32, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exclude', full_name='caffe.V1LayerParameter.exclude', index=4, + number=33, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='caffe.V1LayerParameter.type', index=5, + number=5, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='blobs', full_name='caffe.V1LayerParameter.blobs', index=6, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='param', full_name='caffe.V1LayerParameter.param', index=7, + number=1001, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='blob_share_mode', full_name='caffe.V1LayerParameter.blob_share_mode', index=8, + number=1002, type=14, cpp_type=8, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='blobs_lr', full_name='caffe.V1LayerParameter.blobs_lr', index=9, + number=7, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_decay', full_name='caffe.V1LayerParameter.weight_decay', index=10, + number=8, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='loss_weight', full_name='caffe.V1LayerParameter.loss_weight', index=11, + number=35, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='accuracy_param', full_name='caffe.V1LayerParameter.accuracy_param', index=12, + number=27, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='argmax_param', full_name='caffe.V1LayerParameter.argmax_param', index=13, + number=23, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='concat_param', full_name='caffe.V1LayerParameter.concat_param', index=14, + number=9, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='contrastive_loss_param', full_name='caffe.V1LayerParameter.contrastive_loss_param', index=15, + number=40, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='convolution_param', full_name='caffe.V1LayerParameter.convolution_param', index=16, + number=10, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='data_param', full_name='caffe.V1LayerParameter.data_param', index=17, + number=11, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dropout_param', full_name='caffe.V1LayerParameter.dropout_param', index=18, + number=12, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dummy_data_param', full_name='caffe.V1LayerParameter.dummy_data_param', index=19, + number=26, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='eltwise_param', full_name='caffe.V1LayerParameter.eltwise_param', index=20, + number=24, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='exp_param', full_name='caffe.V1LayerParameter.exp_param', index=21, + number=41, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hdf5_data_param', full_name='caffe.V1LayerParameter.hdf5_data_param', index=22, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hdf5_output_param', full_name='caffe.V1LayerParameter.hdf5_output_param', index=23, + number=14, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hinge_loss_param', full_name='caffe.V1LayerParameter.hinge_loss_param', index=24, + number=29, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='image_data_param', full_name='caffe.V1LayerParameter.image_data_param', index=25, + number=15, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='infogain_loss_param', full_name='caffe.V1LayerParameter.infogain_loss_param', index=26, + number=16, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='inner_product_param', full_name='caffe.V1LayerParameter.inner_product_param', index=27, + number=17, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='lrn_param', full_name='caffe.V1LayerParameter.lrn_param', index=28, + number=18, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='memory_data_param', full_name='caffe.V1LayerParameter.memory_data_param', index=29, + number=22, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mvn_param', full_name='caffe.V1LayerParameter.mvn_param', index=30, + number=34, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pooling_param', full_name='caffe.V1LayerParameter.pooling_param', index=31, + number=19, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='power_param', full_name='caffe.V1LayerParameter.power_param', index=32, + number=21, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='relu_param', full_name='caffe.V1LayerParameter.relu_param', index=33, + number=30, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='sigmoid_param', full_name='caffe.V1LayerParameter.sigmoid_param', index=34, + number=38, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='softmax_param', full_name='caffe.V1LayerParameter.softmax_param', index=35, + number=39, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='slice_param', full_name='caffe.V1LayerParameter.slice_param', index=36, + number=31, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='tanh_param', full_name='caffe.V1LayerParameter.tanh_param', index=37, + number=37, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='threshold_param', full_name='caffe.V1LayerParameter.threshold_param', index=38, + number=25, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='window_data_param', full_name='caffe.V1LayerParameter.window_data_param', index=39, + number=20, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='transform_param', full_name='caffe.V1LayerParameter.transform_param', index=40, + number=36, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='loss_param', full_name='caffe.V1LayerParameter.loss_param', index=41, + number=42, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='layer', full_name='caffe.V1LayerParameter.layer', index=42, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _V1LAYERPARAMETER_LAYERTYPE, + _V1LAYERPARAMETER_DIMCHECKMODE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=18220, + serialized_end=20748, ) + _V0LAYERPARAMETER = _descriptor.Descriptor( - name='V0LayerParameter', - full_name='caffe.V0LayerParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='name', - full_name='caffe.V0LayerParameter.name', - index=0, - number=1, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='type', - full_name='caffe.V0LayerParameter.type', - index=1, - number=2, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='num_output', - full_name='caffe.V0LayerParameter.num_output', - index=2, - number=3, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='biasterm', - full_name='caffe.V0LayerParameter.biasterm', - index=3, - number=4, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=True, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_filler', - full_name='caffe.V0LayerParameter.weight_filler', - index=4, - number=5, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='bias_filler', - full_name='caffe.V0LayerParameter.bias_filler', - index=5, - number=6, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pad', - full_name='caffe.V0LayerParameter.pad', - index=6, - number=7, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='kernelsize', - full_name='caffe.V0LayerParameter.kernelsize', - index=7, - number=8, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='group', - full_name='caffe.V0LayerParameter.group', - index=8, - number=9, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='stride', - full_name='caffe.V0LayerParameter.stride', - index=9, - number=10, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='pool', - full_name='caffe.V0LayerParameter.pool', - index=10, - number=11, - type=14, - cpp_type=8, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='dropout_ratio', - full_name='caffe.V0LayerParameter.dropout_ratio', - index=11, - number=12, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.5), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='local_size', - full_name='caffe.V0LayerParameter.local_size', - index=12, - number=13, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=5, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='alpha', - full_name='caffe.V0LayerParameter.alpha', - index=13, - number=14, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='beta', - full_name='caffe.V0LayerParameter.beta', - index=14, - number=15, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.75), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='k', - full_name='caffe.V0LayerParameter.k', - index=15, - number=22, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='source', - full_name='caffe.V0LayerParameter.source', - index=16, - number=16, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='scale', - full_name='caffe.V0LayerParameter.scale', - index=17, - number=17, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(1), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='meanfile', - full_name='caffe.V0LayerParameter.meanfile', - index=18, - number=18, - type=9, - cpp_type=9, - label=1, - has_default_value=False, - default_value=_b("").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='batchsize', - full_name='caffe.V0LayerParameter.batchsize', - index=19, - number=19, - type=13, - cpp_type=3, - label=1, - has_default_value=False, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='cropsize', - full_name='caffe.V0LayerParameter.cropsize', - index=20, - number=20, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='mirror', - full_name='caffe.V0LayerParameter.mirror', - index=21, - number=21, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='blobs', - full_name='caffe.V0LayerParameter.blobs', - index=22, - number=50, - type=11, - cpp_type=10, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='blobs_lr', - full_name='caffe.V0LayerParameter.blobs_lr', - index=23, - number=51, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='weight_decay', - full_name='caffe.V0LayerParameter.weight_decay', - index=24, - number=52, - type=2, - cpp_type=6, - label=3, - has_default_value=False, - default_value=[], - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='rand_skip', - full_name='caffe.V0LayerParameter.rand_skip', - index=25, - number=53, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='det_fg_threshold', - full_name='caffe.V0LayerParameter.det_fg_threshold', - index=26, - number=54, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.5), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='det_bg_threshold', - full_name='caffe.V0LayerParameter.det_bg_threshold', - index=27, - number=55, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.5), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='det_fg_fraction', - full_name='caffe.V0LayerParameter.det_fg_fraction', - index=28, - number=56, - type=2, - cpp_type=6, - label=1, - has_default_value=True, - default_value=float(0.25), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='det_context_pad', - full_name='caffe.V0LayerParameter.det_context_pad', - index=29, - number=58, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='det_crop_mode', - full_name='caffe.V0LayerParameter.det_crop_mode', - index=30, - number=59, - type=9, - cpp_type=9, - label=1, - has_default_value=True, - default_value=_b("warp").decode('utf-8'), - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor(name='new_num', - full_name='caffe.V0LayerParameter.new_num', - index=31, - number=60, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='new_channels', - full_name='caffe.V0LayerParameter.new_channels', - index=32, - number=61, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='new_height', - full_name='caffe.V0LayerParameter.new_height', - index=33, - number=62, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='new_width', - full_name='caffe.V0LayerParameter.new_width', - index=34, - number=63, - type=5, - cpp_type=1, - label=1, - has_default_value=True, - default_value=0, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='shuffle_images', - full_name='caffe.V0LayerParameter.shuffle_images', - index=35, - number=64, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='concat_dim', - full_name='caffe.V0LayerParameter.concat_dim', - index=36, - number=65, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='hdf5_output_param', - full_name='caffe.V0LayerParameter.hdf5_output_param', - index=37, - number=1001, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[ - _V0LAYERPARAMETER_POOLMETHOD, - ], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=14633, - serialized_end=15654, + name='V0LayerParameter', + full_name='caffe.V0LayerParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='name', full_name='caffe.V0LayerParameter.name', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='type', full_name='caffe.V0LayerParameter.type', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='num_output', full_name='caffe.V0LayerParameter.num_output', index=2, + number=3, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='biasterm', full_name='caffe.V0LayerParameter.biasterm', index=3, + number=4, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=True, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_filler', full_name='caffe.V0LayerParameter.weight_filler', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='bias_filler', full_name='caffe.V0LayerParameter.bias_filler', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pad', full_name='caffe.V0LayerParameter.pad', index=6, + number=7, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='kernelsize', full_name='caffe.V0LayerParameter.kernelsize', index=7, + number=8, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='group', full_name='caffe.V0LayerParameter.group', index=8, + number=9, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='stride', full_name='caffe.V0LayerParameter.stride', index=9, + number=10, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='pool', full_name='caffe.V0LayerParameter.pool', index=10, + number=11, type=14, cpp_type=8, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='dropout_ratio', full_name='caffe.V0LayerParameter.dropout_ratio', index=11, + number=12, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='local_size', full_name='caffe.V0LayerParameter.local_size', index=12, + number=13, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=5, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='alpha', full_name='caffe.V0LayerParameter.alpha', index=13, + number=14, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='beta', full_name='caffe.V0LayerParameter.beta', index=14, + number=15, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.75), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='k', full_name='caffe.V0LayerParameter.k', index=15, + number=22, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='source', full_name='caffe.V0LayerParameter.source', index=16, + number=16, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='scale', full_name='caffe.V0LayerParameter.scale', index=17, + number=17, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(1), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='meanfile', full_name='caffe.V0LayerParameter.meanfile', index=18, + number=18, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='batchsize', full_name='caffe.V0LayerParameter.batchsize', index=19, + number=19, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='cropsize', full_name='caffe.V0LayerParameter.cropsize', index=20, + number=20, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='mirror', full_name='caffe.V0LayerParameter.mirror', index=21, + number=21, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='blobs', full_name='caffe.V0LayerParameter.blobs', index=22, + number=50, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='blobs_lr', full_name='caffe.V0LayerParameter.blobs_lr', index=23, + number=51, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='weight_decay', full_name='caffe.V0LayerParameter.weight_decay', index=24, + number=52, type=2, cpp_type=6, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='rand_skip', full_name='caffe.V0LayerParameter.rand_skip', index=25, + number=53, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='det_fg_threshold', full_name='caffe.V0LayerParameter.det_fg_threshold', index=26, + number=54, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='det_bg_threshold', full_name='caffe.V0LayerParameter.det_bg_threshold', index=27, + number=55, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.5), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='det_fg_fraction', full_name='caffe.V0LayerParameter.det_fg_fraction', index=28, + number=56, type=2, cpp_type=6, label=1, + has_default_value=True, default_value=float(0.25), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='det_context_pad', full_name='caffe.V0LayerParameter.det_context_pad', index=29, + number=58, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='det_crop_mode', full_name='caffe.V0LayerParameter.det_crop_mode', index=30, + number=59, type=9, cpp_type=9, label=1, + has_default_value=True, default_value=_b("warp").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_num', full_name='caffe.V0LayerParameter.new_num', index=31, + number=60, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_channels', full_name='caffe.V0LayerParameter.new_channels', index=32, + number=61, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_height', full_name='caffe.V0LayerParameter.new_height', index=33, + number=62, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='new_width', full_name='caffe.V0LayerParameter.new_width', index=34, + number=63, type=5, cpp_type=1, label=1, + has_default_value=True, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='shuffle_images', full_name='caffe.V0LayerParameter.shuffle_images', index=35, + number=64, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='concat_dim', full_name='caffe.V0LayerParameter.concat_dim', index=36, + number=65, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='hdf5_output_param', full_name='caffe.V0LayerParameter.hdf5_output_param', index=37, + number=1001, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _V0LAYERPARAMETER_POOLMETHOD, + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=20751, + serialized_end=21772, ) + _PRELUPARAMETER = _descriptor.Descriptor( - name='PReLUParameter', - full_name='caffe.PReLUParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor(name='filler', - full_name='caffe.PReLUParameter.filler', - index=0, - number=1, - type=11, - cpp_type=10, - label=1, - has_default_value=False, - default_value=None, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - _descriptor.FieldDescriptor( - name='channel_shared', - full_name='caffe.PReLUParameter.channel_shared', - index=1, - number=2, - type=8, - cpp_type=7, - label=1, - has_default_value=True, - default_value=False, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=15656, - serialized_end=15743, + name='PReLUParameter', + full_name='caffe.PReLUParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='filler', full_name='caffe.PReLUParameter.filler', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='channel_shared', full_name='caffe.PReLUParameter.channel_shared', index=1, + number=2, type=8, cpp_type=7, label=1, + has_default_value=True, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=21774, + serialized_end=21861, ) + _SHUFFLECHANNELPARAMETER = _descriptor.Descriptor( - name='ShuffleChannelParameter', - full_name='caffe.ShuffleChannelParameter', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='group', - full_name='caffe.ShuffleChannelParameter.group', - index=0, - number=1, - type=13, - cpp_type=3, - label=1, - has_default_value=True, - default_value=1, - message_type=None, - enum_type=None, - containing_type=None, - is_extension=False, - extension_scope=None, - serialized_options=None, - file=DESCRIPTOR), - ], - extensions=[], - nested_types=[], - enum_types=[], - serialized_options=None, - is_extendable=False, - syntax='proto2', - extension_ranges=[], - oneofs=[], - serialized_start=15745, - serialized_end=15788, + name='ShuffleChannelParameter', + full_name='caffe.ShuffleChannelParameter', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='group', full_name='caffe.ShuffleChannelParameter.group', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=True, default_value=1, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto2', + extension_ranges=[], + oneofs=[ + ], + serialized_start=21863, + serialized_end=21906, ) _BLOBPROTO.fields_by_name['shape'].message_type = _BLOBSHAPE _BLOBPROTOVECTOR.fields_by_name['blobs'].message_type = _BLOBPROTO -_FILLERPARAMETER.fields_by_name[ - 'variance_norm'].enum_type = _FILLERPARAMETER_VARIANCENORM +_LABELMAP.fields_by_name['item'].message_type = _LABELMAPITEM +_BATCHSAMPLER.fields_by_name['sampler'].message_type = _SAMPLER +_BATCHSAMPLER.fields_by_name['sample_constraint'].message_type = _SAMPLECONSTRAINT +_EMITCONSTRAINT.fields_by_name['emit_type'].enum_type = _EMITCONSTRAINT_EMITTYPE +_EMITCONSTRAINT_EMITTYPE.containing_type = _EMITCONSTRAINT +_ANNOTATION.fields_by_name['bbox'].message_type = _NORMALIZEDBBOX +_ANNOTATIONGROUP.fields_by_name['annotation'].message_type = _ANNOTATION +_ANNOTATEDDATUM.fields_by_name['datum'].message_type = _DATUM +_ANNOTATEDDATUM.fields_by_name['type'].enum_type = _ANNOTATEDDATUM_ANNOTATIONTYPE +_ANNOTATEDDATUM.fields_by_name['annotation_group'].message_type = _ANNOTATIONGROUP +_ANNOTATEDDATUM_ANNOTATIONTYPE.containing_type = _ANNOTATEDDATUM +_FILLERPARAMETER.fields_by_name['variance_norm'].enum_type = _FILLERPARAMETER_VARIANCENORM _FILLERPARAMETER_VARIANCENORM.containing_type = _FILLERPARAMETER _NETPARAMETER.fields_by_name['input_shape'].message_type = _BLOBSHAPE _NETPARAMETER.fields_by_name['state'].message_type = _NETSTATE @@ -9288,12 +7322,9 @@ _SOLVERPARAMETER.fields_by_name['train_net_param'].message_type = _NETPARAMETER _SOLVERPARAMETER.fields_by_name['test_net_param'].message_type = _NETPARAMETER _SOLVERPARAMETER.fields_by_name['train_state'].message_type = _NETSTATE _SOLVERPARAMETER.fields_by_name['test_state'].message_type = _NETSTATE -_SOLVERPARAMETER.fields_by_name[ - 'snapshot_format'].enum_type = _SOLVERPARAMETER_SNAPSHOTFORMAT -_SOLVERPARAMETER.fields_by_name[ - 'solver_mode'].enum_type = _SOLVERPARAMETER_SOLVERMODE -_SOLVERPARAMETER.fields_by_name[ - 'solver_type'].enum_type = _SOLVERPARAMETER_SOLVERTYPE +_SOLVERPARAMETER.fields_by_name['snapshot_format'].enum_type = _SOLVERPARAMETER_SNAPSHOTFORMAT +_SOLVERPARAMETER.fields_by_name['solver_mode'].enum_type = _SOLVERPARAMETER_SOLVERMODE +_SOLVERPARAMETER.fields_by_name['solver_type'].enum_type = _SOLVERPARAMETER_SOLVERTYPE _SOLVERPARAMETER_SNAPSHOTFORMAT.containing_type = _SOLVERPARAMETER _SOLVERPARAMETER_SOLVERMODE.containing_type = _SOLVERPARAMETER _SOLVERPARAMETER_SOLVERTYPE.containing_type = _SOLVERPARAMETER @@ -9307,122 +7338,125 @@ _LAYERPARAMETER.fields_by_name['param'].message_type = _PARAMSPEC _LAYERPARAMETER.fields_by_name['blobs'].message_type = _BLOBPROTO _LAYERPARAMETER.fields_by_name['include'].message_type = _NETSTATERULE _LAYERPARAMETER.fields_by_name['exclude'].message_type = _NETSTATERULE -_LAYERPARAMETER.fields_by_name[ - 'transform_param'].message_type = _TRANSFORMATIONPARAMETER +_LAYERPARAMETER.fields_by_name['transform_param'].message_type = _TRANSFORMATIONPARAMETER _LAYERPARAMETER.fields_by_name['loss_param'].message_type = _LOSSPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'accuracy_param'].message_type = _ACCURACYPARAMETER +_LAYERPARAMETER.fields_by_name['accuracy_param'].message_type = _ACCURACYPARAMETER +_LAYERPARAMETER.fields_by_name['annotated_data_param'].message_type = _ANNOTATEDDATAPARAMETER _LAYERPARAMETER.fields_by_name['argmax_param'].message_type = _ARGMAXPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'batch_norm_param'].message_type = _BATCHNORMPARAMETER +_LAYERPARAMETER.fields_by_name['batch_norm_param'].message_type = _BATCHNORMPARAMETER _LAYERPARAMETER.fields_by_name['bias_param'].message_type = _BIASPARAMETER -_LAYERPARAMETER.fields_by_name['clip_param'].message_type = _CLIPPARAMETER _LAYERPARAMETER.fields_by_name['concat_param'].message_type = _CONCATPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'contrastive_loss_param'].message_type = _CONTRASTIVELOSSPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'convolution_param'].message_type = _CONVOLUTIONPARAMETER +_LAYERPARAMETER.fields_by_name['contrastive_loss_param'].message_type = _CONTRASTIVELOSSPARAMETER +_LAYERPARAMETER.fields_by_name['convolution_param'].message_type = _CONVOLUTIONPARAMETER _LAYERPARAMETER.fields_by_name['crop_param'].message_type = _CROPPARAMETER _LAYERPARAMETER.fields_by_name['data_param'].message_type = _DATAPARAMETER +_LAYERPARAMETER.fields_by_name['detection_evaluate_param'].message_type = _DETECTIONEVALUATEPARAMETER +_LAYERPARAMETER.fields_by_name['detection_output_param'].message_type = _DETECTIONOUTPUTPARAMETER _LAYERPARAMETER.fields_by_name['dropout_param'].message_type = _DROPOUTPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'dummy_data_param'].message_type = _DUMMYDATAPARAMETER +_LAYERPARAMETER.fields_by_name['dummy_data_param'].message_type = _DUMMYDATAPARAMETER _LAYERPARAMETER.fields_by_name['eltwise_param'].message_type = _ELTWISEPARAMETER _LAYERPARAMETER.fields_by_name['elu_param'].message_type = _ELUPARAMETER _LAYERPARAMETER.fields_by_name['embed_param'].message_type = _EMBEDPARAMETER _LAYERPARAMETER.fields_by_name['exp_param'].message_type = _EXPPARAMETER _LAYERPARAMETER.fields_by_name['flatten_param'].message_type = _FLATTENPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'hdf5_data_param'].message_type = _HDF5DATAPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'hdf5_output_param'].message_type = _HDF5OUTPUTPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'hinge_loss_param'].message_type = _HINGELOSSPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'image_data_param'].message_type = _IMAGEDATAPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'infogain_loss_param'].message_type = _INFOGAINLOSSPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'inner_product_param'].message_type = _INNERPRODUCTPARAMETER +_LAYERPARAMETER.fields_by_name['hdf5_data_param'].message_type = _HDF5DATAPARAMETER +_LAYERPARAMETER.fields_by_name['hdf5_output_param'].message_type = _HDF5OUTPUTPARAMETER +_LAYERPARAMETER.fields_by_name['hinge_loss_param'].message_type = _HINGELOSSPARAMETER +_LAYERPARAMETER.fields_by_name['image_data_param'].message_type = _IMAGEDATAPARAMETER +_LAYERPARAMETER.fields_by_name['infogain_loss_param'].message_type = _INFOGAINLOSSPARAMETER +_LAYERPARAMETER.fields_by_name['inner_product_param'].message_type = _INNERPRODUCTPARAMETER _LAYERPARAMETER.fields_by_name['input_param'].message_type = _INPUTPARAMETER _LAYERPARAMETER.fields_by_name['log_param'].message_type = _LOGPARAMETER _LAYERPARAMETER.fields_by_name['lrn_param'].message_type = _LRNPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'memory_data_param'].message_type = _MEMORYDATAPARAMETER +_LAYERPARAMETER.fields_by_name['memory_data_param'].message_type = _MEMORYDATAPARAMETER +_LAYERPARAMETER.fields_by_name['multibox_loss_param'].message_type = _MULTIBOXLOSSPARAMETER _LAYERPARAMETER.fields_by_name['mvn_param'].message_type = _MVNPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'parameter_param'].message_type = _PARAMETERPARAMETER +_LAYERPARAMETER.fields_by_name['norm_param'].message_type = _NORMALIZEPARAMETER +_LAYERPARAMETER.fields_by_name['parameter_param'].message_type = _PARAMETERPARAMETER +_LAYERPARAMETER.fields_by_name['permute_param'].message_type = _PERMUTEPARAMETER _LAYERPARAMETER.fields_by_name['pooling_param'].message_type = _POOLINGPARAMETER _LAYERPARAMETER.fields_by_name['power_param'].message_type = _POWERPARAMETER _LAYERPARAMETER.fields_by_name['prelu_param'].message_type = _PRELUPARAMETER +_LAYERPARAMETER.fields_by_name['prior_box_param'].message_type = _PRIORBOXPARAMETER _LAYERPARAMETER.fields_by_name['python_param'].message_type = _PYTHONPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'recurrent_param'].message_type = _RECURRENTPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'reduction_param'].message_type = _REDUCTIONPARAMETER +_LAYERPARAMETER.fields_by_name['recurrent_param'].message_type = _RECURRENTPARAMETER +_LAYERPARAMETER.fields_by_name['reduction_param'].message_type = _REDUCTIONPARAMETER _LAYERPARAMETER.fields_by_name['relu_param'].message_type = _RELUPARAMETER _LAYERPARAMETER.fields_by_name['reshape_param'].message_type = _RESHAPEPARAMETER _LAYERPARAMETER.fields_by_name['scale_param'].message_type = _SCALEPARAMETER +_LAYERPARAMETER.fields_by_name['shuffle_channel_param'].message_type = _SHUFFLECHANNELPARAMETER _LAYERPARAMETER.fields_by_name['sigmoid_param'].message_type = _SIGMOIDPARAMETER _LAYERPARAMETER.fields_by_name['softmax_param'].message_type = _SOFTMAXPARAMETER _LAYERPARAMETER.fields_by_name['spp_param'].message_type = _SPPPARAMETER _LAYERPARAMETER.fields_by_name['slice_param'].message_type = _SLICEPARAMETER -_LAYERPARAMETER.fields_by_name['swish_param'].message_type = _SWISHPARAMETER _LAYERPARAMETER.fields_by_name['tanh_param'].message_type = _TANHPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'threshold_param'].message_type = _THRESHOLDPARAMETER +_LAYERPARAMETER.fields_by_name['threshold_param'].message_type = _THRESHOLDPARAMETER _LAYERPARAMETER.fields_by_name['tile_param'].message_type = _TILEPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'window_data_param'].message_type = _WINDOWDATAPARAMETER -_LAYERPARAMETER.fields_by_name[ - 'shuffle_channel_param'].message_type = _SHUFFLECHANNELPARAMETER -_LOSSPARAMETER.fields_by_name[ - 'normalization'].enum_type = _LOSSPARAMETER_NORMALIZATIONMODE +_LAYERPARAMETER.fields_by_name['video_data_param'].message_type = _VIDEODATAPARAMETER +_LAYERPARAMETER.fields_by_name['window_data_param'].message_type = _WINDOWDATAPARAMETER +_TRANSFORMATIONPARAMETER.fields_by_name['resize_param'].message_type = _RESIZEPARAMETER +_TRANSFORMATIONPARAMETER.fields_by_name['noise_param'].message_type = _NOISEPARAMETER +_TRANSFORMATIONPARAMETER.fields_by_name['distort_param'].message_type = _DISTORTIONPARAMETER +_TRANSFORMATIONPARAMETER.fields_by_name['expand_param'].message_type = _EXPANSIONPARAMETER +_TRANSFORMATIONPARAMETER.fields_by_name['emit_constraint'].message_type = _EMITCONSTRAINT +_RESIZEPARAMETER.fields_by_name['resize_mode'].enum_type = _RESIZEPARAMETER_RESIZE_MODE +_RESIZEPARAMETER.fields_by_name['pad_mode'].enum_type = _RESIZEPARAMETER_PAD_MODE +_RESIZEPARAMETER.fields_by_name['interp_mode'].enum_type = _RESIZEPARAMETER_INTERP_MODE +_RESIZEPARAMETER_RESIZE_MODE.containing_type = _RESIZEPARAMETER +_RESIZEPARAMETER_PAD_MODE.containing_type = _RESIZEPARAMETER +_RESIZEPARAMETER_INTERP_MODE.containing_type = _RESIZEPARAMETER +_NOISEPARAMETER.fields_by_name['saltpepper_param'].message_type = _SALTPEPPERPARAMETER +_LOSSPARAMETER.fields_by_name['normalization'].enum_type = _LOSSPARAMETER_NORMALIZATIONMODE _LOSSPARAMETER_NORMALIZATIONMODE.containing_type = _LOSSPARAMETER +_ANNOTATEDDATAPARAMETER.fields_by_name['batch_sampler'].message_type = _BATCHSAMPLER +_ANNOTATEDDATAPARAMETER.fields_by_name['anno_type'].enum_type = _ANNOTATEDDATUM_ANNOTATIONTYPE _BIASPARAMETER.fields_by_name['filler'].message_type = _FILLERPARAMETER -_CONVOLUTIONPARAMETER.fields_by_name[ - 'weight_filler'].message_type = _FILLERPARAMETER -_CONVOLUTIONPARAMETER.fields_by_name[ - 'bias_filler'].message_type = _FILLERPARAMETER -_CONVOLUTIONPARAMETER.fields_by_name[ - 'engine'].enum_type = _CONVOLUTIONPARAMETER_ENGINE +_CONVOLUTIONPARAMETER.fields_by_name['weight_filler'].message_type = _FILLERPARAMETER +_CONVOLUTIONPARAMETER.fields_by_name['bias_filler'].message_type = _FILLERPARAMETER +_CONVOLUTIONPARAMETER.fields_by_name['engine'].enum_type = _CONVOLUTIONPARAMETER_ENGINE _CONVOLUTIONPARAMETER_ENGINE.containing_type = _CONVOLUTIONPARAMETER _DATAPARAMETER.fields_by_name['backend'].enum_type = _DATAPARAMETER_DB _DATAPARAMETER_DB.containing_type = _DATAPARAMETER -_DUMMYDATAPARAMETER.fields_by_name[ - 'data_filler'].message_type = _FILLERPARAMETER +_DETECTIONEVALUATEPARAMETER.fields_by_name['resize_param'].message_type = _RESIZEPARAMETER +_SAVEOUTPUTPARAMETER.fields_by_name['resize_param'].message_type = _RESIZEPARAMETER +_DETECTIONOUTPUTPARAMETER.fields_by_name['nms_param'].message_type = _NONMAXIMUMSUPPRESSIONPARAMETER +_DETECTIONOUTPUTPARAMETER.fields_by_name['save_output_param'].message_type = _SAVEOUTPUTPARAMETER +_DETECTIONOUTPUTPARAMETER.fields_by_name['code_type'].enum_type = _PRIORBOXPARAMETER_CODETYPE +_DUMMYDATAPARAMETER.fields_by_name['data_filler'].message_type = _FILLERPARAMETER _DUMMYDATAPARAMETER.fields_by_name['shape'].message_type = _BLOBSHAPE -_ELTWISEPARAMETER.fields_by_name[ - 'operation'].enum_type = _ELTWISEPARAMETER_ELTWISEOP +_ELTWISEPARAMETER.fields_by_name['operation'].enum_type = _ELTWISEPARAMETER_ELTWISEOP _ELTWISEPARAMETER_ELTWISEOP.containing_type = _ELTWISEPARAMETER _EMBEDPARAMETER.fields_by_name['weight_filler'].message_type = _FILLERPARAMETER _EMBEDPARAMETER.fields_by_name['bias_filler'].message_type = _FILLERPARAMETER _HINGELOSSPARAMETER.fields_by_name['norm'].enum_type = _HINGELOSSPARAMETER_NORM _HINGELOSSPARAMETER_NORM.containing_type = _HINGELOSSPARAMETER -_INNERPRODUCTPARAMETER.fields_by_name[ - 'weight_filler'].message_type = _FILLERPARAMETER -_INNERPRODUCTPARAMETER.fields_by_name[ - 'bias_filler'].message_type = _FILLERPARAMETER +_INNERPRODUCTPARAMETER.fields_by_name['weight_filler'].message_type = _FILLERPARAMETER +_INNERPRODUCTPARAMETER.fields_by_name['bias_filler'].message_type = _FILLERPARAMETER _INPUTPARAMETER.fields_by_name['shape'].message_type = _BLOBSHAPE _LRNPARAMETER.fields_by_name['norm_region'].enum_type = _LRNPARAMETER_NORMREGION _LRNPARAMETER.fields_by_name['engine'].enum_type = _LRNPARAMETER_ENGINE _LRNPARAMETER_NORMREGION.containing_type = _LRNPARAMETER _LRNPARAMETER_ENGINE.containing_type = _LRNPARAMETER +_MULTIBOXLOSSPARAMETER.fields_by_name['loc_loss_type'].enum_type = _MULTIBOXLOSSPARAMETER_LOCLOSSTYPE +_MULTIBOXLOSSPARAMETER.fields_by_name['conf_loss_type'].enum_type = _MULTIBOXLOSSPARAMETER_CONFLOSSTYPE +_MULTIBOXLOSSPARAMETER.fields_by_name['match_type'].enum_type = _MULTIBOXLOSSPARAMETER_MATCHTYPE +_MULTIBOXLOSSPARAMETER.fields_by_name['code_type'].enum_type = _PRIORBOXPARAMETER_CODETYPE +_MULTIBOXLOSSPARAMETER.fields_by_name['mining_type'].enum_type = _MULTIBOXLOSSPARAMETER_MININGTYPE +_MULTIBOXLOSSPARAMETER.fields_by_name['nms_param'].message_type = _NONMAXIMUMSUPPRESSIONPARAMETER +_MULTIBOXLOSSPARAMETER_LOCLOSSTYPE.containing_type = _MULTIBOXLOSSPARAMETER +_MULTIBOXLOSSPARAMETER_CONFLOSSTYPE.containing_type = _MULTIBOXLOSSPARAMETER +_MULTIBOXLOSSPARAMETER_MATCHTYPE.containing_type = _MULTIBOXLOSSPARAMETER +_MULTIBOXLOSSPARAMETER_MININGTYPE.containing_type = _MULTIBOXLOSSPARAMETER +_NORMALIZEPARAMETER.fields_by_name['scale_filler'].message_type = _FILLERPARAMETER _PARAMETERPARAMETER.fields_by_name['shape'].message_type = _BLOBSHAPE -_POOLINGPARAMETER.fields_by_name[ - 'pool'].enum_type = _POOLINGPARAMETER_POOLMETHOD +_POOLINGPARAMETER.fields_by_name['pool'].enum_type = _POOLINGPARAMETER_POOLMETHOD _POOLINGPARAMETER.fields_by_name['engine'].enum_type = _POOLINGPARAMETER_ENGINE -_POOLINGPARAMETER.fields_by_name[ - 'round_mode'].enum_type = _POOLINGPARAMETER_ROUNDMODE _POOLINGPARAMETER_POOLMETHOD.containing_type = _POOLINGPARAMETER _POOLINGPARAMETER_ENGINE.containing_type = _POOLINGPARAMETER -_POOLINGPARAMETER_ROUNDMODE.containing_type = _POOLINGPARAMETER -_RECURRENTPARAMETER.fields_by_name[ - 'weight_filler'].message_type = _FILLERPARAMETER -_RECURRENTPARAMETER.fields_by_name[ - 'bias_filler'].message_type = _FILLERPARAMETER -_REDUCTIONPARAMETER.fields_by_name[ - 'operation'].enum_type = _REDUCTIONPARAMETER_REDUCTIONOP +_PRIORBOXPARAMETER_CODETYPE.containing_type = _PRIORBOXPARAMETER +_RECURRENTPARAMETER.fields_by_name['weight_filler'].message_type = _FILLERPARAMETER +_RECURRENTPARAMETER.fields_by_name['bias_filler'].message_type = _FILLERPARAMETER +_REDUCTIONPARAMETER.fields_by_name['operation'].enum_type = _REDUCTIONPARAMETER_REDUCTIONOP _REDUCTIONPARAMETER_REDUCTIONOP.containing_type = _REDUCTIONPARAMETER _RELUPARAMETER.fields_by_name['engine'].enum_type = _RELUPARAMETER_ENGINE _RELUPARAMETER_ENGINE.containing_type = _RELUPARAMETER @@ -9435,6 +7469,8 @@ _SOFTMAXPARAMETER.fields_by_name['engine'].enum_type = _SOFTMAXPARAMETER_ENGINE _SOFTMAXPARAMETER_ENGINE.containing_type = _SOFTMAXPARAMETER _TANHPARAMETER.fields_by_name['engine'].enum_type = _TANHPARAMETER_ENGINE _TANHPARAMETER_ENGINE.containing_type = _TANHPARAMETER +_VIDEODATAPARAMETER.fields_by_name['video_type'].enum_type = _VIDEODATAPARAMETER_VIDEOTYPE +_VIDEODATAPARAMETER_VIDEOTYPE.containing_type = _VIDEODATAPARAMETER _SPPPARAMETER.fields_by_name['pool'].enum_type = _SPPPARAMETER_POOLMETHOD _SPPPARAMETER.fields_by_name['engine'].enum_type = _SPPPARAMETER_ENGINE _SPPPARAMETER_POOLMETHOD.containing_type = _SPPPARAMETER @@ -9443,74 +7479,61 @@ _V1LAYERPARAMETER.fields_by_name['include'].message_type = _NETSTATERULE _V1LAYERPARAMETER.fields_by_name['exclude'].message_type = _NETSTATERULE _V1LAYERPARAMETER.fields_by_name['type'].enum_type = _V1LAYERPARAMETER_LAYERTYPE _V1LAYERPARAMETER.fields_by_name['blobs'].message_type = _BLOBPROTO -_V1LAYERPARAMETER.fields_by_name[ - 'blob_share_mode'].enum_type = _V1LAYERPARAMETER_DIMCHECKMODE -_V1LAYERPARAMETER.fields_by_name[ - 'accuracy_param'].message_type = _ACCURACYPARAMETER +_V1LAYERPARAMETER.fields_by_name['blob_share_mode'].enum_type = _V1LAYERPARAMETER_DIMCHECKMODE +_V1LAYERPARAMETER.fields_by_name['accuracy_param'].message_type = _ACCURACYPARAMETER _V1LAYERPARAMETER.fields_by_name['argmax_param'].message_type = _ARGMAXPARAMETER _V1LAYERPARAMETER.fields_by_name['concat_param'].message_type = _CONCATPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'contrastive_loss_param'].message_type = _CONTRASTIVELOSSPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'convolution_param'].message_type = _CONVOLUTIONPARAMETER +_V1LAYERPARAMETER.fields_by_name['contrastive_loss_param'].message_type = _CONTRASTIVELOSSPARAMETER +_V1LAYERPARAMETER.fields_by_name['convolution_param'].message_type = _CONVOLUTIONPARAMETER _V1LAYERPARAMETER.fields_by_name['data_param'].message_type = _DATAPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'dropout_param'].message_type = _DROPOUTPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'dummy_data_param'].message_type = _DUMMYDATAPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'eltwise_param'].message_type = _ELTWISEPARAMETER +_V1LAYERPARAMETER.fields_by_name['dropout_param'].message_type = _DROPOUTPARAMETER +_V1LAYERPARAMETER.fields_by_name['dummy_data_param'].message_type = _DUMMYDATAPARAMETER +_V1LAYERPARAMETER.fields_by_name['eltwise_param'].message_type = _ELTWISEPARAMETER _V1LAYERPARAMETER.fields_by_name['exp_param'].message_type = _EXPPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'hdf5_data_param'].message_type = _HDF5DATAPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'hdf5_output_param'].message_type = _HDF5OUTPUTPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'hinge_loss_param'].message_type = _HINGELOSSPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'image_data_param'].message_type = _IMAGEDATAPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'infogain_loss_param'].message_type = _INFOGAINLOSSPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'inner_product_param'].message_type = _INNERPRODUCTPARAMETER +_V1LAYERPARAMETER.fields_by_name['hdf5_data_param'].message_type = _HDF5DATAPARAMETER +_V1LAYERPARAMETER.fields_by_name['hdf5_output_param'].message_type = _HDF5OUTPUTPARAMETER +_V1LAYERPARAMETER.fields_by_name['hinge_loss_param'].message_type = _HINGELOSSPARAMETER +_V1LAYERPARAMETER.fields_by_name['image_data_param'].message_type = _IMAGEDATAPARAMETER +_V1LAYERPARAMETER.fields_by_name['infogain_loss_param'].message_type = _INFOGAINLOSSPARAMETER +_V1LAYERPARAMETER.fields_by_name['inner_product_param'].message_type = _INNERPRODUCTPARAMETER _V1LAYERPARAMETER.fields_by_name['lrn_param'].message_type = _LRNPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'memory_data_param'].message_type = _MEMORYDATAPARAMETER +_V1LAYERPARAMETER.fields_by_name['memory_data_param'].message_type = _MEMORYDATAPARAMETER _V1LAYERPARAMETER.fields_by_name['mvn_param'].message_type = _MVNPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'pooling_param'].message_type = _POOLINGPARAMETER +_V1LAYERPARAMETER.fields_by_name['pooling_param'].message_type = _POOLINGPARAMETER _V1LAYERPARAMETER.fields_by_name['power_param'].message_type = _POWERPARAMETER _V1LAYERPARAMETER.fields_by_name['relu_param'].message_type = _RELUPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'sigmoid_param'].message_type = _SIGMOIDPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'softmax_param'].message_type = _SOFTMAXPARAMETER +_V1LAYERPARAMETER.fields_by_name['sigmoid_param'].message_type = _SIGMOIDPARAMETER +_V1LAYERPARAMETER.fields_by_name['softmax_param'].message_type = _SOFTMAXPARAMETER _V1LAYERPARAMETER.fields_by_name['slice_param'].message_type = _SLICEPARAMETER _V1LAYERPARAMETER.fields_by_name['tanh_param'].message_type = _TANHPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'threshold_param'].message_type = _THRESHOLDPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'window_data_param'].message_type = _WINDOWDATAPARAMETER -_V1LAYERPARAMETER.fields_by_name[ - 'transform_param'].message_type = _TRANSFORMATIONPARAMETER +_V1LAYERPARAMETER.fields_by_name['threshold_param'].message_type = _THRESHOLDPARAMETER +_V1LAYERPARAMETER.fields_by_name['window_data_param'].message_type = _WINDOWDATAPARAMETER +_V1LAYERPARAMETER.fields_by_name['transform_param'].message_type = _TRANSFORMATIONPARAMETER _V1LAYERPARAMETER.fields_by_name['loss_param'].message_type = _LOSSPARAMETER _V1LAYERPARAMETER.fields_by_name['layer'].message_type = _V0LAYERPARAMETER _V1LAYERPARAMETER_LAYERTYPE.containing_type = _V1LAYERPARAMETER _V1LAYERPARAMETER_DIMCHECKMODE.containing_type = _V1LAYERPARAMETER -_V0LAYERPARAMETER.fields_by_name[ - 'weight_filler'].message_type = _FILLERPARAMETER +_V0LAYERPARAMETER.fields_by_name['weight_filler'].message_type = _FILLERPARAMETER _V0LAYERPARAMETER.fields_by_name['bias_filler'].message_type = _FILLERPARAMETER -_V0LAYERPARAMETER.fields_by_name[ - 'pool'].enum_type = _V0LAYERPARAMETER_POOLMETHOD +_V0LAYERPARAMETER.fields_by_name['pool'].enum_type = _V0LAYERPARAMETER_POOLMETHOD _V0LAYERPARAMETER.fields_by_name['blobs'].message_type = _BLOBPROTO -_V0LAYERPARAMETER.fields_by_name[ - 'hdf5_output_param'].message_type = _HDF5OUTPUTPARAMETER +_V0LAYERPARAMETER.fields_by_name['hdf5_output_param'].message_type = _HDF5OUTPUTPARAMETER _V0LAYERPARAMETER_POOLMETHOD.containing_type = _V0LAYERPARAMETER _PRELUPARAMETER.fields_by_name['filler'].message_type = _FILLERPARAMETER DESCRIPTOR.message_types_by_name['BlobShape'] = _BLOBSHAPE DESCRIPTOR.message_types_by_name['BlobProto'] = _BLOBPROTO DESCRIPTOR.message_types_by_name['BlobProtoVector'] = _BLOBPROTOVECTOR DESCRIPTOR.message_types_by_name['Datum'] = _DATUM +DESCRIPTOR.message_types_by_name['LabelMapItem'] = _LABELMAPITEM +DESCRIPTOR.message_types_by_name['LabelMap'] = _LABELMAP +DESCRIPTOR.message_types_by_name['Sampler'] = _SAMPLER +DESCRIPTOR.message_types_by_name['SampleConstraint'] = _SAMPLECONSTRAINT +DESCRIPTOR.message_types_by_name['BatchSampler'] = _BATCHSAMPLER +DESCRIPTOR.message_types_by_name['EmitConstraint'] = _EMITCONSTRAINT +DESCRIPTOR.message_types_by_name['NormalizedBBox'] = _NORMALIZEDBBOX +DESCRIPTOR.message_types_by_name['Annotation'] = _ANNOTATION +DESCRIPTOR.message_types_by_name['AnnotationGroup'] = _ANNOTATIONGROUP +DESCRIPTOR.message_types_by_name['AnnotatedDatum'] = _ANNOTATEDDATUM DESCRIPTOR.message_types_by_name['FillerParameter'] = _FILLERPARAMETER DESCRIPTOR.message_types_by_name['NetParameter'] = _NETPARAMETER DESCRIPTOR.message_types_by_name['SolverParameter'] = _SOLVERPARAMETER @@ -9519,20 +7542,27 @@ DESCRIPTOR.message_types_by_name['NetState'] = _NETSTATE DESCRIPTOR.message_types_by_name['NetStateRule'] = _NETSTATERULE DESCRIPTOR.message_types_by_name['ParamSpec'] = _PARAMSPEC DESCRIPTOR.message_types_by_name['LayerParameter'] = _LAYERPARAMETER -DESCRIPTOR.message_types_by_name[ - 'TransformationParameter'] = _TRANSFORMATIONPARAMETER +DESCRIPTOR.message_types_by_name['TransformationParameter'] = _TRANSFORMATIONPARAMETER +DESCRIPTOR.message_types_by_name['ResizeParameter'] = _RESIZEPARAMETER +DESCRIPTOR.message_types_by_name['SaltPepperParameter'] = _SALTPEPPERPARAMETER +DESCRIPTOR.message_types_by_name['NoiseParameter'] = _NOISEPARAMETER +DESCRIPTOR.message_types_by_name['DistortionParameter'] = _DISTORTIONPARAMETER +DESCRIPTOR.message_types_by_name['ExpansionParameter'] = _EXPANSIONPARAMETER DESCRIPTOR.message_types_by_name['LossParameter'] = _LOSSPARAMETER DESCRIPTOR.message_types_by_name['AccuracyParameter'] = _ACCURACYPARAMETER +DESCRIPTOR.message_types_by_name['AnnotatedDataParameter'] = _ANNOTATEDDATAPARAMETER DESCRIPTOR.message_types_by_name['ArgMaxParameter'] = _ARGMAXPARAMETER -DESCRIPTOR.message_types_by_name['ClipParameter'] = _CLIPPARAMETER DESCRIPTOR.message_types_by_name['ConcatParameter'] = _CONCATPARAMETER DESCRIPTOR.message_types_by_name['BatchNormParameter'] = _BATCHNORMPARAMETER DESCRIPTOR.message_types_by_name['BiasParameter'] = _BIASPARAMETER -DESCRIPTOR.message_types_by_name[ - 'ContrastiveLossParameter'] = _CONTRASTIVELOSSPARAMETER +DESCRIPTOR.message_types_by_name['ContrastiveLossParameter'] = _CONTRASTIVELOSSPARAMETER DESCRIPTOR.message_types_by_name['ConvolutionParameter'] = _CONVOLUTIONPARAMETER DESCRIPTOR.message_types_by_name['CropParameter'] = _CROPPARAMETER DESCRIPTOR.message_types_by_name['DataParameter'] = _DATAPARAMETER +DESCRIPTOR.message_types_by_name['DetectionEvaluateParameter'] = _DETECTIONEVALUATEPARAMETER +DESCRIPTOR.message_types_by_name['NonMaximumSuppressionParameter'] = _NONMAXIMUMSUPPRESSIONPARAMETER +DESCRIPTOR.message_types_by_name['SaveOutputParameter'] = _SAVEOUTPUTPARAMETER +DESCRIPTOR.message_types_by_name['DetectionOutputParameter'] = _DETECTIONOUTPUTPARAMETER DESCRIPTOR.message_types_by_name['DropoutParameter'] = _DROPOUTPARAMETER DESCRIPTOR.message_types_by_name['DummyDataParameter'] = _DUMMYDATAPARAMETER DESCRIPTOR.message_types_by_name['EltwiseParameter'] = _ELTWISEPARAMETER @@ -9544,18 +7574,20 @@ DESCRIPTOR.message_types_by_name['HDF5DataParameter'] = _HDF5DATAPARAMETER DESCRIPTOR.message_types_by_name['HDF5OutputParameter'] = _HDF5OUTPUTPARAMETER DESCRIPTOR.message_types_by_name['HingeLossParameter'] = _HINGELOSSPARAMETER DESCRIPTOR.message_types_by_name['ImageDataParameter'] = _IMAGEDATAPARAMETER -DESCRIPTOR.message_types_by_name[ - 'InfogainLossParameter'] = _INFOGAINLOSSPARAMETER -DESCRIPTOR.message_types_by_name[ - 'InnerProductParameter'] = _INNERPRODUCTPARAMETER +DESCRIPTOR.message_types_by_name['InfogainLossParameter'] = _INFOGAINLOSSPARAMETER +DESCRIPTOR.message_types_by_name['InnerProductParameter'] = _INNERPRODUCTPARAMETER DESCRIPTOR.message_types_by_name['InputParameter'] = _INPUTPARAMETER DESCRIPTOR.message_types_by_name['LogParameter'] = _LOGPARAMETER DESCRIPTOR.message_types_by_name['LRNParameter'] = _LRNPARAMETER DESCRIPTOR.message_types_by_name['MemoryDataParameter'] = _MEMORYDATAPARAMETER +DESCRIPTOR.message_types_by_name['MultiBoxLossParameter'] = _MULTIBOXLOSSPARAMETER DESCRIPTOR.message_types_by_name['MVNParameter'] = _MVNPARAMETER +DESCRIPTOR.message_types_by_name['NormalizeParameter'] = _NORMALIZEPARAMETER DESCRIPTOR.message_types_by_name['ParameterParameter'] = _PARAMETERPARAMETER +DESCRIPTOR.message_types_by_name['PermuteParameter'] = _PERMUTEPARAMETER DESCRIPTOR.message_types_by_name['PoolingParameter'] = _POOLINGPARAMETER DESCRIPTOR.message_types_by_name['PowerParameter'] = _POWERPARAMETER +DESCRIPTOR.message_types_by_name['PriorBoxParameter'] = _PRIORBOXPARAMETER DESCRIPTOR.message_types_by_name['PythonParameter'] = _PYTHONPARAMETER DESCRIPTOR.message_types_by_name['RecurrentParameter'] = _RECURRENTPARAMETER DESCRIPTOR.message_types_by_name['ReductionParameter'] = _REDUCTIONPARAMETER @@ -9565,596 +7597,629 @@ DESCRIPTOR.message_types_by_name['ScaleParameter'] = _SCALEPARAMETER DESCRIPTOR.message_types_by_name['SigmoidParameter'] = _SIGMOIDPARAMETER DESCRIPTOR.message_types_by_name['SliceParameter'] = _SLICEPARAMETER DESCRIPTOR.message_types_by_name['SoftmaxParameter'] = _SOFTMAXPARAMETER -DESCRIPTOR.message_types_by_name['SwishParameter'] = _SWISHPARAMETER DESCRIPTOR.message_types_by_name['TanHParameter'] = _TANHPARAMETER DESCRIPTOR.message_types_by_name['TileParameter'] = _TILEPARAMETER DESCRIPTOR.message_types_by_name['ThresholdParameter'] = _THRESHOLDPARAMETER +DESCRIPTOR.message_types_by_name['VideoDataParameter'] = _VIDEODATAPARAMETER DESCRIPTOR.message_types_by_name['WindowDataParameter'] = _WINDOWDATAPARAMETER DESCRIPTOR.message_types_by_name['SPPParameter'] = _SPPPARAMETER DESCRIPTOR.message_types_by_name['V1LayerParameter'] = _V1LAYERPARAMETER DESCRIPTOR.message_types_by_name['V0LayerParameter'] = _V0LAYERPARAMETER DESCRIPTOR.message_types_by_name['PReLUParameter'] = _PRELUPARAMETER -DESCRIPTOR.message_types_by_name[ - 'ShuffleChannelParameter'] = _SHUFFLECHANNELPARAMETER +DESCRIPTOR.message_types_by_name['ShuffleChannelParameter'] = _SHUFFLECHANNELPARAMETER DESCRIPTOR.enum_types_by_name['Phase'] = _PHASE _sym_db.RegisterFileDescriptor(DESCRIPTOR) -BlobShape = _reflection.GeneratedProtocolMessageType( - 'BlobShape', - (_message.Message, ), - dict(DESCRIPTOR=_BLOBSHAPE, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.BlobShape) - )) +BlobShape = _reflection.GeneratedProtocolMessageType('BlobShape', (_message.Message,), dict( + DESCRIPTOR = _BLOBSHAPE, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.BlobShape) + )) _sym_db.RegisterMessage(BlobShape) -BlobProto = _reflection.GeneratedProtocolMessageType( - 'BlobProto', - (_message.Message, ), - dict(DESCRIPTOR=_BLOBPROTO, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.BlobProto) - )) +BlobProto = _reflection.GeneratedProtocolMessageType('BlobProto', (_message.Message,), dict( + DESCRIPTOR = _BLOBPROTO, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.BlobProto) + )) _sym_db.RegisterMessage(BlobProto) -BlobProtoVector = _reflection.GeneratedProtocolMessageType( - 'BlobProtoVector', - (_message.Message, ), - dict(DESCRIPTOR=_BLOBPROTOVECTOR, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.BlobProtoVector) - )) +BlobProtoVector = _reflection.GeneratedProtocolMessageType('BlobProtoVector', (_message.Message,), dict( + DESCRIPTOR = _BLOBPROTOVECTOR, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.BlobProtoVector) + )) _sym_db.RegisterMessage(BlobProtoVector) -Datum = _reflection.GeneratedProtocolMessageType( - 'Datum', - (_message.Message, ), - dict(DESCRIPTOR=_DATUM, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.Datum) - )) +Datum = _reflection.GeneratedProtocolMessageType('Datum', (_message.Message,), dict( + DESCRIPTOR = _DATUM, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.Datum) + )) _sym_db.RegisterMessage(Datum) -FillerParameter = _reflection.GeneratedProtocolMessageType( - 'FillerParameter', - (_message.Message, ), - dict(DESCRIPTOR=_FILLERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.FillerParameter) - )) +LabelMapItem = _reflection.GeneratedProtocolMessageType('LabelMapItem', (_message.Message,), dict( + DESCRIPTOR = _LABELMAPITEM, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.LabelMapItem) + )) +_sym_db.RegisterMessage(LabelMapItem) + +LabelMap = _reflection.GeneratedProtocolMessageType('LabelMap', (_message.Message,), dict( + DESCRIPTOR = _LABELMAP, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.LabelMap) + )) +_sym_db.RegisterMessage(LabelMap) + +Sampler = _reflection.GeneratedProtocolMessageType('Sampler', (_message.Message,), dict( + DESCRIPTOR = _SAMPLER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.Sampler) + )) +_sym_db.RegisterMessage(Sampler) + +SampleConstraint = _reflection.GeneratedProtocolMessageType('SampleConstraint', (_message.Message,), dict( + DESCRIPTOR = _SAMPLECONSTRAINT, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SampleConstraint) + )) +_sym_db.RegisterMessage(SampleConstraint) + +BatchSampler = _reflection.GeneratedProtocolMessageType('BatchSampler', (_message.Message,), dict( + DESCRIPTOR = _BATCHSAMPLER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.BatchSampler) + )) +_sym_db.RegisterMessage(BatchSampler) + +EmitConstraint = _reflection.GeneratedProtocolMessageType('EmitConstraint', (_message.Message,), dict( + DESCRIPTOR = _EMITCONSTRAINT, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.EmitConstraint) + )) +_sym_db.RegisterMessage(EmitConstraint) + +NormalizedBBox = _reflection.GeneratedProtocolMessageType('NormalizedBBox', (_message.Message,), dict( + DESCRIPTOR = _NORMALIZEDBBOX, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NormalizedBBox) + )) +_sym_db.RegisterMessage(NormalizedBBox) + +Annotation = _reflection.GeneratedProtocolMessageType('Annotation', (_message.Message,), dict( + DESCRIPTOR = _ANNOTATION, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.Annotation) + )) +_sym_db.RegisterMessage(Annotation) + +AnnotationGroup = _reflection.GeneratedProtocolMessageType('AnnotationGroup', (_message.Message,), dict( + DESCRIPTOR = _ANNOTATIONGROUP, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.AnnotationGroup) + )) +_sym_db.RegisterMessage(AnnotationGroup) + +AnnotatedDatum = _reflection.GeneratedProtocolMessageType('AnnotatedDatum', (_message.Message,), dict( + DESCRIPTOR = _ANNOTATEDDATUM, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.AnnotatedDatum) + )) +_sym_db.RegisterMessage(AnnotatedDatum) + +FillerParameter = _reflection.GeneratedProtocolMessageType('FillerParameter', (_message.Message,), dict( + DESCRIPTOR = _FILLERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.FillerParameter) + )) _sym_db.RegisterMessage(FillerParameter) -NetParameter = _reflection.GeneratedProtocolMessageType( - 'NetParameter', - (_message.Message, ), - dict(DESCRIPTOR=_NETPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.NetParameter) - )) +NetParameter = _reflection.GeneratedProtocolMessageType('NetParameter', (_message.Message,), dict( + DESCRIPTOR = _NETPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NetParameter) + )) _sym_db.RegisterMessage(NetParameter) -SolverParameter = _reflection.GeneratedProtocolMessageType( - 'SolverParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SOLVERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SolverParameter) - )) +SolverParameter = _reflection.GeneratedProtocolMessageType('SolverParameter', (_message.Message,), dict( + DESCRIPTOR = _SOLVERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SolverParameter) + )) _sym_db.RegisterMessage(SolverParameter) -SolverState = _reflection.GeneratedProtocolMessageType( - 'SolverState', - (_message.Message, ), - dict(DESCRIPTOR=_SOLVERSTATE, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SolverState) - )) +SolverState = _reflection.GeneratedProtocolMessageType('SolverState', (_message.Message,), dict( + DESCRIPTOR = _SOLVERSTATE, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SolverState) + )) _sym_db.RegisterMessage(SolverState) -NetState = _reflection.GeneratedProtocolMessageType( - 'NetState', - (_message.Message, ), - dict(DESCRIPTOR=_NETSTATE, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.NetState) - )) +NetState = _reflection.GeneratedProtocolMessageType('NetState', (_message.Message,), dict( + DESCRIPTOR = _NETSTATE, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NetState) + )) _sym_db.RegisterMessage(NetState) -NetStateRule = _reflection.GeneratedProtocolMessageType( - 'NetStateRule', - (_message.Message, ), - dict(DESCRIPTOR=_NETSTATERULE, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.NetStateRule) - )) +NetStateRule = _reflection.GeneratedProtocolMessageType('NetStateRule', (_message.Message,), dict( + DESCRIPTOR = _NETSTATERULE, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NetStateRule) + )) _sym_db.RegisterMessage(NetStateRule) -ParamSpec = _reflection.GeneratedProtocolMessageType( - 'ParamSpec', - (_message.Message, ), - dict(DESCRIPTOR=_PARAMSPEC, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ParamSpec) - )) +ParamSpec = _reflection.GeneratedProtocolMessageType('ParamSpec', (_message.Message,), dict( + DESCRIPTOR = _PARAMSPEC, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ParamSpec) + )) _sym_db.RegisterMessage(ParamSpec) -LayerParameter = _reflection.GeneratedProtocolMessageType( - 'LayerParameter', - (_message.Message, ), - dict(DESCRIPTOR=_LAYERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.LayerParameter) - )) +LayerParameter = _reflection.GeneratedProtocolMessageType('LayerParameter', (_message.Message,), dict( + DESCRIPTOR = _LAYERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.LayerParameter) + )) _sym_db.RegisterMessage(LayerParameter) -TransformationParameter = _reflection.GeneratedProtocolMessageType( - 'TransformationParameter', - (_message.Message, ), - dict(DESCRIPTOR=_TRANSFORMATIONPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.TransformationParameter) - )) +TransformationParameter = _reflection.GeneratedProtocolMessageType('TransformationParameter', (_message.Message,), dict( + DESCRIPTOR = _TRANSFORMATIONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.TransformationParameter) + )) _sym_db.RegisterMessage(TransformationParameter) -LossParameter = _reflection.GeneratedProtocolMessageType( - 'LossParameter', - (_message.Message, ), - dict(DESCRIPTOR=_LOSSPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.LossParameter) - )) +ResizeParameter = _reflection.GeneratedProtocolMessageType('ResizeParameter', (_message.Message,), dict( + DESCRIPTOR = _RESIZEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ResizeParameter) + )) +_sym_db.RegisterMessage(ResizeParameter) + +SaltPepperParameter = _reflection.GeneratedProtocolMessageType('SaltPepperParameter', (_message.Message,), dict( + DESCRIPTOR = _SALTPEPPERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SaltPepperParameter) + )) +_sym_db.RegisterMessage(SaltPepperParameter) + +NoiseParameter = _reflection.GeneratedProtocolMessageType('NoiseParameter', (_message.Message,), dict( + DESCRIPTOR = _NOISEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NoiseParameter) + )) +_sym_db.RegisterMessage(NoiseParameter) + +DistortionParameter = _reflection.GeneratedProtocolMessageType('DistortionParameter', (_message.Message,), dict( + DESCRIPTOR = _DISTORTIONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.DistortionParameter) + )) +_sym_db.RegisterMessage(DistortionParameter) + +ExpansionParameter = _reflection.GeneratedProtocolMessageType('ExpansionParameter', (_message.Message,), dict( + DESCRIPTOR = _EXPANSIONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ExpansionParameter) + )) +_sym_db.RegisterMessage(ExpansionParameter) + +LossParameter = _reflection.GeneratedProtocolMessageType('LossParameter', (_message.Message,), dict( + DESCRIPTOR = _LOSSPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.LossParameter) + )) _sym_db.RegisterMessage(LossParameter) -AccuracyParameter = _reflection.GeneratedProtocolMessageType( - 'AccuracyParameter', - (_message.Message, ), - dict(DESCRIPTOR=_ACCURACYPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.AccuracyParameter) - )) +AccuracyParameter = _reflection.GeneratedProtocolMessageType('AccuracyParameter', (_message.Message,), dict( + DESCRIPTOR = _ACCURACYPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.AccuracyParameter) + )) _sym_db.RegisterMessage(AccuracyParameter) -ArgMaxParameter = _reflection.GeneratedProtocolMessageType( - 'ArgMaxParameter', - (_message.Message, ), - dict(DESCRIPTOR=_ARGMAXPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ArgMaxParameter) - )) +AnnotatedDataParameter = _reflection.GeneratedProtocolMessageType('AnnotatedDataParameter', (_message.Message,), dict( + DESCRIPTOR = _ANNOTATEDDATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.AnnotatedDataParameter) + )) +_sym_db.RegisterMessage(AnnotatedDataParameter) + +ArgMaxParameter = _reflection.GeneratedProtocolMessageType('ArgMaxParameter', (_message.Message,), dict( + DESCRIPTOR = _ARGMAXPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ArgMaxParameter) + )) _sym_db.RegisterMessage(ArgMaxParameter) -ClipParameter = _reflection.GeneratedProtocolMessageType( - 'ClipParameter', - (_message.Message, ), - dict(DESCRIPTOR=_CLIPPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ClipParameter) - )) -_sym_db.RegisterMessage(ClipParameter) - -ConcatParameter = _reflection.GeneratedProtocolMessageType( - 'ConcatParameter', - (_message.Message, ), - dict(DESCRIPTOR=_CONCATPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ConcatParameter) - )) +ConcatParameter = _reflection.GeneratedProtocolMessageType('ConcatParameter', (_message.Message,), dict( + DESCRIPTOR = _CONCATPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ConcatParameter) + )) _sym_db.RegisterMessage(ConcatParameter) -BatchNormParameter = _reflection.GeneratedProtocolMessageType( - 'BatchNormParameter', - (_message.Message, ), - dict(DESCRIPTOR=_BATCHNORMPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.BatchNormParameter) - )) +BatchNormParameter = _reflection.GeneratedProtocolMessageType('BatchNormParameter', (_message.Message,), dict( + DESCRIPTOR = _BATCHNORMPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.BatchNormParameter) + )) _sym_db.RegisterMessage(BatchNormParameter) -BiasParameter = _reflection.GeneratedProtocolMessageType( - 'BiasParameter', - (_message.Message, ), - dict(DESCRIPTOR=_BIASPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.BiasParameter) - )) +BiasParameter = _reflection.GeneratedProtocolMessageType('BiasParameter', (_message.Message,), dict( + DESCRIPTOR = _BIASPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.BiasParameter) + )) _sym_db.RegisterMessage(BiasParameter) -ContrastiveLossParameter = _reflection.GeneratedProtocolMessageType( - 'ContrastiveLossParameter', - (_message.Message, ), - dict(DESCRIPTOR=_CONTRASTIVELOSSPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ContrastiveLossParameter) - )) +ContrastiveLossParameter = _reflection.GeneratedProtocolMessageType('ContrastiveLossParameter', (_message.Message,), dict( + DESCRIPTOR = _CONTRASTIVELOSSPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ContrastiveLossParameter) + )) _sym_db.RegisterMessage(ContrastiveLossParameter) -ConvolutionParameter = _reflection.GeneratedProtocolMessageType( - 'ConvolutionParameter', - (_message.Message, ), - dict(DESCRIPTOR=_CONVOLUTIONPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ConvolutionParameter) - )) +ConvolutionParameter = _reflection.GeneratedProtocolMessageType('ConvolutionParameter', (_message.Message,), dict( + DESCRIPTOR = _CONVOLUTIONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ConvolutionParameter) + )) _sym_db.RegisterMessage(ConvolutionParameter) -CropParameter = _reflection.GeneratedProtocolMessageType( - 'CropParameter', - (_message.Message, ), - dict(DESCRIPTOR=_CROPPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.CropParameter) - )) +CropParameter = _reflection.GeneratedProtocolMessageType('CropParameter', (_message.Message,), dict( + DESCRIPTOR = _CROPPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.CropParameter) + )) _sym_db.RegisterMessage(CropParameter) -DataParameter = _reflection.GeneratedProtocolMessageType( - 'DataParameter', - (_message.Message, ), - dict(DESCRIPTOR=_DATAPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.DataParameter) - )) +DataParameter = _reflection.GeneratedProtocolMessageType('DataParameter', (_message.Message,), dict( + DESCRIPTOR = _DATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.DataParameter) + )) _sym_db.RegisterMessage(DataParameter) -DropoutParameter = _reflection.GeneratedProtocolMessageType( - 'DropoutParameter', - (_message.Message, ), - dict(DESCRIPTOR=_DROPOUTPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.DropoutParameter) - )) +DetectionEvaluateParameter = _reflection.GeneratedProtocolMessageType('DetectionEvaluateParameter', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONEVALUATEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.DetectionEvaluateParameter) + )) +_sym_db.RegisterMessage(DetectionEvaluateParameter) + +NonMaximumSuppressionParameter = _reflection.GeneratedProtocolMessageType('NonMaximumSuppressionParameter', (_message.Message,), dict( + DESCRIPTOR = _NONMAXIMUMSUPPRESSIONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NonMaximumSuppressionParameter) + )) +_sym_db.RegisterMessage(NonMaximumSuppressionParameter) + +SaveOutputParameter = _reflection.GeneratedProtocolMessageType('SaveOutputParameter', (_message.Message,), dict( + DESCRIPTOR = _SAVEOUTPUTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SaveOutputParameter) + )) +_sym_db.RegisterMessage(SaveOutputParameter) + +DetectionOutputParameter = _reflection.GeneratedProtocolMessageType('DetectionOutputParameter', (_message.Message,), dict( + DESCRIPTOR = _DETECTIONOUTPUTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.DetectionOutputParameter) + )) +_sym_db.RegisterMessage(DetectionOutputParameter) + +DropoutParameter = _reflection.GeneratedProtocolMessageType('DropoutParameter', (_message.Message,), dict( + DESCRIPTOR = _DROPOUTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.DropoutParameter) + )) _sym_db.RegisterMessage(DropoutParameter) -DummyDataParameter = _reflection.GeneratedProtocolMessageType( - 'DummyDataParameter', - (_message.Message, ), - dict(DESCRIPTOR=_DUMMYDATAPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.DummyDataParameter) - )) +DummyDataParameter = _reflection.GeneratedProtocolMessageType('DummyDataParameter', (_message.Message,), dict( + DESCRIPTOR = _DUMMYDATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.DummyDataParameter) + )) _sym_db.RegisterMessage(DummyDataParameter) -EltwiseParameter = _reflection.GeneratedProtocolMessageType( - 'EltwiseParameter', - (_message.Message, ), - dict(DESCRIPTOR=_ELTWISEPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.EltwiseParameter) - )) +EltwiseParameter = _reflection.GeneratedProtocolMessageType('EltwiseParameter', (_message.Message,), dict( + DESCRIPTOR = _ELTWISEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.EltwiseParameter) + )) _sym_db.RegisterMessage(EltwiseParameter) -ELUParameter = _reflection.GeneratedProtocolMessageType( - 'ELUParameter', - (_message.Message, ), - dict(DESCRIPTOR=_ELUPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ELUParameter) - )) +ELUParameter = _reflection.GeneratedProtocolMessageType('ELUParameter', (_message.Message,), dict( + DESCRIPTOR = _ELUPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ELUParameter) + )) _sym_db.RegisterMessage(ELUParameter) -EmbedParameter = _reflection.GeneratedProtocolMessageType( - 'EmbedParameter', - (_message.Message, ), - dict(DESCRIPTOR=_EMBEDPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.EmbedParameter) - )) +EmbedParameter = _reflection.GeneratedProtocolMessageType('EmbedParameter', (_message.Message,), dict( + DESCRIPTOR = _EMBEDPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.EmbedParameter) + )) _sym_db.RegisterMessage(EmbedParameter) -ExpParameter = _reflection.GeneratedProtocolMessageType( - 'ExpParameter', - (_message.Message, ), - dict(DESCRIPTOR=_EXPPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ExpParameter) - )) +ExpParameter = _reflection.GeneratedProtocolMessageType('ExpParameter', (_message.Message,), dict( + DESCRIPTOR = _EXPPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ExpParameter) + )) _sym_db.RegisterMessage(ExpParameter) -FlattenParameter = _reflection.GeneratedProtocolMessageType( - 'FlattenParameter', - (_message.Message, ), - dict(DESCRIPTOR=_FLATTENPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.FlattenParameter) - )) +FlattenParameter = _reflection.GeneratedProtocolMessageType('FlattenParameter', (_message.Message,), dict( + DESCRIPTOR = _FLATTENPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.FlattenParameter) + )) _sym_db.RegisterMessage(FlattenParameter) -HDF5DataParameter = _reflection.GeneratedProtocolMessageType( - 'HDF5DataParameter', - (_message.Message, ), - dict(DESCRIPTOR=_HDF5DATAPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.HDF5DataParameter) - )) +HDF5DataParameter = _reflection.GeneratedProtocolMessageType('HDF5DataParameter', (_message.Message,), dict( + DESCRIPTOR = _HDF5DATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.HDF5DataParameter) + )) _sym_db.RegisterMessage(HDF5DataParameter) -HDF5OutputParameter = _reflection.GeneratedProtocolMessageType( - 'HDF5OutputParameter', - (_message.Message, ), - dict(DESCRIPTOR=_HDF5OUTPUTPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.HDF5OutputParameter) - )) +HDF5OutputParameter = _reflection.GeneratedProtocolMessageType('HDF5OutputParameter', (_message.Message,), dict( + DESCRIPTOR = _HDF5OUTPUTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.HDF5OutputParameter) + )) _sym_db.RegisterMessage(HDF5OutputParameter) -HingeLossParameter = _reflection.GeneratedProtocolMessageType( - 'HingeLossParameter', - (_message.Message, ), - dict(DESCRIPTOR=_HINGELOSSPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.HingeLossParameter) - )) +HingeLossParameter = _reflection.GeneratedProtocolMessageType('HingeLossParameter', (_message.Message,), dict( + DESCRIPTOR = _HINGELOSSPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.HingeLossParameter) + )) _sym_db.RegisterMessage(HingeLossParameter) -ImageDataParameter = _reflection.GeneratedProtocolMessageType( - 'ImageDataParameter', - (_message.Message, ), - dict(DESCRIPTOR=_IMAGEDATAPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ImageDataParameter) - )) +ImageDataParameter = _reflection.GeneratedProtocolMessageType('ImageDataParameter', (_message.Message,), dict( + DESCRIPTOR = _IMAGEDATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ImageDataParameter) + )) _sym_db.RegisterMessage(ImageDataParameter) -InfogainLossParameter = _reflection.GeneratedProtocolMessageType( - 'InfogainLossParameter', - (_message.Message, ), - dict(DESCRIPTOR=_INFOGAINLOSSPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.InfogainLossParameter) - )) +InfogainLossParameter = _reflection.GeneratedProtocolMessageType('InfogainLossParameter', (_message.Message,), dict( + DESCRIPTOR = _INFOGAINLOSSPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.InfogainLossParameter) + )) _sym_db.RegisterMessage(InfogainLossParameter) -InnerProductParameter = _reflection.GeneratedProtocolMessageType( - 'InnerProductParameter', - (_message.Message, ), - dict(DESCRIPTOR=_INNERPRODUCTPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.InnerProductParameter) - )) +InnerProductParameter = _reflection.GeneratedProtocolMessageType('InnerProductParameter', (_message.Message,), dict( + DESCRIPTOR = _INNERPRODUCTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.InnerProductParameter) + )) _sym_db.RegisterMessage(InnerProductParameter) -InputParameter = _reflection.GeneratedProtocolMessageType( - 'InputParameter', - (_message.Message, ), - dict(DESCRIPTOR=_INPUTPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.InputParameter) - )) +InputParameter = _reflection.GeneratedProtocolMessageType('InputParameter', (_message.Message,), dict( + DESCRIPTOR = _INPUTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.InputParameter) + )) _sym_db.RegisterMessage(InputParameter) -LogParameter = _reflection.GeneratedProtocolMessageType( - 'LogParameter', - (_message.Message, ), - dict(DESCRIPTOR=_LOGPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.LogParameter) - )) +LogParameter = _reflection.GeneratedProtocolMessageType('LogParameter', (_message.Message,), dict( + DESCRIPTOR = _LOGPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.LogParameter) + )) _sym_db.RegisterMessage(LogParameter) -LRNParameter = _reflection.GeneratedProtocolMessageType( - 'LRNParameter', - (_message.Message, ), - dict(DESCRIPTOR=_LRNPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.LRNParameter) - )) +LRNParameter = _reflection.GeneratedProtocolMessageType('LRNParameter', (_message.Message,), dict( + DESCRIPTOR = _LRNPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.LRNParameter) + )) _sym_db.RegisterMessage(LRNParameter) -MemoryDataParameter = _reflection.GeneratedProtocolMessageType( - 'MemoryDataParameter', - (_message.Message, ), - dict(DESCRIPTOR=_MEMORYDATAPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.MemoryDataParameter) - )) +MemoryDataParameter = _reflection.GeneratedProtocolMessageType('MemoryDataParameter', (_message.Message,), dict( + DESCRIPTOR = _MEMORYDATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.MemoryDataParameter) + )) _sym_db.RegisterMessage(MemoryDataParameter) -MVNParameter = _reflection.GeneratedProtocolMessageType( - 'MVNParameter', - (_message.Message, ), - dict(DESCRIPTOR=_MVNPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.MVNParameter) - )) +MultiBoxLossParameter = _reflection.GeneratedProtocolMessageType('MultiBoxLossParameter', (_message.Message,), dict( + DESCRIPTOR = _MULTIBOXLOSSPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.MultiBoxLossParameter) + )) +_sym_db.RegisterMessage(MultiBoxLossParameter) + +MVNParameter = _reflection.GeneratedProtocolMessageType('MVNParameter', (_message.Message,), dict( + DESCRIPTOR = _MVNPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.MVNParameter) + )) _sym_db.RegisterMessage(MVNParameter) -ParameterParameter = _reflection.GeneratedProtocolMessageType( - 'ParameterParameter', - (_message.Message, ), - dict(DESCRIPTOR=_PARAMETERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ParameterParameter) - )) +NormalizeParameter = _reflection.GeneratedProtocolMessageType('NormalizeParameter', (_message.Message,), dict( + DESCRIPTOR = _NORMALIZEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.NormalizeParameter) + )) +_sym_db.RegisterMessage(NormalizeParameter) + +ParameterParameter = _reflection.GeneratedProtocolMessageType('ParameterParameter', (_message.Message,), dict( + DESCRIPTOR = _PARAMETERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ParameterParameter) + )) _sym_db.RegisterMessage(ParameterParameter) -PoolingParameter = _reflection.GeneratedProtocolMessageType( - 'PoolingParameter', - (_message.Message, ), - dict(DESCRIPTOR=_POOLINGPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.PoolingParameter) - )) +PermuteParameter = _reflection.GeneratedProtocolMessageType('PermuteParameter', (_message.Message,), dict( + DESCRIPTOR = _PERMUTEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.PermuteParameter) + )) +_sym_db.RegisterMessage(PermuteParameter) + +PoolingParameter = _reflection.GeneratedProtocolMessageType('PoolingParameter', (_message.Message,), dict( + DESCRIPTOR = _POOLINGPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.PoolingParameter) + )) _sym_db.RegisterMessage(PoolingParameter) -PowerParameter = _reflection.GeneratedProtocolMessageType( - 'PowerParameter', - (_message.Message, ), - dict(DESCRIPTOR=_POWERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.PowerParameter) - )) +PowerParameter = _reflection.GeneratedProtocolMessageType('PowerParameter', (_message.Message,), dict( + DESCRIPTOR = _POWERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.PowerParameter) + )) _sym_db.RegisterMessage(PowerParameter) -PythonParameter = _reflection.GeneratedProtocolMessageType( - 'PythonParameter', - (_message.Message, ), - dict(DESCRIPTOR=_PYTHONPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.PythonParameter) - )) +PriorBoxParameter = _reflection.GeneratedProtocolMessageType('PriorBoxParameter', (_message.Message,), dict( + DESCRIPTOR = _PRIORBOXPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.PriorBoxParameter) + )) +_sym_db.RegisterMessage(PriorBoxParameter) + +PythonParameter = _reflection.GeneratedProtocolMessageType('PythonParameter', (_message.Message,), dict( + DESCRIPTOR = _PYTHONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.PythonParameter) + )) _sym_db.RegisterMessage(PythonParameter) -RecurrentParameter = _reflection.GeneratedProtocolMessageType( - 'RecurrentParameter', - (_message.Message, ), - dict(DESCRIPTOR=_RECURRENTPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.RecurrentParameter) - )) +RecurrentParameter = _reflection.GeneratedProtocolMessageType('RecurrentParameter', (_message.Message,), dict( + DESCRIPTOR = _RECURRENTPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.RecurrentParameter) + )) _sym_db.RegisterMessage(RecurrentParameter) -ReductionParameter = _reflection.GeneratedProtocolMessageType( - 'ReductionParameter', - (_message.Message, ), - dict(DESCRIPTOR=_REDUCTIONPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ReductionParameter) - )) +ReductionParameter = _reflection.GeneratedProtocolMessageType('ReductionParameter', (_message.Message,), dict( + DESCRIPTOR = _REDUCTIONPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ReductionParameter) + )) _sym_db.RegisterMessage(ReductionParameter) -ReLUParameter = _reflection.GeneratedProtocolMessageType( - 'ReLUParameter', - (_message.Message, ), - dict(DESCRIPTOR=_RELUPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ReLUParameter) - )) +ReLUParameter = _reflection.GeneratedProtocolMessageType('ReLUParameter', (_message.Message,), dict( + DESCRIPTOR = _RELUPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ReLUParameter) + )) _sym_db.RegisterMessage(ReLUParameter) -ReshapeParameter = _reflection.GeneratedProtocolMessageType( - 'ReshapeParameter', - (_message.Message, ), - dict(DESCRIPTOR=_RESHAPEPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ReshapeParameter) - )) +ReshapeParameter = _reflection.GeneratedProtocolMessageType('ReshapeParameter', (_message.Message,), dict( + DESCRIPTOR = _RESHAPEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ReshapeParameter) + )) _sym_db.RegisterMessage(ReshapeParameter) -ScaleParameter = _reflection.GeneratedProtocolMessageType( - 'ScaleParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SCALEPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ScaleParameter) - )) +ScaleParameter = _reflection.GeneratedProtocolMessageType('ScaleParameter', (_message.Message,), dict( + DESCRIPTOR = _SCALEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ScaleParameter) + )) _sym_db.RegisterMessage(ScaleParameter) -SigmoidParameter = _reflection.GeneratedProtocolMessageType( - 'SigmoidParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SIGMOIDPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SigmoidParameter) - )) +SigmoidParameter = _reflection.GeneratedProtocolMessageType('SigmoidParameter', (_message.Message,), dict( + DESCRIPTOR = _SIGMOIDPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SigmoidParameter) + )) _sym_db.RegisterMessage(SigmoidParameter) -SliceParameter = _reflection.GeneratedProtocolMessageType( - 'SliceParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SLICEPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SliceParameter) - )) +SliceParameter = _reflection.GeneratedProtocolMessageType('SliceParameter', (_message.Message,), dict( + DESCRIPTOR = _SLICEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SliceParameter) + )) _sym_db.RegisterMessage(SliceParameter) -SoftmaxParameter = _reflection.GeneratedProtocolMessageType( - 'SoftmaxParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SOFTMAXPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SoftmaxParameter) - )) +SoftmaxParameter = _reflection.GeneratedProtocolMessageType('SoftmaxParameter', (_message.Message,), dict( + DESCRIPTOR = _SOFTMAXPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SoftmaxParameter) + )) _sym_db.RegisterMessage(SoftmaxParameter) -SwishParameter = _reflection.GeneratedProtocolMessageType( - 'SwishParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SWISHPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SwishParameter) - )) -_sym_db.RegisterMessage(SwishParameter) - -TanHParameter = _reflection.GeneratedProtocolMessageType( - 'TanHParameter', - (_message.Message, ), - dict(DESCRIPTOR=_TANHPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.TanHParameter) - )) +TanHParameter = _reflection.GeneratedProtocolMessageType('TanHParameter', (_message.Message,), dict( + DESCRIPTOR = _TANHPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.TanHParameter) + )) _sym_db.RegisterMessage(TanHParameter) -TileParameter = _reflection.GeneratedProtocolMessageType( - 'TileParameter', - (_message.Message, ), - dict(DESCRIPTOR=_TILEPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.TileParameter) - )) +TileParameter = _reflection.GeneratedProtocolMessageType('TileParameter', (_message.Message,), dict( + DESCRIPTOR = _TILEPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.TileParameter) + )) _sym_db.RegisterMessage(TileParameter) -ThresholdParameter = _reflection.GeneratedProtocolMessageType( - 'ThresholdParameter', - (_message.Message, ), - dict(DESCRIPTOR=_THRESHOLDPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ThresholdParameter) - )) +ThresholdParameter = _reflection.GeneratedProtocolMessageType('ThresholdParameter', (_message.Message,), dict( + DESCRIPTOR = _THRESHOLDPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ThresholdParameter) + )) _sym_db.RegisterMessage(ThresholdParameter) -WindowDataParameter = _reflection.GeneratedProtocolMessageType( - 'WindowDataParameter', - (_message.Message, ), - dict(DESCRIPTOR=_WINDOWDATAPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.WindowDataParameter) - )) +VideoDataParameter = _reflection.GeneratedProtocolMessageType('VideoDataParameter', (_message.Message,), dict( + DESCRIPTOR = _VIDEODATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.VideoDataParameter) + )) +_sym_db.RegisterMessage(VideoDataParameter) + +WindowDataParameter = _reflection.GeneratedProtocolMessageType('WindowDataParameter', (_message.Message,), dict( + DESCRIPTOR = _WINDOWDATAPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.WindowDataParameter) + )) _sym_db.RegisterMessage(WindowDataParameter) -SPPParameter = _reflection.GeneratedProtocolMessageType( - 'SPPParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SPPPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.SPPParameter) - )) +SPPParameter = _reflection.GeneratedProtocolMessageType('SPPParameter', (_message.Message,), dict( + DESCRIPTOR = _SPPPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.SPPParameter) + )) _sym_db.RegisterMessage(SPPParameter) -V1LayerParameter = _reflection.GeneratedProtocolMessageType( - 'V1LayerParameter', - (_message.Message, ), - dict(DESCRIPTOR=_V1LAYERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.V1LayerParameter) - )) +V1LayerParameter = _reflection.GeneratedProtocolMessageType('V1LayerParameter', (_message.Message,), dict( + DESCRIPTOR = _V1LAYERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.V1LayerParameter) + )) _sym_db.RegisterMessage(V1LayerParameter) -V0LayerParameter = _reflection.GeneratedProtocolMessageType( - 'V0LayerParameter', - (_message.Message, ), - dict(DESCRIPTOR=_V0LAYERPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.V0LayerParameter) - )) +V0LayerParameter = _reflection.GeneratedProtocolMessageType('V0LayerParameter', (_message.Message,), dict( + DESCRIPTOR = _V0LAYERPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.V0LayerParameter) + )) _sym_db.RegisterMessage(V0LayerParameter) -PReLUParameter = _reflection.GeneratedProtocolMessageType( - 'PReLUParameter', - (_message.Message, ), - dict(DESCRIPTOR=_PRELUPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.PReLUParameter) - )) +PReLUParameter = _reflection.GeneratedProtocolMessageType('PReLUParameter', (_message.Message,), dict( + DESCRIPTOR = _PRELUPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.PReLUParameter) + )) _sym_db.RegisterMessage(PReLUParameter) -ShuffleChannelParameter = _reflection.GeneratedProtocolMessageType( - 'ShuffleChannelParameter', - (_message.Message, ), - dict(DESCRIPTOR=_SHUFFLECHANNELPARAMETER, - __module__='caffe_pb2' - # @@protoc_insertion_point(class_scope:caffe.ShuffleChannelParameter) - )) +ShuffleChannelParameter = _reflection.GeneratedProtocolMessageType('ShuffleChannelParameter', (_message.Message,), dict( + DESCRIPTOR = _SHUFFLECHANNELPARAMETER, + __module__ = 'caffe_pb2' + # @@protoc_insertion_point(class_scope:caffe.ShuffleChannelParameter) + )) _sym_db.RegisterMessage(ShuffleChannelParameter) + _BLOBSHAPE.fields_by_name['dim']._options = None _BLOBPROTO.fields_by_name['data']._options = None _BLOBPROTO.fields_by_name['diff']._options = None diff --git a/x2paddle/decoder/tf_decoder.py b/x2paddle/decoder/tf_decoder.py index 47acda714ea2cdeda42ad13db7e04d32e77f4a73..71ee7909a7e39b0bff5aa99f60ba504760f197b9 100644 --- a/x2paddle/decoder/tf_decoder.py +++ b/x2paddle/decoder/tf_decoder.py @@ -15,7 +15,6 @@ from x2paddle.core.graph import GraphNode, Graph from x2paddle.core.fluid_code import FluidCode from tensorflow.python.framework import tensor_util -from tensorflow.python.platform import gfile from tensorflow.core.framework import attr_value_pb2 import tensorflow as tf import copy as cp @@ -39,7 +38,7 @@ class TFGraphNode(GraphNode): self.pd_data_format = "NCHW" self.fluid_code = FluidCode() - self.dtype_map = {1: "float32", 3: "int32", 4: "int8", 9: "int64"} + self.dtype_map = {1: "float32", 3: "int32", 4: "uint8", 9: "int64"} @property def out_shapes(self): @@ -52,7 +51,11 @@ class TFGraphNode(GraphNode): @property def dtype(self): - dtype = self.layer.attr["dtype"].type + keys = ['dtype', 'Tidx', 'T', 'DstT'] + for k in keys: + dtype = self.layer.attr[k].type + if dtype > 0: + break if dtype not in self.dtype_map: raise Exception("Dtype[{}] not in dtype_map".format(dtype)) return self.dtype_map[dtype] @@ -125,6 +128,8 @@ class TFGraph(Graph): items[0] = self.identity_map[items[0]] new_node_name = ":".join(items) node = super(TFGraph, self).get_node(new_node_name, copy) + if node is None: + return None if len(items) == 1 and node.layer_type in self.multi_out_ops: node.index = 0 return node @@ -134,7 +139,7 @@ class TFGraph(Graph): raise Exception("Node[{}] not in graph".format(node_name)) inputs = self.node_map[node_name].inputs outputs = self.node_map[node_name].outputs - assert len(inputs) == 1 + # assert len(inputs) == 1 input_node = self.node_map[inputs[0]] idx = input_node.outputs.index(node_name) del input_node.outputs[idx] @@ -171,7 +176,7 @@ class TFGraph(Graph): def _remove_identity_node(self): identity_node = list() for node_name, node in self.node_map.items(): - if node.layer_type == "Identity": + if node.layer_type == "Identity" or node.layer_type == "StopGradient": identity_node.append(node_name) for node_name in identity_node: @@ -198,18 +203,29 @@ class TFGraph(Graph): class TFDecoder(object): - def __init__(self, pb_model, data_format="NHWC"): - self.sess = tf.Session() + def __init__(self, pb_model, data_format="NHWC", define_input_shape=False): + try: + self.sess = tf.compat.v1.Session() + except: + self.sess = tf.Session() self.input_info = dict() - with gfile.FastGFile(pb_model, 'rb') as f: - graph_def = tf.GraphDef() + self.define_input_shape = define_input_shape + with open(pb_model, 'rb') as f: + try: + graph_def = tf.compat.v1.GraphDef() + except: + graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) input_map = self._check_input_shape(graph_def) self._fix_output_shape(graph_def) self.sess.graph.as_default() tf.import_graph_def(graph_def, name='', input_map=input_map) - self.sess.run(tf.global_variables_initializer()) + try: + initializer = tf.compat.v1.global_variables_initializer() + except: + initializer = tf.global_variables_initializer() + self.sess.run(initializer) self.tf_graph = TFGraph( self.sess.graph._as_graph_def(add_shapes=True)[0], data_format) @@ -229,10 +245,14 @@ class TFDecoder(object): if layer.op != "Placeholder": continue graph_node = TFGraphNode(layer) - dtype = graph_node.dtype + dtype = graph_node.layer.attr['dtype'].type need_define_shape = 0 - if not graph_node.get_attr("shape"): + if self.define_input_shape: + need_define_shape = 3 + elif graph_node.layer.attr[ + 'shape'].shape.unknown_rank or not graph_node.get_attr( + "shape"): need_define_shape = 1 else: value = graph_node.layer.attr["shape"].shape @@ -241,13 +261,21 @@ class TFDecoder(object): need_define_shape = 2 if need_define_shape > 0: + shape = None + if graph_node.get_attr("shape"): + value = value = graph_node.layer.attr["shape"].shape + shape = [dim.size for dim in value.dim] if need_define_shape == 1: print("Unknown shape for input tensor[tensor name: \"{}\"]". format(layer.name)) - else: + elif need_define_shape == 2: print( "\nShape[now is {}] for input tensor[tensor name: \"{}\"] not support yet" .format(shape, layer.name)) + else: + print( + "Define shape[now is {}] for input tensor[tensor name: \"{}\']" + .format(shape, layer.name)) print( "Use your keyboard type the shape of input tensor below :)") @@ -264,12 +292,20 @@ class TFDecoder(object): for dim in shape.strip().split(',') ] assert shape.count(None) <= 1, "Only one dimension can be None" - x2paddle_input = tf.placeholder(dtype=dtype, - shape=shape, - name="x2paddle_{}".format( - layer.name)) + try: + x2paddle_input = tf.compat.v1.placeholder( + dtype=dtype, + shape=shape, + name="x2paddle_{}".format(layer.name)) + except: + x2paddle_input = tf.placeholder(dtype=dtype, + shape=shape, + name="x2paddle_{}".format( + layer.name)) + input_map["{}:0".format(layer.name)] = x2paddle_input - shape[shape.index(None)] = -1 + if shape.count(None) > 0: + shape[shape.index(None)] = -1 self.input_info["x2paddle_{}".format(layer.name)] = (shape, dtype) else: @@ -282,7 +318,6 @@ class TFDecoder(object): # trick method # should be removed after PaddlePaddle V1.6 been released def infer_tensor(self, graph_node): - print("========== Use infer_tensor for tensor: ", graph_node.layer.name) if hasattr(graph_node, "index"): tensor_name = graph_node.layer.name + ":{}".format(graph_node.index) else: @@ -298,8 +333,6 @@ class TFDecoder(object): return self.sess.run([output_tensor], feed)[0] def infer_shape_tensor(self, graph_node, out_shape=None): - print("========== Use infer_shape_tensor for tensor: ", - graph_node.layer.name) if hasattr(graph_node, "index"): tensor_name = graph_node.layer.name + ":{}".format(graph_node.index) else: @@ -341,3 +374,38 @@ class TFDecoder(object): return results[0].tolist() else: raise Exception("Couldn't infer a stable shape shape tensor value") + + def infer_tensor_shape(self, graph_node): + if hasattr(graph_node, "index"): + tensor_name = graph_node.layer.name + ":{}".format(graph_node.index) + else: + tensor_name = graph_node.layer.name + ":0" + feed = dict() + batch_size = [2, 3, 5] + shapes = list() + for b in batch_size: + for input_name, info in self.input_info.items(): + (shape, dtype) = cp.deepcopy(info) + input_tensor = self.sess.graph.get_tensor_by_name(input_name + + ":0") + if shape.count(-1) > 0: + shape[shape.index(-1)] = b + feed[input_tensor] = numpy.random.random_sample(shape) + output_tensor = self.sess.graph.get_tensor_by_name(tensor_name) + shape = self.sess.run([output_tensor], feed)[0].shape + shapes.append(numpy.array(shape)) + + compare01 = (shapes[0] == shapes[1]) + compare12 = (shapes[1] == shapes[2]) + + if compare01.all() and compare12.all(): + return shape[0].tolist() + + if (compare01 == compare12).all(): + index = numpy.argwhere(compare01 == False).flatten() + if index.shape[0] != 1: + raise Exception("There's not only one unstable dimension") + if index[0] != 0: + raise Exception("Batch size not in the first dimension") + shapes[0][0] = -1 + return shapes[0].tolist() diff --git a/x2paddle/op_mapper/caffe_custom_layer/convolutiondepthwise.py b/x2paddle/op_mapper/caffe_custom_layer/convolutiondepthwise.py index 830234fca710ae285a99e24bf58edba9b96ea6aa..7011100ba6cb701f896646a11b81e64f2c51eae4 100644 --- a/x2paddle/op_mapper/caffe_custom_layer/convolutiondepthwise.py +++ b/x2paddle/op_mapper/caffe_custom_layer/convolutiondepthwise.py @@ -19,20 +19,29 @@ def convolutiondepthwise_shape(input_shape, if isinstance(kernel_size, numbers.Number): [k_h, k_w] = [kernel_size] * 2 elif len(kernel_size) > 0: - k_h = kernel_h if kernel_h else kernel_size[0] - k_w = kernel_w if kernel_w else kernel_size[len(kernel_size) - 1] + k_h = kernel_h if kernel_h > 0 else kernel_size[0] + k_w = kernel_w if kernel_w > 0 else kernel_size[len(kernel_size) - 1] + elif kernel_h > 0 or kernel_w > 0: + k_h = kernel_h + k_w = kernel_w [s_h, s_w] = [1, 1] if isinstance(stride, numbers.Number): [s_h, s_w] = [stride] * 2 elif len(stride) > 0: - s_h = stride_h if stride_h else stride[0] - s_w = stride_w if stride_w else stride[len(stride) - 1] + s_h = stride_h if stride_h > 0 else stride[0] + s_w = stride_w if stride_w > 0 else stride[len(stride) - 1] + elif stride_h > 0 or stride_w > 0: + s_h = stride_h + s_w = stride_w [p_h, p_w] = [0, 0] if isinstance(pad, numbers.Number): [p_h, p_w] = [pad] * 2 elif len(pad) > 0: - p_h = pad_h if pad_h else pad[0] - p_w = pad_w if pad_w else pad[len(pad) - 1] + p_h = pad_h if pad_h > 0 else pad[0] + p_w = pad_w if pad_w > 0 else pad[len(pad) - 1] + elif pad_h > 0 or pad_w > 0: + p_h = pad_h + p_w = pad_w dila_len = len(dilation) dila_h = 1 dila_w = 1 @@ -74,20 +83,29 @@ def convolutiondepthwise_layer(inputs, if isinstance(kernel_size, numbers.Number): [k_h, k_w] = [kernel_size] * 2 elif len(kernel_size) > 0: - k_h = kernel_h if kernel_h else kernel_size[0] - k_w = kernel_w if kernel_w else kernel_size[len(kernel_size) - 1] + k_h = kernel_h if kernel_h > 0 else kernel_size[0] + k_w = kernel_w if kernel_w > 0 else kernel_size[len(kernel_size) - 1] + elif kernel_h > 0 or kernel_w > 0: + k_h = kernel_h + k_w = kernel_w [s_h, s_w] = [1, 1] if isinstance(stride, numbers.Number): [s_h, s_w] = [stride] * 2 elif len(stride) > 0: - s_h = stride_h if stride_h else stride[0] - s_w = stride_w if stride_w else stride[len(stride) - 1] + s_h = stride_h if stride_h > 0 else stride[0] + s_w = stride_w if stride_w > 0 else stride[len(stride) - 1] + elif stride_h > 0 or stride_w > 0: + s_h = stride_h + s_w = stride_w [p_h, p_w] = [0, 0] if isinstance(pad, numbers.Number): [p_h, p_w] = [pad] * 2 elif len(pad) > 0: - p_h = pad_h if pad_h else pad[0] - p_w = pad_w if pad_w else pad[len(pad) - 1] + p_h = pad_h if pad_h > 0 else pad[0] + p_w = pad_w if pad_w > 0 else pad[len(pad) - 1] + elif pad_h > 0 or pad_w > 0: + p_h = pad_h + p_w = pad_w input = inputs[0] dila_len = len(dilation) dila_h = 1 diff --git a/x2paddle/op_mapper/caffe_custom_layer/detectionoutput.py b/x2paddle/op_mapper/caffe_custom_layer/detectionoutput.py index b87aa937cba3f5a5eaa95d5805efcfe4c810d62e..173f5f31d5f26545a112d11b0994d73097ebb16b 100644 --- a/x2paddle/op_mapper/caffe_custom_layer/detectionoutput.py +++ b/x2paddle/op_mapper/caffe_custom_layer/detectionoutput.py @@ -14,6 +14,18 @@ def detectionoutput_layer(inputs, confidence_threshold=0.1, input_shape=None, name=None): + nms_param_str = nms_param + nms_param = {} + part = nms_param_str.split(',') + for s in part: + if s == '': + break + else: + name, obj = s.split(': ') + if name == 'top_k': + nms_param[name] = int(obj) + else: + nms_param[name] = float(obj) if nms_param is None: nms_param = {"nms_threshold": 0.3, "top_k": 10, "eta": 1.0} mbox_conf_flatten = inputs[1] @@ -24,20 +36,21 @@ def detectionoutput_layer(inputs, pb = fluid.layers.reshape(x=pb, shape=[-1, 4]) pbv = fluid.layers.reshape(x=pbv, shape=[-1, 4]) mbox_loc = inputs[0] - mbox_loc = fluid.layers.reshape(x=mbox_loc, - shape=[-1, mbox_conf_flatten.shape[1], 4]) + mbox_loc = fluid.layers.reshape(x=mbox_loc, shape=[-1, pb.shape[0], 4]) + mbox_conf_flatten = fluid.layers.reshape(x=mbox_conf_flatten, + shape=[0, pb.shape[0], -1]) default = {"nms_threshold": 0.3, "top_k": 10, "eta": 1.0} fields = ['eta', 'top_k', 'nms_threshold'] for f in default.keys(): - if not nms_param.has_key(f): + if f not in nms_param: nms_param[f] = default[f] out = fluid.layers.detection_output( scores=mbox_conf_flatten, loc=mbox_loc, prior_box=pb, prior_box_var=pbv, - background_label=background_label, + background_label=background_label_id, nms_threshold=nms_param["nms_threshold"], nms_top_k=nms_param["top_k"], keep_top_k=keep_top_k, diff --git a/x2paddle/op_mapper/caffe_custom_layer/normalize.py b/x2paddle/op_mapper/caffe_custom_layer/normalize.py index 0aa4c2f4119d501e975f90fd7523cb5120a24616..577a674f7e70aebee78735611c11e7202b2ccf7e 100644 --- a/x2paddle/op_mapper/caffe_custom_layer/normalize.py +++ b/x2paddle/op_mapper/caffe_custom_layer/normalize.py @@ -18,6 +18,8 @@ def normalize_layer(inputs, shape=[1] if channel_shared else [input_shape[0][1]], dtype=input.dtype, attr=name + '_scale') + scale_param = fluid.layers.reshape(x=scale_param, \ + shape=[1] if channel_shared else [input_shape[0][1]]) out = fluid.layers.elementwise_mul(x=l2_norm, y=scale_param, axis=-1 if channel_shared else 1) diff --git a/x2paddle/op_mapper/caffe_custom_layer/priorbox.py b/x2paddle/op_mapper/caffe_custom_layer/priorbox.py index 9c1cb67ead9cf338fab2ffec548672ee26574dc3..829c3e365fefbfc81b9e4efb382726f1d473ecab 100644 --- a/x2paddle/op_mapper/caffe_custom_layer/priorbox.py +++ b/x2paddle/op_mapper/caffe_custom_layer/priorbox.py @@ -3,7 +3,7 @@ from x2paddle.core.util import * def priorbox_shape(input_shape, max_size=None, aspect_ratio=None): - fc_shape = input_shapes[0] + fc_shape = input_shape[0] N = 1 if not max_size == None: N += 1 @@ -18,26 +18,27 @@ def priorbox_layer(inputs, step=0.0, offset=0.5, min_size=None, - max_size=None, + max_size=[], aspect_ratio=[1.0], flip=False, clip=False, variance=[0.1, 0.1, 0.2, 0.2], input_shape=None, name=None): - input = input_shape[0] - image = input_shape[1] + input = inputs[0] + image = inputs[1] steps = tuple(step) if type(step) is list or type(step) is tuple else (step, step) + box, variance_ = fluid.layers.prior_box(input, image, - min_sizes=list(min_size), - max_sizes=list(max_size), - aspect_ratios=list(aspect_ratio), - variance=list(variance), + min_sizes=min_size, + max_sizes=max_size, + aspect_ratios=aspect_ratio, + variance=variance, flip=flip, clip=clip, - steps=step, + steps=steps, offset=offset, name=name, min_max_aspect_ratios_order=True) diff --git a/x2paddle/op_mapper/caffe_custom_layer/shufflechannel.py b/x2paddle/op_mapper/caffe_custom_layer/shufflechannel.py index c6321f2d415d16a56eecdfe9e2287616a3fb7f9e..bc56c2239fee4f6c368921bc1297c1a2eb1c07f6 100644 --- a/x2paddle/op_mapper/caffe_custom_layer/shufflechannel.py +++ b/x2paddle/op_mapper/caffe_custom_layer/shufflechannel.py @@ -9,12 +9,12 @@ def shufflechannel_shape(input_shape): def shufflechannel_layer(inputs, group=None, input_shape=None, name=None): input = inputs[0] c_fm = fluid.layers.split(input, num_or_sections=input_shape[0][1], dim=1) - size = int(input_shape[0][1]/group) + size = int(input_shape[0][1] / group) new_c_fm = [] for i in range(size): for j in range(group): new_c_fm.append(c_fm[j * size + i]) - out = fluid.layers.concat(new_c_fm, axis = 1) + out = fluid.layers.concat(new_c_fm, axis=1) return out diff --git a/x2paddle/op_mapper/caffe_op_mapper.py b/x2paddle/op_mapper/caffe_op_mapper.py index 6121edf9df7065a2d910d6bfd2e7aeb1b222c3fc..087c55a6d9a26cfa0d6f72e045edde3f81ee9d6b 100644 --- a/x2paddle/op_mapper/caffe_op_mapper.py +++ b/x2paddle/op_mapper/caffe_op_mapper.py @@ -17,10 +17,18 @@ import numpy as np from x2paddle.decoder.caffe_decoder import CaffeGraph from x2paddle.core.op_mapper import OpMapper from x2paddle.core.util import * +from x2paddle.op_mapper import caffe_shape from x2paddle.op_mapper.caffe_custom_layer import * class CaffeOpMapper(OpMapper): + directly_map_ops = { + 'ReLU': 'relu', + 'AbsVal': 'abs', + 'Sigmoid': 'sigmoid', + 'TanH': 'tanh', + } + def __init__(self, decoder): super(CaffeOpMapper, self).__init__() self.graph = decoder.caffe_graph @@ -31,16 +39,22 @@ class CaffeOpMapper(OpMapper): print("Total nodes: {}".format(len(self.graph.topo_sort))) for node_name in self.graph.topo_sort: node = self.graph.get_node(node_name) + if node.layer_type == 'DepthwiseConvolution': + node.layer_type = 'ConvolutionDepthwise' op = node.layer_type if hasattr(self, op): - self.set_shape(node) + self.set_node_shape(node) func = getattr(self, op) func(node) elif op in custom_layers: - self.set_shape(node, is_fluid_op=False) + self.set_node_shape(node, is_fluid_op=False) self.deal_custom_layer(node) + elif op in self.directly_map_ops: + self.set_node_shape(node) + self.directly_map(node) else: - raise Exception("Model are not supported yet.") + raise Exception( + "The op {} in model is not supported yet.".format(op)) def op_checker(self): unsupported_ops = set() @@ -58,7 +72,7 @@ class CaffeOpMapper(OpMapper): print(op) return False - def set_shape(self, node, is_fluid_op=True): + def set_node_shape(self, node, is_fluid_op=True): inputs = node.inputs input_shape = [] for i, nm in enumerate(inputs): @@ -66,12 +80,15 @@ class CaffeOpMapper(OpMapper): tmp = node.layer.bottom[i] idx = list(last_node.layer.top).index(tmp) input_shape.append(last_node.output_shape[idx]) - node.set_input_shape(input_shape) + + node.input_shape = input_shape + + func_name = 'shape_' + node.layer_type.lower() if is_fluid_op: - node.set_output_shape(input_shape) + node.output_shape = getattr(caffe_shape, func_name)(node.layer, + input_shape) else: - node.set_output_shape(compute_output_shape(node), - is_input=is_fluid_op) + node.output_shape = compute_output_shape(node) def adjust_parameters(self, node): data = node.data @@ -87,8 +104,6 @@ class CaffeOpMapper(OpMapper): squeeze_indices.append(0) # Squeeze FC. for idx in squeeze_indices: - print('Transform the weights of {}...'.format(node.layer_name + - str(idx))) if idx >= len(data): continue @@ -120,27 +135,36 @@ class CaffeOpMapper(OpMapper): if isinstance(params.kernel_size, numbers.Number): [k_h, k_w] = [params.kernel_size] * 2 elif len(params.kernel_size) > 0: - k_h = params.kernel_h if params.kernel_h else params.kernel_size[0] - k_w = params.kernel_w if params.kernel_w else params.kernel_size[ + k_h = params.kernel_h if params.kernel_h > 0 else params.kernel_size[0] + k_w = params.kernel_w if params.kernel_w > 0 else params.kernel_size[ len(params.kernel_size) - 1] + elif params.kernel_h > 0 or params.kernel_w > 0: + k_h = params.kernel_h + k_w = params.kernel_w [s_h, s_w] = [1, 1] if isinstance(params.stride, numbers.Number): [s_h, s_w] = [params.stride] * 2 elif len(params.stride) > 0: - s_h = params.stride_h if params.stride_h else params.stride[0] - s_w = params.stride_w if params.stride_w else params.stride[ + s_h = params.stride_h if params.stride_h > 0 else params.stride[0] + s_w = params.stride_w if params.stride_w > 0 else params.stride[ len(params.stride) - 1] + elif params.stride_h > 0 or params.stride_w > 0: + s_h = params.stride_h + s_w = params.stride_w [p_h, p_w] = [0, 0] if isinstance(params.pad, numbers.Number): [p_h, p_w] = [params.pad] * 2 elif len(params.pad) > 0: - p_h = params.pad_h if params.pad_h else params.pad[0] - p_w = params.pad_w if params.pad_w else params.pad[len(params.pad) - - 1] + p_h = params.pad_h if params.pad_h > 0 else params.pad[0] + p_w = params.pad_w if params.pad_w > 0 else params.pad[len(params.pad) - + 1] + elif params.pad_h > 0 or params.pad_w > 0: + p_h = params.pad_h + p_w = params.pad_w dila_h = dila_w = 1 group = 1 c_o = 1 - if kind in ['Convolution', 'Deconvolution', 'ConvolutionDepthwise']: + if kind in ['Convolution', 'Deconvolution']: c_o = params.num_output dila_len = len(params.dilation) if dila_len == 2: @@ -165,12 +189,6 @@ class CaffeOpMapper(OpMapper): else: return node.layer_name - def is_BN(self, node): - return True if node.layer_type == 'BatchNorm' else False - - def is_Scale(self, node): - return True if node.layer_type == 'Scale' else False - def Input(self, node): shape = list(node.layer.input_param.shape[0].dim)[1:] dtype = 'float32' @@ -184,24 +202,43 @@ class CaffeOpMapper(OpMapper): output=node, param_attr=attr) + def MemoryData(self, node): + # TODO(syf): Paddlepaddle can't fully support + shape = node.output_shape[0][1:] + dtype = 'float32' + attr = { + 'dtype': string(dtype), + 'shape': shape, + 'name': string(node.layer_name) + } + node.fluid_code.add_layer("data", + inputs=None, + output=node.layer_name + '0', + param_attr=attr) + node.fluid_code.add_note('{} = [{}]'.format(node.layer_name, + node.layer_name + '0')) + def Convolution(self, node): data = node.data - assert data is not None, 'The parameter of {} (type is {}) is not set. You need to use python package of caffe to set the default value.'.format( - node.layer_name, node.layer_type) - data = self.adjust_parameters(node) - self.weights[node.layer_name + '_weights'] = data[0] - if len(data) == 2: - self.weights[node.layer_name + '_bias'] = data[1] params = node.layer.convolution_param channel, kernel, stride, pad, dilation, group = self.get_kernel_parameters( node.layer_type, params) + if data is None: + data = [] + print('The parameter of {} (type is {}) is not set. So we set the parameters as 0'.format( + node.layer_name, node.layer_type)) + input_c = node.input_shape[0][1] + output_c = channel + data.append(np.zeros([output_c, input_c, kernel[0], kernel[1]]).astype('float32')) + data.append(np.zeros([output_c,])).astype('float32') + else: + data = self.adjust_parameters(node) + self.weights[node.layer_name + '_weights'] = data[0] + if len(data) == 2: + self.weights[node.layer_name + '_bias'] = data[1] assert len(node.inputs ) == 1, 'The count of Convolution node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp attr = { 'filter_size': @@ -230,22 +267,25 @@ class CaffeOpMapper(OpMapper): def Deconvolution(self, node): data = node.data - assert data is not None, 'The parameter of {} (type is {}) is not set. You need to use python package of caffe to set the default value.'.format( - node.layer_name, node.layer_type) - data = self.adjust_parameters(node) - self.weights[node.layer_name + '_weights'] = data[0] - if len(data) == 2: - self.weights[node.layer_name + '_bias'] = data[1] params = node.layer.convolution_param channel, kernel, stride, pad, dilation, group = self.get_kernel_parameters( node.layer_type, params) + if data is None: + data = [] + print('The parameter of {} (type is {}) is not set. So we set the parameters as 0'.format( + node.layer_name, node.layer_type)) + input_c = node.input_shape[0][1] + output_c = channel + data.append(np.zeros([output_c, input_c, kernel[0], kernel[1]]).astype('float32')) + data.append(np.zeros([output_c,]).astype('float32')) + else: + data = self.adjust_parameters(node) + self.weights[node.layer_name + '_weights'] = data[0] + if len(data) == 2: + self.weights[node.layer_name + '_bias'] = data[1] assert len(node.inputs ) == 1, 'The count of Deconvolution node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp attr = { 'output_size': None, @@ -287,17 +327,13 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 1, 'The count of Pooling node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp attr = { 'pool_size': kernel, 'pool_stride': stride, 'pool_padding': pad, 'ceil_mode': ceil_mode, 'pool_type': string(pool_type), - 'exclusive': True, + 'exclusive': False, 'global_pooling': global_pool, 'name': string(node.layer_name) } @@ -306,20 +342,6 @@ class CaffeOpMapper(OpMapper): output=node, param_attr=attr) - def ReLU(self, node): - assert len( - node.inputs) == 1, 'The count of ReLU node\'s input is not 1.' - input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp - attr = {'name': string(node.layer_name)} - node.fluid_code.add_layer("relu", - inputs=input, - output=node, - param_attr=attr) - def LRN(self, node): assert len(node.inputs) == 1, 'The count of LRN node\'s input is not 1.' params = node.layer.lrn_param @@ -331,10 +353,6 @@ class CaffeOpMapper(OpMapper): # We'll account for that here. alpha = params.alpha / float(params.local_size) input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp attr = { 'n': params.local_size, 'k': 1.0, @@ -349,31 +367,35 @@ class CaffeOpMapper(OpMapper): def InnerProduct(self, node): data = node.data - assert data is not None, 'The parameter of {} (type is {}) is not set. You need to use python package of caffe to set the default value.'.format( - node.layer_name, node.layer_type) - data = self.adjust_parameters(node) - # Reshape the parameters to Paddle's ordering - transpose_order = (1, 0) - w = data[0] - fc_shape = w.shape - output_channels = fc_shape[0] - w = w.reshape((output_channels, -1)) - w = w.transpose(transpose_order) - data[0] = w + params = node.layer.inner_product_param + if data is None: + print('The parameter of {} (type is {}) is not set. So we set the parameters as 0.'.format( + node.layer_name, node.layer_type)) + input_c = node.input_shape[0][1] + output_c = params.num_output + data = [] + data.append(np.zeros([input_c, output_c]).astype('float32').astype('float32')) + data.append(np.zeros([output_c]).astype('float32').astype('float32')) + else: + data = self.adjust_parameters(node) + # Reshape the parameters to Paddle's ordering + transpose_order = (1, 0) + w = data[0] + fc_shape = w.shape + output_channels = fc_shape[0] + w = w.reshape((output_channels, -1)) + w = w.transpose(transpose_order) + data[0] = w self.weights[node.layer_name + '_weights'] = data[0] if len(data) == 2: self.weights[node.layer_name + '_bias'] = data[1] assert len(node.inputs ) == 1, 'The count of InnerProduct node\'s input is not 1.' - params = node.layer.inner_product_param + #params = node.layer.inner_product_param assert params.axis == 1 assert params.bias_term == True input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp attr = { 'size': params.num_output, @@ -395,10 +417,6 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 1, 'The count of Softmax node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp params = node.layer.softmax_param axis = params.axis shape = node.input_shape[0] @@ -414,13 +432,22 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 1, 'The count of Slice node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp + top_len = len(node.layer.top) params = node.layer.slice_param axis = params.axis + slice_dim = params.slice_dim + if slice_dim != 1 and axis == 1: + axis = slice_dim points = list(params.slice_point) + + if len(points) == 0: + dims = node.input_shape[0][axis] + assert dims % top_len == 0, "the parameter of Slice is wrong" + part = dims / top_len + t = part + while t < dims: + points.append(int(t)) + t += part maxint32 = 2147483647 points = [0] + points points.append(maxint32) @@ -440,7 +467,7 @@ class CaffeOpMapper(OpMapper): node.layer_name, node.layer_name + '_' + str(i))) if i == len(points) - 2: break - + def Concat(self, node): assert len( node.inputs @@ -448,10 +475,6 @@ class CaffeOpMapper(OpMapper): inputs = [] for i in range(len(node.inputs)): input = self.graph.get_bottom_node(node, idx=i, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp inputs.append(input) params = node.layer.concat_param axis = params.axis @@ -465,10 +488,6 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 1, 'The count of PReLU node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp params = node.layer.prelu_param mode_bool = params.channel_shared if mode_bool: @@ -489,34 +508,6 @@ class CaffeOpMapper(OpMapper): output=node, param_attr=attr) - def Sigmoid(self, node): - assert len( - node.inputs) == 1, 'The count of PReLU node\'s input is not 1.' - input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp - attr = {'name': string(node.layer_name)} - node.fluid_code.add_layer("sigmoid", - inputs=input, - output=node, - param_attr=attr) - - def AbsVal(self, node): - assert len( - node.inputs) == 1, 'The count of PReLU node\'s input is not 1.' - input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp - attr = {'name': string(node.layer_name)} - node.fluid_code.add_layer("absval", - inputs=input, - output=node, - param_attr=attr) - def Accuracy(self, node): assert len( node.inputs) == 2, 'The count of Accuracy node\'s input is not 2.' @@ -527,24 +518,15 @@ class CaffeOpMapper(OpMapper): for shape in node.input_shape: if shape[1] == 1: input = self.graph.get_bottom_node(node, idx=i, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp inputs[1] = input else: input = self.graph.get_bottom_node(node, idx=i, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp inputs[0] = input i += 1 params = node.layer.accuracy_param top_k = params.top_k axis = params.axis ignore_label = params.ignore_label - # TODO(syf) assert axis == 1, 'PaddlePaddle can not support the situation when the axis is not 1.' assert not ignore_label >= 0, 'PaddlePaddle can not support the situation when the model has ignore label.' attr = {'k': top_k} @@ -553,20 +535,6 @@ class CaffeOpMapper(OpMapper): output=node, param_attr=attr) - def TanH(self, node): - assert len( - node.inputs) == 1, 'The count of TanH node\'s input is not 1.' - input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp - attr = {'name': string(node.layer_name)} - node.fluid_code.add_layer("tanh", - inputs=input, - output=node, - param_attr=attr) - def Eltwise(self, node): assert len( node.inputs) == 2, 'The count of TanH node\'s input is not 2.' @@ -574,16 +542,8 @@ class CaffeOpMapper(OpMapper): mode = params.operation inputs = [] input0 = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input0): - tmp = self.graph.get_bottom_node(input0, idx=0, copy=True) - if self.is_BN(tmp): - input0 = tmp inputs.append(input0) input1 = self.graph.get_bottom_node(node, idx=1, copy=True) - if self.is_Scale(input1): - tmp = self.graph.get_bottom_node(input1, idx=0, copy=True) - if self.is_BN(tmp): - input1 = tmp inputs.append(input1) if mode == 0: inputs_dict = {} @@ -656,155 +616,125 @@ class CaffeOpMapper(OpMapper): param_attr=attr) def BatchNorm(self, node): - assert len(node.inputs) == 1 and len( - node.outputs - ) == 1, 'The count of BatchNorm node\'s input and output is not 1.' + assert len(node.inputs) == 1, 'The count of BatchNorm node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp params = node.layer.batch_norm_param if hasattr(params, 'eps'): eps = params.eps else: eps = 1e-5 - assert len(node.data) == 3 - node.data = [np.squeeze(i) for i in node.data] - mean, variance, scale = node.data + if node.data is None or len(node.data) != 3: + print('The parameter of {} (type is {}) is not set. So we set the parameters as 0'.format( + node.layer_name, node.layer_type)) + input_c = node.input_shape[0][1] + mean = np.zeros([input_c,]).astype('float32') + variance = np.zeros([input_c,]).astype('float32') + scale = 0 + else: + node.data = [np.squeeze(i) for i in node.data] + mean, variance, scale = node.data # Prescale the stats scaling_factor = 1.0 / scale if scale != 0 else 0 mean *= scaling_factor variance *= scaling_factor self.weights[node.layer_name + '_mean'] = mean self.weights[node.layer_name + '_variance'] = variance - if self.graph.get_node(node.outputs[0]).layer_type == 'Scale': - data = self.graph.get_node(node.outputs[0]).data - self.weights[node.layer_name + '_scale'] = np.squeeze(data[0]) - self.weights[node.layer_name + '_offset'] = np.squeeze(data[1]) - attr = { - 'is_test': True, - 'param_attr': string(node.layer_name + '_scale'), - 'bias_attr': string(node.layer_name + '_offset'), - 'moving_mean_name': string(node.layer_name + '_mean'), - 'moving_variance_name': string(node.layer_name + '_variance'), - 'epsilon': eps, - 'name': string(node.layer_name) - } - else: - attr = { - 'is_test': True, - 'param_attr': None, - 'bias_attr': None, - 'moving_mean_name': string(node.layer_name + '_mean'), - 'moving_variance_name': string(node.layer_name + '_variance'), - 'epsilon': eps, - 'name': string(node.layer_name) - } + attr = { + 'is_test': True, + 'param_attr': None, + 'bias_attr': None, + 'moving_mean_name': string(node.layer_name + '_mean'), + 'moving_variance_name': string(node.layer_name + '_variance'), + 'epsilon': eps, + 'name': string(node.layer_name) + } node.fluid_code.add_layer("batch_norm", inputs=input, output=node, param_attr=attr) def Scale(self, node): - assert len( - node.inputs) == 1, 'The count of Scale node\'s input is not 1.' - if len(node.inputs) == 1 and self.graph.get_node( - node.inputs[0]).layer_type == 'BatchNorm': - return + if node.data is None: + print('The parameter of {} (type is {}) is not set. So we set the parameters as 0'.format( + node.layer_name, node.layer_type)) + input_c = node.input_shape[0][1] + self.weights[node.layer_name + '_scale'] = np.zeros([input_c,]).astype('float32') + self.weights[node.layer_name + '_offset'] = np.zeros([input_c,]).astype('float32') else: - self.weights[node.layer_name + '_scale'] = np.squeeze(nose.data[0]) + self.weights[node.layer_name + '_scale'] = np.squeeze(node.data[0]) self.weights[node.layer_name + '_offset'] = np.squeeze(node.data[1]) - params = node.layer.scale_param - axis = params.axis - num_axes = params.num_axes - assert num_axes == 1, "layer scale not support this num_axes[%d] now" % ( - num_axes) - inputs = [] - if len(node.inputs) == 2: - # for two tensor, here resets axis to 1. Maybe there is a bug for unkown case. - axis = 1 - bias_shape = node.input_shape[0][axis:axis + num_axes] - input0 = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input0): - tmp = self.graph.get_bottom_node(input0, idx=0, copy=True) - if self.is_BN(tmp): - input0 = tmp - input1 = self.graph.get_bottom_node(node, idx=1, copy=True) - if self.is_Scale(input1): - tmp = self.graph.get_bottom_node(input1, idx=0, copy=True) - if self.is_BN(tmp): - input1 = tmp - inputs.append(input0) - inputs.append(input1) - attr = {'axis': axis, 'name': string(node.layer_name + '_mul')} - node.fluid_code.add_layer("elementwise_mul", - inputs=inputs, - output=node.layer_name + '_mul', - param_attr=attr) - else: - bias_shape = node.input_shape[0][axis:axis + num_axes] - input0 = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input0): - tmp = self.graph.get_bottom_node(input0, idx=0, copy=True) - if self.is_BN(tmp): - input0 = tmp - input0_name = self.get_input_name(input0) - attr = { - 'dtype': '{}.dtype'.formatr(input0_name), - 'shape': bias_shape, - 'name': string(node.layer_name + '_cparam1'), - 'attr': string(node.layer_name + '_scale'), - 'is_bias': True, - 'default_initializer': 'Constant(value=1.0)' - } - node.fluid_code.add_layer("create_parameter", - inputs=None, - output=node, - param_attr=attr) - inputs.append(input0) - inputs.append(node) - attr = {'axis': axis, 'name': string(node.layer_name + '_mul')} - node.fluid_code.add_layer("elementwise_mul", - inputs=inputs, - output=node.layer_name + '_mul', - param_attr=attr) - scale_shape = bias_shape + params = node.layer.scale_param + axis = params.axis + num_axes = params.num_axes + inputs = [] + if len(node.inputs) == 2: + # for two tensor, here resets axis to 1. Maybe there is a bug for unkown case. + axis = 1 + bias_shape = node.input_shape[0][axis:axis + num_axes] + input0 = self.graph.get_bottom_node(node, idx=0, copy=True) + input1 = self.graph.get_bottom_node(node, idx=1, copy=True) + inputs_dict = {} + inputs_dict['x'] = input0 + inputs_dict['y'] = input1 + attr = {'axis': axis, 'name': string(node.layer_name + '_mul')} + node.fluid_code.add_layer("elementwise_mul", + inputs=inputs_dict, + output=node.layer_name + '_mul', + param_attr=attr) + else: + bias_shape = node.input_shape[0][axis:axis + num_axes] + input0 = self.graph.get_bottom_node(node, idx=0, copy=True) input0_name = self.get_input_name(input0) attr = { - 'dtype': '{}.dtype'.formatr(input0_name), - 'shape': scale_shape, - 'name': string(node.layer_name + '_cparam2'), - 'attr': string(node.layer_name + '_offset'), + 'dtype': '{}.dtype'.format(input0_name), + 'shape': bias_shape, + 'name': string(node.layer_name + '_cparam1'), + 'attr': string(node.layer_name + '_scale'), 'is_bias': True, 'default_initializer': 'Constant(value=1.0)' } node.fluid_code.add_layer("create_parameter", inputs=None, - output=node.layer_name + '_offset_param', - param_attr=attr) - attr = {'axis': axis, 'name': string(node.layer_name + '_add')} - node.fluid_code.add_layer("elementwise_add", - inputs='{}_mul, {}_offset_param'.format( - node.layer_name, node.layer_name), output=node, param_attr=attr) + inputs_dict = {} + inputs_dict['x'] = input0 + inputs_dict['y'] = node + attr = {'axis': axis, 'name': string(node.layer_name + '_mul')} + node.fluid_code.add_layer("elementwise_mul", + inputs=inputs_dict, + output=node.layer_name + '_mul', + param_attr=attr) + scale_shape = bias_shape + input0_name = self.get_input_name(input0) + attr = { + 'dtype': '{}.dtype'.format(input0_name), + 'shape': scale_shape, + 'name': string(node.layer_name + '_cparam2'), + 'attr': string(node.layer_name + '_offset'), + 'is_bias': True, + 'default_initializer': 'Constant(value=1.0)' + } + node.fluid_code.add_layer("create_parameter", + inputs=None, + output=node.layer_name + '_offset_param', + param_attr=attr) + attr = {'axis': axis, 'name': string(node.layer_name + '_add')} + node.fluid_code.add_layer("elementwise_add", + inputs='{}_mul, {}_offset_param'.format( + node.layer_name, node.layer_name), + output=node, + param_attr=attr) def Reshape(self, node): - assert len(node.inputs) == 1 and len( - node.outputs - ) == 1, 'The count of Reshape node\'s input and output is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) top_count = len(input.layer.top) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp - is_inplace, = False if top_count == 1 else True + is_inplace = False if top_count == 1 else True output_shape = node.output_shape[0] attr = { 'shape': output_shape, 'inplace': is_inplace, + 'act': None, 'name': string(node.layer_name) } node.fluid_code.add_layer("reshape", @@ -817,10 +747,6 @@ class CaffeOpMapper(OpMapper): node.outputs ) == 1, 'The count of ArgMax node\'s input and output is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp input_shape = node.input_shape[0] params = node.layer.argmax_param out_max_val = params.out_max_val if hasattr(params, @@ -859,15 +785,7 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 2, 'The count of Crop node\'s input is not 2.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp example = self.graph.get_bottom_node(node, idx=1, copy=True) - if self.is_Scale(example): - tmp = self.graph.get_bottom_node(example, idx=0, copy=True) - if self.is_BN(tmp): - example = tmp params = node.layer.crop_param axis = parmas.axis input_shape = node.input_shape[0] @@ -893,10 +811,6 @@ class CaffeOpMapper(OpMapper): node.inputs ) == 1, 'The count of DetectionOutput node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp shape = node.output_shape[0] attr = {'shape': shape, 'name': string(node.layer_name)} node.fluid_code.add_layer("reshape", @@ -908,10 +822,6 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 1, 'The count of Permute node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp params = node.layer.power_param power = params.power scale = params.scale @@ -936,10 +846,6 @@ class CaffeOpMapper(OpMapper): assert len( node.inputs) == 1, 'The count of Reduction node\'s input is not 1.' input = self.graph.get_bottom_node(node, idx=0, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp params = node.layer.reduction_param operation = params.operation axis = params.axis @@ -1022,10 +928,6 @@ class CaffeOpMapper(OpMapper): inputs_node = [] for i in range(len(node.inputs)): input = self.graph.get_bottom_node(node, idx=i, copy=True) - if self.is_Scale(input): - tmp = self.graph.get_bottom_node(input, idx=0, copy=True) - if self.is_BN(tmp): - input = tmp inputs_node.append(input) node.fluid_code.add_layer(func.__code__.co_name, inputs=inputs_node, @@ -1034,3 +936,13 @@ class CaffeOpMapper(OpMapper): is_custom_layer=True) if op not in self.used_custom_layers: self.used_custom_layers[op] = custom_code + + def directly_map(self, node): + assert node.layer_type in self.directly_map_ops + op_info = self.directly_map_ops[node.layer_type] + input = self.graph.get_bottom_node(node, idx=0, copy=True) + attr = {'name': string(node.layer_name)} + node.fluid_code.add_layer(op_info, + inputs=input, + output=node, + param_attr=attr) diff --git a/x2paddle/op_mapper/caffe_shape.py b/x2paddle/op_mapper/caffe_shape.py index 9fd89fe7ad95a49f588888e448d45a74f18d6fc2..445945cfe0e21ee4047b43e15d58b450aa673b31 100644 --- a/x2paddle/op_mapper/caffe_shape.py +++ b/x2paddle/op_mapper/caffe_shape.py @@ -13,104 +13,67 @@ # limitations under the License. import math - - -def get_params_w_h(params): +import numbers +from functools import reduce + + +def get_kernel_parameters(params): + [k_h, k_w] = [1, 1] + if isinstance(params.kernel_size, numbers.Number): + [k_h, k_w] = [params.kernel_size] * 2 + elif len(params.kernel_size) > 0: + k_h = params.kernel_h if params.kernel_h > 0 else params.kernel_size[0] + k_w = params.kernel_w if params.kernel_w > 0 else params.kernel_size[ + len(params.kernel_size) - 1] + elif params.kernel_h > 0 or params.kernel_w > 0: + k_h = params.kernel_h + k_w = params.kernel_w + [s_h, s_w] = [1, 1] + if isinstance(params.stride, numbers.Number): + [s_h, s_w] = [params.stride] * 2 + elif len(params.stride) > 0: + s_h = params.stride_h if params.stride_h > 0 else params.stride[0] + s_w = params.stride_w if params.stride_w > 0 else params.stride[ + len(params.stride) - 1] + elif params.stride_h > 0 or params.stride_w > 0: + s_h = params.stride_h + s_w = params.stride_w + [p_h, p_w] = [0, 0] + if isinstance(params.pad, numbers.Number): + [p_h, p_w] = [params.pad] * 2 + elif len(params.pad) > 0: + p_h = params.pad_h if params.pad_h > 0 else params.pad[0] + p_w = params.pad_w if params.pad_w > 0 else params.pad[len(params.pad) - 1] + elif params.pad_h > 0 or params.pad_w > 0: + p_h = params.pad_h + p_w = params.pad_w + dila_h = dila_w = 1 if hasattr(params, 'dilation'): - if len(params.dilation) == 0: - dila_h = 1 - dila_w = 1 - elif len(params.dilation) == 1: - dila_h = params.dilation[0] - dila_w = params.dilation[0] - else: + dila_len = len(params.dilation) + if dila_len == 2: dila_h = params.dilation[0] dila_w = params.dilation[1] - else: - dila_h = 1 - dila_w = 1 - - if not isinstance(getattr(params, 'pad'), int): - if len(params.pad) == 0: - pad_h = 0 - pad_w = 0 - elif len(params.pad) == 1: - pad_h = params.pad[0] - pad_w = params.pad[0] - else: - pad_h, pad_w, = params.pad[0] - pad_w = params.pad[1] - if params.pad_h != 0 or params.pad_w != 0: - pad_h = params.pad_h - pad_w = params.pad_w - else: - if params.pad_h != 0 or params.pad_w != 0: - pad_h = params.pad_h - pad_w = params.pad_w - else: - pad_h = getattr(params, 'pad') - pad_w = getattr(params, 'pad') - - if not isinstance(getattr(params, 'kernel_size'), int): - if len(params.kernel_size) == 0: - kernel_h = 1 - kernel_w = 1 - elif len(params.kernel_size) == 1: - kernel_h = params.kernel_size[0] - kernel_w = params.kernel_size[0] + elif dila_len == 1: + dila_h = dila_w = params.dilation[0] else: - kernel_h = params.kernel_size[0] - kernel_w = params.kernel_size[1] - if params.kernel_h != 0 or params.kernel_w != 0: - kernel_h = params.kernel_h - kernel_w = params.kernel_w - else: - if params.kernel_h != 0 or params.kernel_w != 0: - kernel_h = params.kernel_h - kernel_w = params.kernel_w - else: - kernel_h = getattr(params, 'kernel_size') - kernel_w = getattr(params, 'kernel_size') - if not isinstance(getattr(params, 'stride'), int): - if len(params.stride) == 0: - stride_h = 1 - stride_w = 1 - elif len(params.stride) == 1: - stride_h = params.stride[0] - stride_w = params.stride[0] - else: - stride_h = params.stride[0] - stride_w = params.stride[1] - if params.stride_h != 0 or params.stride_w != 0: - stride_h = params.stride_h - stride_w = params.stride_w - else: - if params.stride_h != 0 or params.stride_w != 0: - stride_h = params.stride_h - stride_w = params.stride_w - else: - stride_h = getattr(params, 'stride') - stride_w = getattr(params, 'stride') - return dila_h, dila_w, pad_h, pad_w, kernel_h, kernel_w, stride_h, stride_w + assert dila_len == 0, "invalid length[%s] of dilation in convolution" % ( + dila_len) + return dila_h, dila_w, p_h, p_w, k_h, k_w, s_h, s_w -def get_filter_output_shape(i_h, i_w, params, round_func): - dila_h, dila_w, pad_h, pad_w, kernel_h, kernel_w, stride_h, stride_w = get_params_w_h( +def get_strided_kernel_output_shape(params, input_shape, round_func): + i_h = input_shape[2] + i_w = input_shape[3] + dila_h, dila_w, pad_h, pad_w, kernel_h, kernel_w, stride_h, stride_w = get_kernel_parameters( params) o_h = (i_h + 2 * pad_h - (dila_h * (kernel_h - 1) + 1)) / float(stride_h) + 1 o_w = (i_w + 2 * pad_w - (dila_w * (kernel_w - 1) + 1)) / float(stride_w) + 1 - return (int(round_func(o_h)), int(round_func(o_w))) - - -def get_strided_kernel_output_shape(params, input_shape, round_func): - - o_h, o_w = get_filter_output_shape(input_shape[2], input_shape[3], params, - round_func) + o_h = int(round_func(o_h)) + o_w = int(round_func(o_w)) has_c_o = hasattr(params, 'num_output') c = params.num_output if has_c_o else input_shape[1] - return [[input_shape[0], c, o_h, o_w]] @@ -120,11 +83,12 @@ def shape_convolution(layer, input_shape): def shape_deconvolution(layer, input_shape): - h_i = input_shape[2] - w_i = input_shape[3] + + h_i = input_shape[0][2] + w_i = input_shape[0][3] params = layer.convolution_param - dila_h, dila_w, pad_h, pad_w, kernel_h, kernel_w, stride_h, stride_w = get_params_w_h( + dila_h, dila_w, pad_h, pad_w, kernel_h, kernel_w, stride_h, stride_w = get_kernel_parameters( params) h_o = (h_i - 1) * stride_h - 2 * pad_h + dila_h * (kernel_h - 1) + 1 @@ -170,13 +134,25 @@ def shape_input(layer, input_shape): return [list(layer.input_param.shape[0].dim)] +def shape_memorydata(layer, input_shape): + params = layer.memory_data_param + shape = [] + shape.append(int(params.batch_size)) + shape.append(int(params.channels)) + shape.append(int(params.height)) + shape.append(int(params.width)) + return [shape] + + def shape_concat(layer, input_shape): params = layer.concat_param axis = params.axis output_shape = None for shape in input_shape: if output_shape is None: - output_shape = shape + output_shape = [] + for i in range(len(shape)): + output_shape.append(shape[i]) else: output_shape[axis] += shape[axis] return [output_shape] @@ -184,14 +160,28 @@ def shape_concat(layer, input_shape): def shape_slice(layer, input_shape): inshape = input_shape[0] + + top_len = len(layer.top) params = layer.slice_param axis = params.axis - count = inshape[axis] + slice_dim = params.slice_dim + if slice_dim != 1 and axis == 1: + axis = slice_dim points = list(params.slice_point) + count = inshape[axis] + if len(points) == 0: + assert count % top_len == 0, "the parameter of Slice is wrong" + part = count / top_len + t = part + while t < count: + points.append(int(t)) + t += part points = [0] + points + [count] output_shape = [] for i in range(len(points)): - shape = inshape + shape = [] + for ii in range(len(inshape)): + shape.append(inshape[ii]) size = points[i + 1] - points[i] shape[axis] = size output_shape.append(shape) @@ -238,8 +228,8 @@ def shape_reshape(layer, input_shape): inshape = input_shape[0] params = layer.reshape_param - axis = params.axis if hasattr(params, axis) else 0 - num_axes = params.num_axes if hasattr(params, num_axes) else -1 + axis = params.axis if hasattr(params, 'axis') else 0 + num_axes = params.num_axes if hasattr(params, 'num_axes') else -1 if inshape[0] == -1: inshape[0] = 1 input_count = count(inshape) @@ -262,14 +252,14 @@ def shape_reshape(layer, input_shape): num_axes_replaced = end_axis - start_axis num_axes_retained = input_num_axes - num_axes_replaced - num_new_axes = len(shape['dim']) + num_new_axes = len(list(params.shape.dim)) outshape = [] for i in range(start_axis): outshape.append(inshape[i]) for i in range(num_new_axes): - outshape.append(shape['dim'][i]) + outshape.append(params.shape.dim[i]) for i in range(end_axis, input_num_axes): outshape.append(inshape[i]) @@ -281,7 +271,7 @@ def shape_reshape(layer, input_shape): copy_axes = [] constant_count = 1 for i in range(num_new_axes): - top_dim = shape['dim'][i] + top_dim = params.shape.dim[i] if top_dim == 0: copy_axes.append(i) copy_axis_index = start_axis + i @@ -297,24 +287,20 @@ def shape_reshape(layer, input_shape): l = inshape[0:start_axis] if len(l) > 0: explicit_count *= count(l) - l = inshape[end_axis:] if len(l) > 0: explicit_count *= count(l) - for i in range(len(copy_axes)): explicit_count *= outshape[start_axis + copy_axes[i]] - assert input_count % explicit_count == 0, "[Reshape]botom count[%d] "\ "must be divisible by product of the specified dimensions[%d] "\ % (input_count, explicit_count) - outshape[start_axis + inferred_axis] = input_count / explicit_count + outshape[start_axis + inferred_axis] = int(input_count / explicit_count) output_count = count(outshape) assert output_count == input_count, "[Reshape]output count[%d] must match input count[%d]" % ( output_count, input_count) - if inshape[0] == -1: - outshape[0] = -1 + outshape[0] = -1 return [outshape] @@ -345,18 +331,22 @@ def shape_crop(layer, input_shape): def shape_flatten(layer, input_shape): assert len(input_shape) == 1, "the number of flatten's inputs must be 1" + inshape = input_shape[0] params = layer.flatten_param start_axis = params.axis end_axis = params.end_axis if start_axis < 0: - start_axis += len(input_shape[0]) + start_axis += len(inshape) if end_axis < 0: - end_axis += len(input_shape[0]) + 1 + end_axis += len(inshape) + 1 assert start_axis <= end_axis, 'invalid axis[%d] or end_axis[%d] params'\ % (start_axis, end_axis) - output_shape = [0] * (start_axis - 0) + [ - -1 - ] + [0] * (len(input_shape[0]) - end_axis) + output_shape = inshape[0:start_axis] + if len(inshape[start_axis:end_axis]) != 0: + flat_sz = reduce(lambda a, b: a * b, inshape[start_axis:end_axis]) + output_shape += [flat_sz] + output_shape += inshape[end_axis:len(inshape)] + output_shape[0] = -1 return [output_shape] diff --git a/x2paddle/op_mapper/tf_op_mapper.py b/x2paddle/op_mapper/tf_op_mapper.py index 5140ab7aa7745895c917f3c02e16cb1341469fd9..12784189d6c38daa406b0b8dfb9d4a32d825dfbe 100644 --- a/x2paddle/op_mapper/tf_op_mapper.py +++ b/x2paddle/op_mapper/tf_op_mapper.py @@ -17,6 +17,7 @@ from x2paddle.core.op_mapper import OpMapper from x2paddle.core.util import * import inspect import numpy +import sys # compute padding size for SAME mode @@ -56,20 +57,26 @@ class TFOpMapper(OpMapper): 'Sigmoid': ['sigmoid'], 'Exp': ['exp'], 'Rsqrt': ['rsqrt'], - 'swish_f32': ['swish'] + 'swish_f32': ['swish'], + 'Tanh': ['tanh'], + 'LeakyRelu': ['leaky_relu', { + 'alpha': 'alpha' + }] } elementwise_ops = { 'Add': 'elementwise_add', 'RealDiv': 'elementwise_div', 'Sub': 'elementwise_sub', 'Maximum': 'elementwise_max', - 'Mul': 'elementwise_mul' + 'Mul': 'elementwise_mul', + 'FloorDiv': 'elementwise_floordiv' } def __init__(self, decoder): super(TFOpMapper, self).__init__() self.decoder = decoder self.graph = decoder.tf_graph + self.batch_node = None self.weights = dict() self.omit_nodes = list() self.used_custom_layers = dict() @@ -82,19 +89,44 @@ class TFOpMapper(OpMapper): idx = self.graph.input_nodes.index(name) del self.graph.input_nodes[idx] - print("Total nodes: {}".format(len(self.graph.topo_sort))) - for node_name in self.graph.topo_sort: + sys.stderr.write("Total nodes: {}\n".format(len(self.graph.topo_sort))) + unsupported_ops = set() + for i, node_name in enumerate(self.graph.topo_sort): + sys.stderr.write("\rConverting node {} ... ".format(i + 1)) node = self.graph.get_node(node_name) op = node.layer_type if op in self.directly_map_ops: + if len(unsupported_ops) > 0: + continue self.directly_map(node) elif op in self.elementwise_ops: + if len(unsupported_ops) > 0: + continue self.elementwise_map(node) elif hasattr(self, op): + if len(unsupported_ops) > 0: + continue func = getattr(self, op) func(node) else: - raise Exception("OP: [{}] not support yet".format(op)) + unsupported_ops.add(op) + if len(unsupported_ops) > 0: + sys.stderr.write( + "=========={} Ops are not supported yet======\n".format( + len(unsupported_ops))) + for op in unsupported_ops: + sys.stderr.write("========== {} ==========\n".format(op)) + sys.exit(-1) + sys.stderr.write('\nDone!\n') + + def add_omit_nodes(self, in_node_name, out_node_name): + in_node = self.graph.get_node(in_node_name) + out_node = self.graph.get_node(out_node_name) + index = in_node.outputs.index(out_node_name) + del in_node.outputs[index] + index = out_node.inputs.index(in_node_name) + del out_node.inputs[index] + self.omit_nodes.append(in_node.layer_name) def directly_map(self, node): assert node.layer_type in self.directly_map_ops @@ -118,6 +150,10 @@ class TFOpMapper(OpMapper): y = self.graph.get_node(node.layer.input[1], copy=True) x_shape = x.out_shapes[0] y_shape = y.out_shapes[0] + if len(x_shape) == 0: + x_shape = [1] + if len(y_shape) == 0: + y_shape = [1] # incomplement broadcasting support for paddle x_input = x y_input = y @@ -153,6 +189,10 @@ class TFOpMapper(OpMapper): if y_shape[index] != x_shape[index]: is_sub_seq = False if not is_sub_seq: + if x_shape.count(-1) > 2: + x_shape = self.decoder.infer_tensor_shape(x_input) + if y_shape.count(-1) > 2: + y_shape = self.decoder.infer_tensor_shape(y_input) x_expand_times = [1] * len(x_shape) y_expand_times = [1] * len(y_shape) x_need_expand = False @@ -211,6 +251,9 @@ class TFOpMapper(OpMapper): 'name': string(node.layer_name), 'append_batch_size': False } + if shape[0] < 0: + self.batch_node = node + node.fluid_code.add_layer("data", inputs=None, output=node, @@ -259,21 +302,22 @@ class TFOpMapper(OpMapper): perm = perm.value.tolist() if perm == [0, 3, 1, 2] and input.data_format == "NHWC": - node.fluid_code.add_layer("assign", - inputs=input, - output=node, - param_attr=None) + input_name = input.layer_name + if hasattr(input, "index"): + input_name = input_name + "[{}]".format(input.index) + node.fluid_code.add_layer("{} = {}").format(node.layer_name, + input_name) node.tf_data_format = "NCHW" self.graph.data_format_propagation(node) elif perm == [0, 2, 3, 1] and input.tf_data_format == "NCHW": - node.fluid_code.add_layer("assign", - inputs=input, - output=node, - param_attr=None) + input_name = input.layer_name + if hasattr(input, "index"): + input_name = input_name + "[{}]".format(input.index) + node.fluid_code.add_layer("{} = {}").format(node.layer_name, + input_name) node.tf_data_format = "NHWC" self.graph.data_format_propagation(node) elif len(input.out_shapes[0]) > 4: - print(input.layer_name, input.tf_data_format, input.pd_data_format) tf_data_format = list(input.tf_data_format) pd_data_format = list(input.pd_data_format) new_perm = [i for i in range(len(perm))] @@ -346,10 +390,7 @@ class TFOpMapper(OpMapper): input = self.graph.get_node(node.layer.input[0], copy=True) kernel = self.graph.get_node(node.layer.input[1], copy=True) assert kernel.layer_type == "Const", "Kernel of Conv2D should be Const" - self.omit_nodes.append(kernel.layer_name) - - node.fluid_code.add_note("#{} : {}".format(node.layer.name, - node.layer_name)) + self.add_omit_nodes(kernel.layer_name, node.layer_name) in_shape = input.out_shapes[0] if in_shape.count(-1) > 2: @@ -427,11 +468,10 @@ class TFOpMapper(OpMapper): assert beta.layer_type == "Const" assert moving_mean.layer_type == "Const" assert moving_var.layer_type == "Const" - self.omit_nodes.append(gamma.layer_name) - self.omit_nodes.append(beta.layer_name) - self.omit_nodes.append(moving_mean.layer_name) - self.omit_nodes.append(moving_var.layer_name) - + self.add_omit_nodes(gamma.layer_name, node.layer_name) + self.add_omit_nodes(beta.layer_name, node.layer_name) + self.add_omit_nodes(moving_mean.layer_name, node.layer_name) + self.add_omit_nodes(moving_var.layer_name, node.layer_name) if channel_first: self.data_format_propagation(node) @@ -453,10 +493,7 @@ class TFOpMapper(OpMapper): input = self.graph.get_node(node.layer.input[0], copy=True) kernel = self.graph.get_node(node.layer.input[1], copy=True) assert kernel.layer_type == "Const", "Kernel of DepthwiseConv2DNative should be Const" - self.omit_nodes.append(kernel.layer_name) - - node.fluid_code.add_note("#{} : {}".format(node.layer.name, - node.layer_name)) + self.add_omit_nodes(kernel.layer_name, node.layer_name) in_shape = input.out_shapes[0] if in_shape.count(-1) > 2: @@ -503,6 +540,7 @@ class TFOpMapper(OpMapper): "stride": strides[2:4], "dilation": dilations[2:4], "groups": k_size[3] * in_shape[1], + "use_cudnn": False, "padding": padding } node.fluid_code.add_layer("conv2d", @@ -515,13 +553,17 @@ class TFOpMapper(OpMapper): param = self.graph.get_node(node.layer.input[1], copy=True) if param.layer_type == "Const": attr = {"shape": param.value.tolist()} - self.omit_nodes.append(param.layer_name) + self.add_omit_nodes(param.layer_name, node.layer_name) else: # Here is a trick method to solove tensor parameter in tensorflow shape = self.decoder.infer_shape_tensor(param, node.out_shapes[0]) if shape.count(-1) <= 1: attr = {"shape": shape} - self.omit_nodes.append(param.layer_name) + self.add_omit_nodes(param.layer_name, node.layer_name) + elif shape.count(-1) == 2 and shape[0] == -1: + shape[0] = 0 + attr = {"shape": shape} + self.add_omit_nodes(param.layer_name, node.layer_name) else: assert len(param.out_shapes[0] ) == 1, "Unexpected situation of shape parameter" @@ -540,8 +582,40 @@ class TFOpMapper(OpMapper): new_param += (node.layer_name + "[{}]".format(i) + ", ") new_param = new_param.strip(", ") + "]" attr = {"shape": new_param} + + if len(input.out_shapes[0]) == 4 and node.tf_data_format == "NHWC": + if len(attr["shape"]) < 3: + perm = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=perm) + node.fluid_code.add_layer("reshape", + inputs=node, + output=node, + param_attr=attr) + return + if len(attr["shape"]) == 4 and node.tf_data_format == "NHWC": - attr["shape"] = [attr["shape"][i] for i in [0, 3, 1, 2]] + input_shape = self.decoder.infer_tensor(input).shape + if input_shape[1] == attr["shape"][1]: + attr["shape"] = [attr["shape"][i] for i in [0, 3, 1, 2]] + else: + perm = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=perm) + node.fluid_code.add_layer("reshape", + inputs=node, + output=node, + param_attr=attr) + perm = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=perm) + return node.fluid_code.add_layer("reshape", inputs=input, output=node, @@ -589,8 +663,8 @@ class TFOpMapper(OpMapper): dim = self.graph.get_node(node.layer.input[2], copy=True) assert num_sections.layer_type == "Const" assert dim.layer_type == "Const" - self.omit_nodes.append(num_sections.layer_name) - self.omit_nodes.append(dim.layer_name) + self.add_omit_nodes(num_sections.layer_name, node.layer_name) + self.add_omit_nodes(dim.layer_name, node.layer_name) dim = dim.value if input.tf_data_format == "NHWC" and len(input.out_shapes[0]) == 4: dim = nhwc_dim_to_nchw(input, dim) @@ -610,7 +684,7 @@ class TFOpMapper(OpMapper): ] axis = self.graph.get_node(node.layer.input[-1], copy=True) assert axis.layer_type == "Const" - self.omit_nodes.append(axis.layer_name) + self.add_omit_nodes(axis.layer_name, node.layer_name) axis = axis.value if inputs[0].tf_data_format == "NHWC" and len( inputs[0].out_shapes[0]) == 4: @@ -624,14 +698,20 @@ class TFOpMapper(OpMapper): def Tile(self, node): input = self.graph.get_node(node.layer.input[0], copy=True) expand_times = self.graph.get_node(node.layer.input[1], copy=True) - assert expand_times.layer_type == "Const" - self.omit_nodes.append(expand_times.layer_name) - expand_times = expand_times.value.tolist() + self.add_omit_nodes(expand_times.layer_name, node.layer_name) + if expand_times.layer_type == "Const": + expand_times = expand_times.value.tolist() + else: + expand_times = self.decoder.infer_shape_tensor(expand_times) if input.tf_data_format == "NHWC": if len(input.out_shapes[0]) == 4: expand_times = [expand_times[i] for i in [0, 3, 1, 2]] elif len(input.out_shape[0]) == 3: expand_times = [expand_times[i] for i in [2, 0, 1]] + for i in range(len(expand_times)): + if expand_times[i] < 0: + expand_times[i] = 1 + attr = {"expand_times": expand_times} node.fluid_code.add_layer("expand", inputs=input, @@ -663,12 +743,18 @@ class TFOpMapper(OpMapper): input = self.graph.get_node(node.layer.input[0], copy=True) paddings = self.graph.get_node(node.layer.input[1], copy=True) assert paddings.layer_type == "Const", "Padding should be Const" - self.omit_nodes.append(paddings.layer_name) + self.add_omit_nodes(paddings.layer_name, node.layer_name) paddings = paddings.value.flatten().tolist() if input.tf_data_format == "NHWC" and len(input.out_shapes[0]) == 4: paddings = [paddings[i] for i in [0, 1, 6, 7, 2, 3, 4, 5]] + + pad_op = "pad" + if len(input.out_shapes[0]) == 4: + if paddings[0] + paddings[1] + paddings[2] + paddings[3] == 0: + paddings = paddings[4:] + pad_op = "pad2d" attr = {"paddings": paddings} - node.fluid_code.add_layer("pad", + node.fluid_code.add_layer(pad_op, inputs=input, output=node, param_attr=attr) @@ -678,20 +764,27 @@ class TFOpMapper(OpMapper): limit = self.graph.get_node(node.layer.input[1], copy=True) delta = self.graph.get_node(node.layer.input[2], copy=True) if start.layer_type == "Const": - self.omit_nodes.append(start.layer_name) start = start.value + else: + start = self.decoder.infer_tensor(start) if limit.layer_type == "Const": - self.omit_nodes.append(limit.layer_name) limit = limit.value + else: + limit = self.decoder.infer_tensor(limit) if delta.layer_type == "Const": - self.omit_nodes.append(delta.layer_name) delta = delta.value + else: + delta = self.decoder.infer_tensor(delta) + self.add_omit_nodes(start.layer_name, node.layer_name) + self.add_omit_nodes(limit.layer_name, node.layer_name) + self.add_omit_nodes(delta.layer_name, node.layer_name) + inputs = {"start": start, "end": limit, "step": delta} attr = {"dtype": string(node.dtype)} - node.fluid_code.append("range", - inputs=inputs, - output=node, - param_attr=None) + node.fluid_code.add_layer("range", + inputs=inputs, + output=node, + param_attr=None) def Mean(self, node): input = self.graph.get_node(node.layer.input[0], copy=True) @@ -736,7 +829,7 @@ class TFOpMapper(OpMapper): input = self.graph.get_node(node.layer.input[0], copy=True) axis = self.graph.get_node(node.layer.input[1], copy=True) assert axis.layer_type == "Const", "ArgMax only support Const parameter" - self.omit_nodes.append(axis.layer_name) + self.add_omit_nodes(axis.layer_name, node.layer_name) axis = axis.value if input.tf_data_format == "NHWC" and len(input.out_shapes[0]) == 4: axis = nhwc_dim_to_nchw(input, axis) @@ -754,9 +847,9 @@ class TFOpMapper(OpMapper): assert begin.layer_type == "Const" assert end.layer_type == "Const" assert strides.layer_type == "Const" - self.omit_nodes.append(begin.layer_name) - self.omit_nodes.append(end.layer_name) - self.omit_nodes.append(strides.layer_name) + self.add_omit_nodes(begin.layer_name, node.layer_name) + self.add_omit_nodes(end.layer_name, node.layer_name) + self.add_omit_nodes(strides.layer_name, node.layer_name) strides = strides.value.tolist() assert len(set(strides)) == 1 and strides[0] == 1 @@ -766,7 +859,15 @@ class TFOpMapper(OpMapper): begin = [begin[i] for i in [0, 3, 1, 2]] end = [end[i] for i in [0, 3, 1, 2]] - attr = {"axes": range(len(strides)), "starts": begin, "ends": end} + for i in range(len(end)): + if end[i] == 0: + end[i] = 999999 + + attr = { + "axes": [i for i in range(len(strides))], + "starts": begin, + "ends": end + } node.fluid_code.add_layer("slice", inputs=input, output=node, @@ -776,10 +877,8 @@ class TFOpMapper(OpMapper): input = self.graph.get_node(node.layer.input[0], copy=True) begin = self.graph.get_node(node.layer.input[1], copy=True) size = self.graph.get_node(node.layer.input[2], copy=True) - # assert begin.layer_type == "Const" - # assert size.layer_type == "Const" - self.omit_nodes.append(begin.layer_name) - self.omit_nodes.append(size.layer_name) + self.add_omit_nodes(begin.layer_name, node.layer_name) + self.add_omit_nodes(size.layer_name, node.layer_name) if begin.layer_type == "Const": begin = begin.value.tolist() else: @@ -793,20 +892,37 @@ class TFOpMapper(OpMapper): size = [size[i] for i in [0, 3, 1, 2]] begin = [begin[i] for i in [0, 3, 1, 2]] - attr = {"shape": size, "offsets": begin} - node.fluid_code.add_layer("crop", + for i in range(len(size)): + if size[i] < 0: + size[i] = 99999999 + else: + size[i] = size[i] + begin[i] + + attr = { + "axes": [i for i in range(len(size))], + "starts": begin, + "ends": size + } + node.fluid_code.add_layer("slice", inputs=input, output=node, param_attr=attr) def Conv2DBackpropInput(self, node): - input = self.graph.get_node(node.layer.input[0], copy=True) + out_shape = self.graph.get_node(node.layer.input[0], copy=True) kernel = self.graph.get_node(node.layer.input[1], copy=True) + input = self.graph.get_node(node.layer.input[2], copy=True) + assert kernel.layer_type == "Const", "Kernel of Conv2DBackpropInput should be Const" - self.omit_nodes.append(kernel.layer_name) - node.fluid_code.add_note("#{} : {}".format(node.layer.name, - node.layer_name)) + self.add_omit_nodes(kernel.layer_name, node.layer_name) + self.add_omit_nodes(out_shape.layer_name, node.layer_name) + + if out_shape.layer_type == "Const": + out_shape = out_shape.value.tolist() + else: + out_shape = self.decoder.infer_shape_tensor(out_shape, + node.out_shapes[0]) in_shape = input.out_shapes[0] if in_shape.count(-1) > 2: @@ -815,14 +931,14 @@ class TFOpMapper(OpMapper): if k_size.count(-1) > 2: k_size = self.decoder.infer_tensor(kernel).shape + pad_mode = node.get_attr("padding").decode() strides = node.get_attr("strides") dilations = node.get_attr("dilations") data_format = node.get_attr("data_format").decode() - pad_mode = node.get_attr("padding").decode() channel_first = data_format == "NCHW" + self.weights[kernel.layer_name.replace('/', '_')] = numpy.transpose( kernel.value, (3, 2, 0, 1)) - if not channel_first: in_shape = [in_shape[i] for i in [0, 3, 1, 2]] strides = [strides[i] for i in [0, 3, 1, 2]] @@ -843,6 +959,7 @@ class TFOpMapper(OpMapper): output=node, param_attr=attr) input = node + attr = { "bias_attr": False, "param_attr": string(kernel.layer_name), @@ -852,11 +969,26 @@ class TFOpMapper(OpMapper): "dilation": dilations[2:4], "padding": padding } - node.fluid_code.add_layer( - "conv2d_transpose", - inputs=input if channel_first and pad_mode != "SAME" else node, - output=node, - param_attr=attr) + node.fluid_code.add_layer("conv2d_transpose", + inputs=input, + output=node, + param_attr=attr) + + if pad_mode == "SAME": + if node.tf_data_format == "NHWC": + out_shape = [out_shape[i] for i in [0, 3, 1, 2]] + for i in range(4): + if out_shape[i] < 0: + out_shape[i] = 999999 + attr = { + "axes": [0, 1, 2, 3], + "starts": [0, 0, 0, 0], + "ends": out_shape + } + node.fluid_code.add_layer("slice", + inputs=node, + output=node, + param_attr=attr) def Max(self, node): input = self.graph.get_node(node.layer.input[0], copy=True) @@ -897,24 +1029,10 @@ class TFOpMapper(OpMapper): output=node, param_attr=attr) - def FloorDiv(self, node): - x = self.graph.get_node(node.layer.input[0], copy=True) - y = self.graph.get_node(node.layer.input[1], copy=True) - inputs = {'x': x, 'y': y} - node.fluid_code.add_layer("elementwise_div", - inputs=inputs, - output=node, - param_attr=None) - node.fluid_code.add_layer("floor", - inputs=node, - output=node, - param_attr=None) - def Split(self, node): dim = self.graph.get_node(node.layer.input[0], copy=True) input = self.graph.get_node(node.layer.input[1], copy=True) - assert dim.layer_type == "Const" - self.omit_nodes.append(dim.layer_name) + self.add_omit_nodes(dim.layer_name, node.layer_name) num_split = node.get_attr('num_split') dim = dim.value if input.tf_data_format == "NHWC" and len(input.out_shapes[0]) == 4: @@ -941,6 +1059,8 @@ class TFOpMapper(OpMapper): def Softmax(self, node): input = self.graph.get_node(node.layer.input[0], copy=True) axis = node.get_attr("axis") + if axis is None: + axis = -1 + len(input.out_shapes[0]) if input.tf_data_format == "NHWC" and len(input.out_shapes[0]) == 4: axis = nhwc_dim_to_nchw(input, axis) attr = {"axis": axis} @@ -948,3 +1068,149 @@ class TFOpMapper(OpMapper): inputs=input, output=node, param_attr=attr) + + def ResizeNearestNeighbor(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + resize_shape = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(resize_shape.layer_name, node.layer_name) + if resize_shape.layer_type == "Const": + resize_shape = resize_shape.value.tolist() + else: + resize_shape = self.decoder.infer_shape_tensor(resize_shape) + align_corners = node.get_attr("align_corners") + attr = {"align_corners": align_corners, "out_shape": resize_shape} + node.fluid_code.add_layer("resize_nearest", + inputs=input, + output=node, + param_attr=attr) + + def ResizeBilinear(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + resize_shape = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(resize_shape.layer_name, node.layer_name) + if resize_shape.layer_type == "Const": + resize_shape = resize_shape.value.tolist() + else: + resize_shape = self.decoder.infer_shape_tensor(resize_shape) + align_corners = node.get_attr("align_corners") + attr = { + "align_corners": align_corners, + "out_shape": resize_shape, + "align_mode": 1 + } + node.fluid_code.add_layer("resize_bilinear", + inputs=input, + output=node, + param_attr=attr) + + def ResizeNearestNeighbor(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + resize_shape = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(resize_shape.layer_name, node.layer_name) + if resize_shape.layer_type == "Const": + resize_shape = resize_shape.value.tolist() + else: + resize_shape = self.decoder.infer_shape_tensor( + resize_shape, node.out_shapes[0]) + align_corners = node.get_attr("align_corners") + attr = {"align_corners": align_corners, "out_shape": resize_shape} + node.fluid_code.add_layer("resize_nearest", + inputs=input, + output=node, + param_attr=attr) + + def ResizeBilinear(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + resize_shape = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(resize_shape.layer_name, node.layer_name) + if resize_shape.layer_type == "Const": + resize_shape = resize_shape.value.tolist() + else: + resize_shape = self.decoder.infer_shape_tensor( + resize_shape, node.out_shapes[0]) + align_corners = node.get_attr("align_corners") + attr = { + "align_corners": align_corners, + "out_shape": resize_shape, + "align_mode": 1 + } + node.fluid_code.add_layer("resize_bilinear", + inputs=input, + output=node, + param_attr=attr) + + def GreaterEqual(self, node): + x = self.graph.get_node(node.layer.input[0], copy=True) + y = self.graph.get_node(node.layer.input[1], copy=True) + inputs = {"x": x, "y": y} + node.fluid_code.add_layer("greater_equal", + inputs=inputs, + output=node, + param_attr=None) + + def RandomUniform(self, node): + shape = self.graph.get_node(node.layer.input[0], copy=True) + self.add_omit_nodes(shape.layer_name, node.layer_name) + if shape.layer_type == "Const": + shape = shape.value.tolist() + else: + shape = self.decoder.infer_shape_tensor(shape) + if node.tf_data_format == "NHWC" and len(shape) == 4: + shape = [shape[i] for i in [0, 3, 1, 2]] + attr = {"shape": shape, "min": 0.0, "max": 0.9999} + if shape[0] < 0: + input = self.batch_node + node.fluid_code.add_layer("uniform_random_batch_size_like", + inputs=input, + output=node, + param_attr=attr) + else: + node.fluid_code.add_layer("uniform_random", + inputs=None, + output=node, + param_attr=attr) + + def GreaterEqual(self, node): + x = self.graph.get_node(node.layer.input[0], copy=True) + y = self.graph.get_node(node.layer.input[1], copy=True) + inputs = {"x": x, "y": y} + node.fluid_code.add_layer("greater_equal", + inputs=inputs, + output=node, + param_attr=None) + + def RandomUniform(self, node): + shape = self.graph.get_node(node.layer.input[0], copy=True) + self.add_omit_nodes(shape.layer_name, node.layer_name) + if shape.layer_type == "Const": + shape = shape.value.tolist() + else: + shape = self.decoder.infer_shape_tensor(shape) + if len(shape) == 4 and node.tf_data_format == "NHWC": + shape = [shape[i] for i in [0, 3, 1, 2]] + attr = {"shape": shape, "min": 0.0, "max": 0.9999} + if shape[0] < 0: + input = self.batch_node + node.fluid_code.add_layer("uniform_random_batch_size_like", + inputs=input, + output=node, + param_attr=attr) + else: + node.fluid_code.add_layer("uniform_random", + inputs=None, + output=node, + param_attr=attr) + + def SquaredDifference(self, node): + x = self.graph.get_node(node.layer.input[0], copy=True) + y = self.graph.get_node(node.layer.input[1], copy=True) + inputs = {"x": x, "y": y} + node.fluid_code.add_layer("elementwise_sub", + inputs=inputs, + output=node, + param_attr=None) + inputs = {"x": node, "y": node} + node.fluid_code.add_layer("elementwise_mul", + inputs=inputs, + output=node, + param_attr=None) diff --git a/x2paddle/op_mapper/tf_op_mapper_nhwc.py b/x2paddle/op_mapper/tf_op_mapper_nhwc.py new file mode 100644 index 0000000000000000000000000000000000000000..4412d897d6f3e06429bb8418c452851f8863d764 --- /dev/null +++ b/x2paddle/op_mapper/tf_op_mapper_nhwc.py @@ -0,0 +1,1108 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from x2paddle.decoder.tf_decoder import TFGraph +from x2paddle.core.op_mapper import OpMapper +from x2paddle.core.util import * +import inspect +import numpy +import sys + + +# compute padding size for SAME mode +def get_same_padding(in_size, kernel_size, stride): + new_size = int(math.ceil(in_size * 1.0 / stride)) + pad_size = (new_size - 1) * stride + kernel_size - in_size + pad0 = int(pad_size / 2) + pad1 = pad_size - pad0 + return [pad0, pad1] + + +class TFOpMapperNHWC(OpMapper): + directly_map_ops = { + 'Relu': ['relu'], + 'Relu6': ['relu6'], + 'Shape': ['shape'], + 'Abs': ['abs'], + 'Sigmoid': ['sigmoid'], + 'Exp': ['exp'], + 'Rsqrt': ['rsqrt'], + 'swish_f32': ['swish'], + 'LeakyRelu': ['leaky_relu', { + 'alpha': 'alpha' + }] + } + elementwise_ops = { + 'Add': 'elementwise_add', + 'RealDiv': 'elementwise_div', + 'Sub': 'elementwise_sub', + 'Maximum': 'elementwise_max', + 'Mul': 'elementwise_mul', + 'FloorDiv': 'elementwise_floordiv' + } + + def __init__(self, decoder): + super(TFOpMapperNHWC, self).__init__() + self.decoder = decoder + self.graph = decoder.tf_graph + self.weights = dict() + self.batch_node = None + self.omit_nodes = list() + self.used_custom_layers = dict() + + not_placeholder = list() + for name in self.graph.input_nodes: + if self.graph.get_node(name).layer_type != "Placeholder": + not_placeholder.append(name) + for name in not_placeholder: + idx = self.graph.input_nodes.index(name) + del self.graph.input_nodes[idx] + + unsupported_ops = set() + sys.stderr.write("Total nodes: {}\n".format(len(self.graph.topo_sort))) + for i, node_name in enumerate(self.graph.topo_sort): + sys.stderr.write("\rConverting node {} ... ".format(i)) + node = self.graph.get_node(node_name) + op = node.layer_type + if op in self.directly_map_ops: + if len(unsupported_ops) > 0: + continue + self.directly_map(node) + elif op in self.elementwise_ops: + if len(unsupported_ops) > 0: + continue + self.elementwise_map(node) + elif hasattr(self, op): + if len(unsupported_ops) > 0: + continue + func = getattr(self, op) + func(node) + else: + unsupported_ops.add(op) + continue + if len(unsupported_ops) > 0: + print("========= {} OPs are not supported yet ===========".format( + len(unsupported_ops))) + for op in unsupported_ops: + print("========== {} ============".format(op)) + sys.exit(-1) + sys.stderr.write("\nDone\n") + + def add_omit_nodes(self, in_node_name, out_node_name): + in_node = self.graph.get_node(in_node_name) + out_node = self.graph.get_node(out_node_name) + index = in_node.outputs.index(out_node_name) + del in_node.outputs[index] + index = out_node.inputs.index(in_node_name) + del out_node.inputs[index] + self.omit_nodes.append(in_node.layer_name) + + def directly_map(self, node): + assert node.layer_type in self.directly_map_ops + op_info = self.directly_map_ops[node.layer_type] + input = self.graph.get_node(node.layer.input[0], copy=True) + attr = dict() + for param in op_info[1:]: + tf_param_name = list(param.keys())[0] + pd_param_name = list(param.values())[0] + tf_param = node.get_attr(tf_param_name) + attr[pd_param_name] = tf_param + node.fluid_code.add_layer(op_info[0], + inputs=input, + output=node, + param_attr=attr) + + def elementwise_map(self, node): + assert node.layer_type in self.elementwise_ops + op_type = self.elementwise_ops[node.layer_type] + x = self.graph.get_node(node.layer.input[0], copy=True) + y = self.graph.get_node(node.layer.input[1], copy=True) + x_shape = x.out_shapes[0] + y_shape = y.out_shapes[0] + if len(x_shape) == 0: + x_shape = [1] + if len(y_shape) == 0: + y_shape = [1] + # incomplement broadcasting support for paddle + x_input = x + y_input = y + if len(x_shape) < len(y_shape): + unrevertable_ops = [ + "elementwise_sub", "elementwise_div", "elementwise_floordiv", + "elementwise_mod", "elementwise_pow" + ] + if op_type not in unrevertable_ops: + x_input = y + y_input = x + x_shape = y.out_shapes[0] + y_shape = x.out_shapes[0] + else: + raise Exception("Unexpected situation happend") + + if len(x_shape) == 4 and len(y_shape) == 1: + inputs = {"x": x_input, "y": y_input} + node.fluid_code.add_layer(op_type, inputs=inputs, output=node) + return + + is_sub_seq = True + for i in range(len(y_shape)): + index = -1 * i - 1 + if y_shape[index] != x_shape[index]: + is_sub_seq = False + if not is_sub_seq: + x_expand_times = [1] * len(x_shape) + y_expand_times = [1] * len(y_shape) + x_need_expand = False + y_need_expand = False + for i in range(len(y_shape)): + index = -1 * i - 1 + if y_shape[index] != x_shape[index]: + if y_shape[index] == 1: + y_expand_times[index] = x_shape[index] + y_need_expand = True + elif x_shape[index] == 1: + x_expand_times[index] = y_shape[index] + x_need_expand = True + else: + raise Exception("Unexpected situation happend") + if x_need_expand: + attr = {"expand_times": x_expand_times} + node.fluid_code.add_layer("expand", + inputs=x_input, + output="x_tmp", + param_attr=attr) + x_input = "x_tmp" + if y_need_expand: + attr = {"expand_times": y_expand_times} + node.fluid_code.add_layer("expand", + inputs=y_input, + output="y_tmp", + param_attr=attr) + y_input = "y_tmp" + inputs = {"x": x_input, "y": y_input} + node.fluid_code.add_layer(op_type, + inputs=inputs, + output=node, + param_attr=None) + + def Placeholder(self, node): + shape = node.out_shapes[0] + assert len(shape) != 0, "Unknown shape of input nodes[{}].".format( + node.layer_name) + dtype = node.dtype + if shape[0] < 0: + self.batch_node = node + attr = { + 'dtype': string(dtype), + 'shape': shape, + 'name': string(node.layer_name), + 'append_batch_size': False + } + + node.fluid_code.add_layer("data", + inputs=None, + output=node, + param_attr=attr) + + def Const(self, node): + shape = node.out_shapes[0] + dtype = node.dtype + value = node.value + initializer = "Constant(0.0)" + if len(shape) == 0: + assert value.size == 1, "Unexpected situation happend" + shape = [1] + initializer = "Constant({})".format(value) + + self.weights[node.layer_name] = node.value + + attr = { + 'dtype': string(dtype), + 'shape': shape, + 'name': string(node.layer_name), + 'default_initializer': initializer + } + node.fluid_code.add_layer("create_parameter", + inputs=None, + output=node, + param_attr=attr) + + def Transpose(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + perm = self.graph.get_node(node.layer.input[1], copy=True) + assert perm.layer_type == "Const", "Perm of transpose OP should be Const" + del self.weights[perm.layer_name.replace('/', '_')] + perm.fluid_code.clear() + perm = perm.value.tolist() + + attr = {'perm': perm} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + + def MaxPool(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + + in_shape = input.out_shapes[0] + if in_shape.count(-1) > 2: + in_shape = self.decoder.infer_tensor(input).shape + + k_size = node.get_attr("ksize") + strides = node.get_attr("strides") + data_format = node.get_attr("data_format").decode() + pad_mode = node.get_attr("padding").decode() + channel_first = data_format == "NCHW" + + if not channel_first: + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + in_shape = [in_shape[i] for i in [0, 3, 1, 2]] + strides = [strides[i] for i in [0, 3, 1, 2]] + k_size = [k_size[i] for i in [0, 3, 1, 2]] + input = node + + if pad_mode == "SAME": + pad_h = get_same_padding(in_shape[2], k_size[2], strides[2]) + pad_w = get_same_padding(in_shape[3], k_size[3], strides[3]) + pad_h = pad_h[0] + pad_h[1] + pad_w = pad_w[0] + pad_w[1] + attr = {"paddings": [0, pad_h, 0, pad_w], "pad_value": -10000.0} + if pad_h + pad_w != 0: + node.fluid_code.add_layer("pad2d", + inputs=input, + output=node, + param_attr=attr) + input = node + attr = { + "pool_size": k_size[2:4], + "pool_type": string("max"), + "pool_stride": strides[2:4] + } + node.fluid_code.add_layer("pool2d", + inputs=input, + output=node, + param_attr=attr) + + if not channel_first: + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def Conv2D(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + kernel = self.graph.get_node(node.layer.input[1], copy=True) + assert kernel.layer_type == "Const", "Kernel of Conv2D should be Const" + self.add_omit_nodes(kernel.layer_name, node.layer_name) + + in_shape = input.out_shapes[0] + if in_shape.count(-1) > 2: + in_shape = self.decoder.infer_tensor(input).shape + k_size = kernel.out_shapes[0] + if k_size.count(-1) > 2: + k_size = self.decoder.infer_tensor(kernel).shape + + strides = node.get_attr("strides") + dilations = node.get_attr("dilations") + data_format = node.get_attr("data_format").decode() + pad_mode = node.get_attr("padding").decode() + channel_first = data_format == "NCHW" + padding = 0 + + self.weights[kernel.layer_name.replace('/', '_')] = numpy.transpose( + kernel.value, (3, 2, 0, 1)) + + if not channel_first: + in_shape = [in_shape[i] for i in [0, 3, 1, 2]] + strides = [strides[i] for i in [0, 3, 1, 2]] + dilations = [dilations[i] for i in [0, 3, 1, 2]] + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + input = node + + if pad_mode == "SAME": + pad_h = get_same_padding(in_shape[2], k_size[0], strides[2]) + pad_w = get_same_padding(in_shape[3], k_size[1], strides[3]) + if pad_h[0] == pad_h[1] and pad_w[0] == pad_w[1]: + padding = [pad_h[0], pad_w[0]] + else: + attr = {"paddings": pad_h + pad_w, "pad_value": 0.0} + node.fluid_code.add_layer("pad2d", + inputs=input, + output=node, + param_attr=attr) + input = node + attr = { + "bias_attr": False, + "param_attr": string(kernel.layer_name), + "num_filters": k_size[3], + "filter_size": k_size[0:2], + "stride": strides[2:4], + "dilation": dilations[2:4], + "padding": padding + } + node.fluid_code.add_layer("conv2d", + inputs=input, + output=node, + param_attr=attr) + if not channel_first: + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def BiasAdd(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + bias = self.graph.get_node(node.layer.input[1], copy=True) + inputs = {"x": input, "y": bias} + node.fluid_code.add_layer("elementwise_add", + inputs=inputs, + output=node, + param_attr=None) + + def FusedBatchNorm(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + gamma = self.graph.get_node(node.layer.input[1], copy=True) + beta = self.graph.get_node(node.layer.input[2], copy=True) + moving_mean = self.graph.get_node(node.layer.input[3], copy=True) + moving_var = self.graph.get_node(node.layer.input[4], copy=True) + data_format = node.get_attr("data_format").decode() + channel_first = data_format == "NCHW" + + assert gamma.layer_type == "Const" + assert beta.layer_type == "Const" + assert moving_mean.layer_type == "Const" + assert moving_var.layer_type == "Const" + self.add_omit_nodes(gamma.layer_name, node.layer_name) + self.add_omit_nodes(beta.layer_name, node.layer_name) + self.add_omit_nodes(moving_mean.layer_name, node.layer_name) + self.add_omit_nodes(moving_var.layer_name, node.layer_name) + + if not channel_first: + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + input = node + + attr = { + "epsilon": node.get_attr("epsilon"), + "param_attr": string(gamma.layer_name), + "bias_attr": string(beta.layer_name), + "moving_mean_name": string(moving_mean.layer_name), + "moving_variance_name": string(moving_var.layer_name), + "is_test": True + } + + node.fluid_code.add_layer("batch_norm", + inputs=input, + output=node, + param_attr=attr) + + if not channel_first: + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def DepthwiseConv2dNative(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + kernel = self.graph.get_node(node.layer.input[1], copy=True) + assert kernel.layer_type == "Const", "Kernel of DepthwiseConv2DNative should be Const" + self.add_omit_nodes(kernel.layer_name, node.layer_name) + + in_shape = input.out_shapes[0] + if in_shape.count(-1) > 2: + in_shape = self.decoder.infer_tensor(input).shape + k_size = kernel.out_shapes[0] + if k_size.count(-1) > 2: + k_size = self.decoder.infer_tensor(kernel).shape + + strides = node.get_attr("strides") + dilations = node.get_attr("dilations") + data_format = node.get_attr("data_format").decode() + pad_mode = node.get_attr("padding").decode() + channel_first = data_format == "NCHW" + padding = 0 + + self.weights[kernel.layer_name.replace('/', '_')] = numpy.transpose( + kernel.value, (2, 3, 0, 1)) + + if not channel_first: + in_shape = [in_shape[i] for i in [0, 3, 1, 2]] + strides = [strides[i] for i in [0, 3, 1, 2]] + dilations = [dilations[i] for i in [0, 3, 1, 2]] + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + input = node + + if pad_mode == "SAME": + pad_h = get_same_padding(in_shape[2], k_size[0], strides[2]) + pad_w = get_same_padding(in_shape[3], k_size[1], strides[3]) + if pad_h[0] == pad_h[1] and pad_w[0] == pad_w[1]: + padding = [pad_h[0], pad_w[0]] + else: + attr = {"paddings": pad_h + pad_w, "pad_value": 0.0} + node.fluid_code.add_layer("pad2d", + inputs=input, + output=node, + param_attr=attr) + input = node + + attr = { + "bias_attr": False, + "param_attr": string(kernel.layer_name), + "num_filters": in_shape[1], + "filter_size": k_size[0:2], + "stride": strides[2:4], + "dilation": dilations[2:4], + "groups": k_size[3] * in_shape[1], + "use_cudnn": False, + "padding": padding + } + node.fluid_code.add_layer("conv2d", + inputs=input, + output=node, + param_attr=attr) + + if not channel_first: + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def Reshape(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + param = self.graph.get_node(node.layer.input[1], copy=True) + if param.layer_type == "Const": + attr = {"shape": param.value.tolist()} + self.add_omit_nodes(param.layer_name, node.layer_name) + else: + # Here is a trick method to solove tensor parameter in tensorflow + shape = self.decoder.infer_shape_tensor(param, node.out_shapes[0]) + if shape.count(-1) <= 1: + attr = {"shape": shape} + self.add_omit_nodes(param.layer_name, node.layer_name) + else: + assert len(param.out_shapes[0] + ) == 1, "Unexpected situation of shape parameter" + attr = {"shape": [-1]} + node.fluid_code.add_layer("reshape", + inputs=param, + output="shape_param", + param_attr=attr) + attr = {"num_or_sections": param.out_shapes[0][0], "dim": 0} + node.fluid_code.add_layer("split", + inputs="shape_param", + output=node, + param_attr=attr) + new_param = "[" + for i in range(param.out_shapes[0][0]): + new_param += (node.layer_name + "[{}]".format(i) + ", ") + new_param = new_param.strip(", ") + "]" + attr = {"shape": new_param} + node.fluid_code.add_layer("reshape", + inputs=input, + output=node, + param_attr=attr) + + def AvgPool(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + + in_shape = input.out_shapes[0] + if in_shape.count(-1) > 2: + in_shape = self.decoder.infer_tensor(input).shape + + k_size = node.get_attr("ksize") + strides = node.get_attr("strides") + data_format = node.get_attr("data_format").decode() + pad_mode = node.get_attr("padding").decode() + channel_first = data_format == "NCHW" + + if not channel_first: + in_shape = [in_shape[i] for i in [0, 3, 1, 2]] + strides = [strides[i] for i in [0, 3, 1, 2]] + k_size = [k_size[i] for i in [0, 3, 1, 2]] + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + input = node + + attr = { + "pool_size": k_size[2:4], + "pool_type": string("avg"), + "pool_stride": strides[2:4] + } + if pad_mode == "SAME": + pad_h = get_same_padding(in_shape[2], k_size[2], strides[2]) + pad_w = get_same_padding(in_shape[3], k_size[3], strides[3]) + assert pad_h[0] == pad_h[1] and pad_w[0] == pad_w[ + 1], "Cannot map AvgPool" + attr["pool_padding"] = [pad_h[0], pad_w[0]] + node.fluid_code.add_layer("pool2d", + inputs=input, + output=node, + param_attr=attr) + + if not channel_first: + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def SplitV(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + num_sections = self.graph.get_node(node.layer.input[1], copy=True) + dim = self.graph.get_node(node.layer.input[2], copy=True) + assert num_sections.layer_type == "Const" + assert dim.layer_type == "Const" + self.add_omit_nodes(num_sections.layer_name, node.layer_name) + self.add_omit_nodes(dim.layer_name, node.layer_name) + dim = dim.value + attr = { + "num_or_sections": num_sections.value.tolist(), + "dim": dim.value + } + node.fluid_code.add_layer("split", + inputs=input, + output=node, + param_attr=attr) + + def ConcatV2(self, node): + inputs = [ + self.graph.get_node(name, copy=True) + for name in node.layer.input[:-1] + ] + axis = self.graph.get_node(node.layer.input[-1], copy=True) + assert axis.layer_type == "Const" + self.add_omit_nodes(axis.layer_name, node.layer_name) + axis = axis.value + if axis < 0: + axis += len(inputs[0].out_shapes[0]) + + attr = {"axis": axis} + node.fluid_code.add_layer("concat", + inputs=inputs, + output=node, + param_attr=attr) + + def Tile(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + expand_times = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(expand_times.layer_name, node.layer_name) + if expand_times.layer_type == "Const": + expand_times = expand_times.value.tolist() + else: + expand_times = self.decoder.infer_shape_tensor(expand_times) + for i in range(len(expand_times)): + if expand_times[i] < 0: + expand_times[i] = 1 + attr = {"expand_times": expand_times} + node.fluid_code.add_layer("expand", + inputs=input, + output=node, + param_attr=attr) + + def Pack(self, node): + inputs = [ + self.graph.get_node(name, copy=True) for name in node.layer.input + ] + axis = node.get_attr("axis") + attr = {"axis": axis} + node.fluid_code.add_layer("stack", + inputs=inputs, + output=node, + param_attr=attr) + + def Pad(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + paddings = self.graph.get_node(node.layer.input[1], copy=True) + assert paddings.layer_type == "Const", "Padding should be Const" + self.add_omit_nodes(paddings.layer_name, node.layer_name) + paddings = paddings.value.flatten().tolist() + data_format = input.tf_data_format + + if len(input.out_shapes[0]) == 4: + new_padding = None + if input.tf_data_format == "NHWC": + if paddings[0] + paddings[1] + paddings[6] + paddings[7] == 0: + new_padding = paddings[2:6] + else: + if paddings[0] + paddings[1] + paddings[2] + paddings[3] == 0: + new_padding = paddings[4:] + if new_padding is not None: + if input.tf_data_format == "NHWC": + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + input = node + attr = {"paddings": new_padding} + node.fluid_code.add_layer("pad2d", + inputs=input, + output=node, + param_attr=attr) + if input.tf_data_format == "NHWC": + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + return + + attr = {"paddings": paddings} + node.fluid_code.add_layer("pad", + inputs=input, + output=node, + param_attr=attr) + + def Range(self, node): + start = self.graph.get_node(node.layer.input[0], copy=True) + limit = self.graph.get_node(node.layer.input[1], copy=True) + delta = self.graph.get_node(node.layer.input[2], copy=True) + self.add_omit_nodes(start.layer_name, node.layer_name) + self.add_omit_nodes(limit.layer_name, node.layer_name) + self.add_omit_nodes(delta.layer_name, node.layer_name) + if start.layer_type == "Const": + start = start.value + else: + start = self.decoder.infer_tensor(start) + if limit.layer_type == "Const": + limit = limit.value + else: + limit = self.decoder.infer_tensor(limit) + if delta.layer_type == "Const": + delta = delta.value + else: + delta = self.decoder.infer_tensor(delta) + dtype = node.dtype + inputs = { + "start": start, + "end": limit, + "step": delta, + "dtype": string(dtype) + } + attr = {"dtype": string(node.dtype)} + node.fluid_code.add_layer("range", + inputs=inputs, + output=node, + param_attr=None) + + def Mean(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + reduce_idx = self.graph.get_node(node.layer.input[1], copy=True) + assert reduce_idx.layer_type == "Const", "Only support Const parameter[reduce_idx]" + dims = reduce_idx.value.tolist() + keep_dims = node.get_attr("keep_dims") + + attr = {"dim": dims, "keep_dim": keep_dims} + node.fluid_code.add_layer("reduce_mean", + inputs=input, + output=node, + param_attr=attr) + + def MatMul(self, node): + x = self.graph.get_node(node.layer.input[0], copy=True) + y = self.graph.get_node(node.layer.input[1], copy=True) + transpose_a = node.get_attr('transpose_a') + transpose_b = node.get_attr('transpose_b') + inputs = {"x": x, "y": y} + # fix paddle shape infer problem + # should be removed after paddle 1.6 + if x.out_shapes[0][-1] < 0 and y.out_shapes[0][0] > 0: + shape = x.out_shapes[0] + shape[-1] = y.out_shapes[0][0] + attr = {"shape": shape} + node.fluid_code.add_layer("reshape", + inputs=x, + output=x, + param_attr=attr) + attr = {"transpose_x": transpose_a, "transpose_y": transpose_b} + node.fluid_code.add_layer("matmul", + inputs=inputs, + output=node, + param_attr=attr) + + def ArgMax(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + axis = self.graph.get_node(node.layer.input[1], copy=True) + assert axis.layer_type == "Const", "ArgMax only support Const parameter" + self.add_omit_nodes(axis.layer_name, node.layer_name) + axis = axis.value + attr = {"axis": axis} + node.fluid_code.add_layer("argmax", + inputs=input, + output=node, + param_attr=attr) + + def StridedSlice(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + begin = self.graph.get_node(node.layer.input[1], copy=True) + end = self.graph.get_node(node.layer.input[2], copy=True) + strides = self.graph.get_node(node.layer.input[3], copy=True) + assert begin.layer_type == "Const" + assert end.layer_type == "Const" + assert strides.layer_type == "Const" + self.add_omit_nodes(begin.layer_name, node.layer_name) + self.add_omit_nodes(end.layer_name, node.layer_name) + self.add_omit_nodes(strides.layer_name, node.layer_name) + strides = strides.value.tolist() + assert len(set(strides)) == 1 and strides[ + 0] == 1, "Only support strides be 1 in StridedSlice OP" + + begin = begin.value.tolist() + end = end.value.tolist() + + for i in range(len(end)): + if end[i] == 0: + end[i] = 999999 + + begin_mask = node.get_attr('begin_mask') + end_mask = node.get_attr('end_mask') + ellipsis_mask = node.get_attr('ellipsis_mask') + new_axis_mask = node.get_attr('new_axis_mask') + shrink_axis_mask = node.get_attr('shrink_axis_mask') + + assert ellipsis_mask == 0, "(OP:{} Name:{})Only support ellipsis_mask be 0[now: {}] n StridedSlice OP".format( + node.layer_type, node.layer.name, ellipsis_mask) + + # TODO codes without validation + # Use it carefully + new_begin = list() + new_end = list() + new_axes = list() + shrink_axes = list() + for i, item in enumerate(begin): + mask = (new_axis_mask >> i) & 1 + if mask != 0: + new_axes.append(i) + continue + + mask = (shrink_axis_mask >> i) & 1 + if mask != 0: + shrink_axes.append(i) + + mask = (begin_mask >> i) & 1 + if mask != 0: + new_begin.append(0) + else: + new_begin.append(item) + + mask = (end_mask >> i) & 1 + if mask != 0: + new_end.append(999999) + else: + new_end.append(end[i]) + + attr = { + "axes": [i for i in range(len(new_begin))], + "starts": new_begin, + "ends": new_end + } + node.fluid_code.add_layer("slice", + inputs=input, + output=node, + param_attr=attr) + if len(new_axes) > 0: + attr = {"axes": new_axes} + node.fluid_code.add_layer("unsqueeze", + inputs=node, + output=node, + param_attr=attr) + if len(shrink_axes) > 0: + if len(input.out_shapes[0]) + len(new_axes) <= 1: + pass + else: + attr = {"axes": shrink_axes} + node.fluid_code.add_layer("squeeze", + inputs=node, + output=node, + param_attr=attr) + + def Slice(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + begin = self.graph.get_node(node.layer.input[1], copy=True) + size = self.graph.get_node(node.layer.input[2], copy=True) + self.add_omit_nodes(begin.layer_name, node.layer_name) + self.add_omit_nodes(size.layer_name, node.layer_name) + if begin.layer_type == "Const": + begin = begin.value.tolist() + else: + begin = self.decoder.infer_tensor(begin).tolist() + if size.layer_type == "const": + size = size.value.tolist() + else: + size = self.decoder.infer_tensor(size).tolist() + + for i in range(len(size)): + if size[i] < 0: + size[i] = 99999999 + else: + size[i] = size[i] + begin[i] + + attr = { + "axes": [i for i in range(len(size))], + "starts": begin, + "ends": size + } + + node.fluid_code.add_layer("slice", + inputs=input, + output=node, + param_attr=attr) + + def Conv2DBackpropInput(self, node): + out_shape = self.graph.get_node(node.layer.input[0], copy=True) + kernel = self.graph.get_node(node.layer.input[1], copy=True) + input = self.graph.get_node(node.layer.input[2], copy=True) + + assert kernel.layer_type == "Const", "Kernel of Conv2DBackpropInput should be Const" + + self.add_omit_nodes(kernel.layer_name, node.layer_name) + self.add_omit_nodes(out_shape.layer_name, node.layer_name) + + in_shape = input.out_shapes[0] + if in_shape.count(-1) > 2: + in_shape = self.decoder.infer_tensor(input).shape + k_size = kernel.out_shapes[0] + if k_size.count(-1) > 2: + k_size = self.decoder.infer_tensor(kernel).shape + + pad_mode = node.get_attr("padding") + strides = node.get_attr("strides") + dilations = node.get_attr("dilations") + data_format = node.get_attr("data_format").decode() + channel_first = data_format == "NCHW" + + self.weights[kernel.layer_name.replace('/', '_')] = numpy.transpose( + kernel.value, (3, 2, 0, 1)) + if not channel_first: + in_shape = [in_shape[i] for i in [0, 3, 1, 2]] + strides = [strides[i] for i in [0, 3, 1, 2]] + dilations = [dilations[i] for i in [0, 3, 1, 2]] + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + input = node + else: + self.data_format_propagation(node) + + padding = 0 + if pad_mode == "SAME": + pad_h = get_same_padding(in_shape[2], k_size[0], strides[2]) + pad_w = get_same_padding(in_shape[3], k_size[1], strides[3]) + if pad_h[0] == pad_h[1] and pad_w[0] == pad_w[1]: + padding = [pad_h[0], pad_w[0]] + else: + attr = {"paddings": pad_h + pad_w, "pad_value": 0.0} + node.fluid_code.add_layer("pad2d", + inputs=input, + output=node, + param_attr=attr) + input = node + + attr = { + "bias_attr": False, + "param_attr": string(kernel.layer_name), + "num_filters": k_size[3], + "filter_size": k_size[0:2], + "stride": strides[2:4], + "dilation": dilations[2:4], + "padding": padding + } + node.fluid_code.add_layer("conv2d_transpose", + inputs=input, + output=node, + param_attr=attr) + + if not channel_first: + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def Max(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + reduce_idx = self.graph.get_node(node.layer.input[1], copy=True) + assert reduce_idx.layer_type == "Const", "Only support Const parameter[reduce_idx]" + keep_dims = node.get_attr("keep_dims") + dim = reduce_idx.value.tolist() + + attr = {"dim": dim, "keep_dim": keep_dims} + node.fluid_code.add_layer("reduce_max", + inputs=input, + output=node, + param_attr=attr) + + def Sum(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + reduce_idx = self.graph.get_node(node.layer.input[1], copy=True) + assert reduce_idx.layer_type == "Const", "Only support Const parameter[reduce_idx]" + keep_dims = node.get_attr("keep_dims") + dim = reduce_idx.value.tolist() + + attr = {"dim": dim, "keep_dim": keep_dims} + node.fluid_code.add_layer("reduce_sum", + inputs=input, + output=node, + param_attr=attr) + + def Cast(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + dtype = node.dtype_map[node.get_attr('DstT')] + attr = {"dtype": string(dtype)} + node.fluid_code.add_layer("cast", + inputs=input, + output=node, + param_attr=attr) + + def Split(self, node): + dim = self.graph.get_node(node.layer.input[0], copy=True) + input = self.graph.get_node(node.layer.input[1], copy=True) + assert dim.layer_type == "Const" + self.add_omit_nodes(dim.layer_name, node.layer_name) + num_split = node.get_attr('num_split') + dim = dim.value + + attr = {"num_or_sections": num_split, "dim": dim} + node.fluid_code.add_layer("split", + inputs=input, + output=node, + param_attr=attr) + + def Squeeze(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + squeeze_dims = node.get_attr('squeeze_dims') + attr = {"axes": squeeze_dims} + node.fluid_code.add_layer("squeeze", + inputs=input, + output=node, + param_attr=attr) + + def Softmax(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + axis = node.get_attr("axis") + attr = {"axis": axis} + node.fluid_code.add_layer("softmax", + inputs=input, + output=node, + param_attr=attr) + + def ResizeNearestNeighbor(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + resize_shape = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(resize_shape.layer_name, node.layer_name) + if resize_shape.layer_type == "Const": + resize_shape = resize_shape.value.tolist() + else: + resize_shape = self.decoder.infer_shape_tensor( + resize_shape, node.out_shapes[0]) + align_corners = node.get_attr("align_corners") + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + attr = {"align_corners": align_corners, "out_shape": resize_shape} + node.fluid_code.add_layer("resize_nearest", + inputs=node, + output=node, + param_attr=attr) + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def ResizeBilinear(self, node): + input = self.graph.get_node(node.layer.input[0], copy=True) + resize_shape = self.graph.get_node(node.layer.input[1], copy=True) + self.add_omit_nodes(resize_shape.layer_name, node.layer_name) + if resize_shape.layer_type == "Const": + resize_shape = resize_shape.value.tolist() + else: + resize_shape = self.decoder.infer_shape_tensor( + resize_shape, node.out_shapes[0]) + align_corners = node.get_attr("align_corners") + attr = {"perm": [0, 3, 1, 2]} + node.fluid_code.add_layer("transpose", + inputs=input, + output=node, + param_attr=attr) + attr = { + "align_corners": align_corners, + "out_shape": resize_shape, + "align_mode": 1 + } + node.fluid_code.add_layer("resize_bilinear", + inputs=node, + output=node, + param_attr=attr) + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs=node, + output=node, + param_attr=attr) + + def GreaterEqual(self, node): + x = self.graph.get_node(node.layer.input[0], copy=True) + y = self.graph.get_node(node.layer.input[1], copy=True) + inputs = {"x": x, "y": y} + node.fluid_code.add_layer("greater_equal", + inputs=inputs, + output=node, + param_attr=None) + + def RandomUniform(self, node): + shape = self.graph.get_node(node.layer.input[0], copy=True) + self.add_omit_nodes(shape.layer_name, node.layer_name) + if shape.layer_type == "Const": + shape = shape.value.tolist() + else: + shape = self.decoder.infer_shape_tensor(shape) + attr = {"shape": shape, "min": 0.0, "max": 0.9999} + if shape[0] < 0: + input = self.batch_node + node.fluid_code.add_layer("uniform_random_batch_size_like", + inputs=input, + output=node, + param_attr=attr) + else: + node.fluid_code.add_layer("uniform_random", + inputs=None, + output=node, + param_attr=attr) diff --git a/x2paddle/optimizer/caffe_optimizer.py b/x2paddle/optimizer/caffe_optimizer.py new file mode 100644 index 0000000000000000000000000000000000000000..52786ce5b3c03e5eda5e830262e96bf388f37e76 --- /dev/null +++ b/x2paddle/optimizer/caffe_optimizer.py @@ -0,0 +1,68 @@ +# Copyright (c) 2019 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License" +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from x2paddle.decoder.caffe_decoder import CaffeGraph +from x2paddle.core.util import * + + +class CaffeOptimizer(object): + layers_with_act = ['Convolution', 'Deconvolution', 'InnerProduct'] + activation_ops = ['ReLU', 'Sigmoid'] + + def __init__(self, mapper): + self.graph = mapper.graph + + def merge_bn_scale(self): + for node_name in self.graph.topo_sort: + node = self.graph.get_node(node_name) + if node.layer_type == 'Scale': + parent_node = self.graph.get_bottom_node(node, idx=0) + if parent_node.layer_type == 'BatchNorm': + is_delete_node = True if len( + parent_node.outputs) == 1 else False + parent_fluid_layer = parent_node.fluid_code.layers[0] + input = parent_fluid_layer.inputs + parent_param_attr = parent_fluid_layer.param_attr + parent_param_attr['param_attr'] = string(node.layer_name + + '_scale') + parent_param_attr['bias_attr'] = string(node.layer_name + + '_offset') + if is_delete_node: + parent_node.fluid_code.clear() + node.fluid_code.clear() + node.fluid_code.add_layer("batch_norm", + inputs=input, + output=node, + param_attr=parent_param_attr) + + def merge_op_activation(self): + for node_name in self.graph.topo_sort: + node = self.graph.get_node(node_name) + if node.layer_type in self.activation_ops: + parent_node = self.graph.get_bottom_node(node, idx=0) + if parent_node.layer_type in self.layers_with_act: + is_delete_node = True if len( + parent_node.outputs) == 1 else False + parent_fluid_layer = parent_node.fluid_code.layers[0] + input = parent_fluid_layer.inputs + parent_param_attr = parent_fluid_layer.param_attr + parent_param_attr['act'] = string(node.layer_type.lower()) + op = parent_fluid_layer.op + if is_delete_node: + parent_node.fluid_code.clear() + node.fluid_code.clear() + node.fluid_code.add_layer(op, + inputs=input, + output=node, + param_attr=parent_param_attr) diff --git a/x2paddle/optimizer/tf_optimizer.py b/x2paddle/optimizer/tf_optimizer.py index 8da8ed4e726ae1a9d6ca7744a9dac7c6ee481cac..1980510147bb46079b6dea0f7f34af48477c2c56 100644 --- a/x2paddle/optimizer/tf_optimizer.py +++ b/x2paddle/optimizer/tf_optimizer.py @@ -14,7 +14,10 @@ # TODO useless node remove from x2paddle.op_mapper.tf_op_mapper import TFOpMapper +from x2paddle.core.fluid_code import Layer from x2paddle.core.util import * +import numpy +import copy as cp class TFOptimizer(object): @@ -26,10 +29,12 @@ class TFOptimizer(object): } layers_with_act = [ 'Conv2D', 'BiasAdd', 'DepthwiseConv2dNative', 'Conv2DBackpropInput', - 'FusedBatchNorm' + 'FusedBatchNorm', 'conv2d', 'elementwise_add', 'conv2d_transpose', + 'batch_norm' ] layers_with_bias = [ - 'Conv2D', 'DepthwiseConv2dNative', 'Conv2DBackpropInput' + 'Conv2D', 'DepthwiseConv2dNative', 'Conv2DBackpropInput', 'conv2d', + 'conv2d_transpose' ] def __init__(self, op_mapper): @@ -40,15 +45,62 @@ class TFOptimizer(object): for node_name in self.graph.topo_sort: if node_name in self.op_mapper.omit_nodes: node = self.graph.get_node(node_name) + if node is None: + continue omit_freq = self.op_mapper.omit_nodes.count(node_name) if len(node.outputs) <= omit_freq: node.fluid_code.clear() - # TODO activation merge + # remove node from graph + input_names = node.inputs + output_names = node.outputs + for in_name in input_names: + in_node = self.graph.get_node(in_name) + index = in_node.outputs.index(node_name) + del in_node.outputs[index] + for out_name in output_names: + out_node = self.graph.get_node(out_name) + index = out_node.inputs.index(node_name) + del out_node.inputs[index] + del self.graph.node_map[node_name] + + def strip_graph(self): + visited_nodes = set() + + def visit(node_name): + if node_name in visited_nodes: + return + visited_nodes.add(node_name) + input_names = self.graph.get_node(node_name).inputs + for in_name in input_names: + visit(in_name) + + for node_name in self.graph.output_nodes: + visit(node_name) + + for i, node_name in enumerate(self.graph.topo_sort): + if node_name not in visited_nodes: + node = self.graph.get_node(node_name) + if node is None: + continue + input_names = node.inputs + output_names = node.outputs + for in_name in input_names: + in_node = self.graph.get_node(in_name) + index = in_node.outputs.index(node_name) + del in_node.outputs[index] + for out_name in output_names: + out_node = self.graph.get_node(out_name) + index = out_node.inputs.index(node_name) + del out_node.inputs[index] + del self.graph.node_map[node_name] + def merge_activation(self): act_nodes = list() for node_name in self.graph.topo_sort: node = self.graph.get_node(node_name) + if node is None: + continue if node.layer_type in self.activation_ops: act_nodes.append(node_name) @@ -65,16 +117,22 @@ class TFOptimizer(object): continue if len(input.outputs) != 1: continue - input.fluid_code.layers[-1].param_attr['act'] = string( + index = -1 + for i in range(len(input.fluid_code.layers)): + if input.fluid_code.layers[i].op in self.layers_with_act: + index = i + break + input.fluid_code.layers[index].param_attr['act'] = string( self.activation_ops[node.layer_type]) input.fluid_code.layers[-1].output = node.fluid_code.layers[ 0].output self.graph.remove_node(act_node_name) - # TODO bias merge def merge_bias(self): for node_name in self.graph.topo_sort: node = self.graph.get_node(node_name) + if node is None: + continue if node.layer_type == "BiasAdd": input = self.graph.get_node(node.inputs[0]) if input.layer_type not in self.layers_with_bias: @@ -87,21 +145,518 @@ class TFOptimizer(object): if 'act' in node.fluid_code.layers[-1].param_attr: bias_with_act = True layer_with_act = False + index = -1 + for i in range(len(input.fluid_code.layers)): + if input.fluid_code.layers[i].op in self.layers_with_bias: + index = i + break if 'act' in input.fluid_code.layers[ - -1].param_attr and input.fluid_code.layers[ - -1].param_attr['act'] is not None: + index].param_attr and input.fluid_code.layers[ + index].param_attr['act'] is not None: layer_with_act = True if bias_with_act and layer_with_act: continue - if not input.fluid_code.layers[-1].param_attr['bias_attr']: + if not input.fluid_code.layers[index].param_attr['bias_attr']: bias_name = node.inputs[1] - input.fluid_code.layers[-1].param_attr[ + input.fluid_code.layers[index].param_attr[ 'bias_attr'] = string(bias_name) input.fluid_code.layers[-1].output = node.fluid_code.layers[ 0].output if bias_with_act: - input.fluid_code.layers[-1].param_attr[ + input.fluid_code.layers[index].param_attr[ 'act'] = node.fluid_code.layers[-1].param_attr[ 'act'] node.fluid_code.clear() + self.graph.remove_node(node.layer_name) + + def remove_transpose(self): + graph_copy = cp.deepcopy(self.graph) + nhwc_insensitive_ops = [ + 'Relu', 'Relu6', 'Abs', 'Sigmoid', 'Exp', 'Rsqrt', 'swish_f32', + 'LeakyRelu', 'Cast' + ] + elementwise_ops = [ + 'Sub', 'Add', 'RealDiv', 'Maximum', 'Mul', 'FloorDiv', + 'GreaterEqual' + ] + for node_name in self.graph.topo_sort: + node = graph_copy.get_node(node_name) + if node is None: + continue + if node.layer_type in nhwc_insensitive_ops: + graph_copy.remove_node(node_name) + + optimize_ops = [ + 'Conv2D', 'MaxPool', 'FusedBatchNorm', 'DepthwiseConv2dNative', + 'AvgPool', 'Pad', 'Conv2DBackpropInput', 'ResizeNearestNeighbor', + 'ResizeBilinear', "Placeholder" + ] + + for node_name in self.graph.topo_sort: + node = graph_copy.get_node(node_name) + if node is None: + continue + if node.layer_type in elementwise_ops: + is_nhwc = True + for in_name in node.inputs: + in_node = graph_copy.get_node(in_name) + if hasattr(in_node, "is_nhwc"): + if not in_node.is_nhwc: + is_nhwc = False + else: + if len(in_node.fluid_code.layers) < 2: + is_nhwc = False + continue + if in_node.fluid_code.layers[ + -1].op != "transpose" or in_node.fluid_code.layers[ + -1].param_attr["perm"] != [0, 2, 3, 1]: + is_nhwc = False + continue + node.is_nhwc = is_nhwc + + for i in range(len(self.graph.topo_sort)): + node_name = self.graph.topo_sort[-1 * i - 1] + node = graph_copy.get_node(node_name) + if node is None: + continue + if node.layer_type in elementwise_ops: + can_be_removed = True + if len(node.fluid_code.layers) > 1: + can_be_removed = False + if not node.is_nhwc: + can_be_removed = False + for out_name in node.outputs: + out_node = graph_copy.get_node(out_name) + if hasattr(out_node, "is_nhwc"): + if not out_node.is_nhwc: + can_be_removed = False + else: + if len(out_node.fluid_code.layers) < 2: + can_be_removed = False + break + if out_node.fluid_code.layers[ + 0].op != "transpose" or out_node.fluid_code.layers[ + 0].param_attr["perm"] != [0, 3, 1, 2]: + can_be_removed = False + break + node.can_be_removed = can_be_removed + + for node_name in self.graph.topo_sort: + node = graph_copy.get_node(node_name) + if node is None: + continue + if node.layer_type in optimize_ops: + if node.fluid_code.layers[ + -1].op != "transpose" or node.fluid_code.layers[ + -1].param_attr["perm"] != [0, 2, 3, 1]: + continue + can_be_removed = True + output_names = node.outputs + for out_name in output_names: + out_node = graph_copy.get_node(out_name) + if hasattr(out_node, "can_be_removed"): + if not out_node.can_be_removed: + can_be_removed = False + break + elif out_node.fluid_code.layers[ + 0].op != "transpose" or out_node.fluid_code.layers[ + 0].param_attr["perm"] != [0, 3, 1, 2]: + can_be_removed = False + break + if can_be_removed and len(node.fluid_code.layers) > 1: + true_node = self.graph.get_node(node_name) + if true_node.layer_type == "Placeholder": + index = self.graph.input_nodes.index( + true_node.fluid_code.layers[-2].output) + if isinstance(true_node.fluid_code.layers[-1].output, + str): + self.graph.input_nodes[ + index] = true_node.fluid_code.layers[-1].output + else: + self.graph.input_nodes[ + index] = true_node.fluid_code.layers[ + -1].output.layer_name + true_node.fluid_code.layers[ + -2].output = true_node.fluid_code.layers[-1].output + node.removed = True + del true_node.fluid_code.layers[-1] + for out_name in output_names: + out_node = self.graph.get_node(out_name) + if out_node.layer_type in elementwise_ops: + continue + out_node.fluid_code.layers[ + 1].inputs = out_node.fluid_code.layers[0].inputs + del out_node.fluid_code.layers[0] + + for node_name in self.graph.topo_sort: + node = graph_copy.get_node(node_name) + if node is None: + continue + if node.layer_type in elementwise_ops: + if not node.can_be_removed: + true_node = self.graph.get_node(node_name) + for i, in_name in enumerate(node.inputs): + in_node = graph_copy.get_node(in_name) + if hasattr(in_node, "is_nhwc") and in_node.is_nhwc: + if i == 0: + l = Layer() + l.op = "transpose" + l.inputs = true_node.fluid_code.layers[ + 0].inputs["x"] + l.param_attr = {"perm": [0, 2, 3, 1]} + l.output = "nhwc_" + l.inputs.layer_name + true_node.fluid_code.layers[0].inputs[ + "x"] = l.output + true_node.fluid_code.layers.insert(0, l) + elif i == 1: + l = Layer() + l.op = "transpose" + l.inputs = true_node.fluid_code.layers[ + 0].inputs["y"] + l.param_attr = {"perm": [0, 2, 3, 1]} + l.output = "nhwc_" + l.inputs.layer_name + true_node.fluid_code.layers[0].inputs[ + "y"] = l.output + true_node.fluid_code.layers.insert(0, l) + else: + raise Exception("Unexpected situation happend") + continue + else: + for out_name in node.outputs: + out_node = self.graph.get_node(out_name) + if out_node.layer_type not in elementwise_ops: + assert out_node.fluid_code.layers[ + 0].op == "transpose", "unexpected situation happend" + out_node.fluid_code.layers[ + 1].inputs = out_node.fluid_code.layers[0].inputs + del out_node.fluid_code.layers[0] + + def make_nchw_input_output(self): + for i, name in enumerate(self.graph.input_nodes): + node = self.graph.get_node(name) + if len(node.out_shapes[0]) == 4 and node.tf_data_format == "NHWC": + shape = node.fluid_code.layers[0].param_attr["shape"] + shape = [shape[i] for i in [0, 3, 1, 2]] + node.fluid_code.layers[0].param_attr["shape"] = shape + node.fluid_code.layers[0].output = "nhwc_" + name + attr = {"perm": [0, 2, 3, 1]} + node.fluid_code.add_layer("transpose", + inputs="nhwc_" + name, + output=node, + param_attr=attr) + self.graph.input_nodes[i] = "nhwc_" + name + for i, name in enumerate(self.graph.output_nodes): + node = self.graph.get_node(name) + if node.layer_type != "transpose": + if node.fluid_code.layers[-1].op == "transpose": + node.fluid_code.layers[-2].output = name + del node.fluid_code.layers[-1] + + def merge_batch_norm(self): + for i, name in enumerate(self.graph.topo_sort): + node = self.graph.get_node(name) + if node is None: + continue + is_batch_norm = True + if node.layer_type == "Add": + in_nodes0 = [ + self.graph.get_node(in_name) for in_name in node.inputs + ] + if in_nodes0[0].layer_type != "Mul" or in_nodes0[ + 1].layer_type != "Sub": + is_batch_norm = False + continue + + in_nodes1 = [ + self.graph.get_node(in_name) + for in_name in in_nodes0[0].inputs + ] + in_nodes2 = [ + self.graph.get_node(in_name) + for in_name in in_nodes0[1].inputs + ] + if len(in_nodes1[0].out_shapes[0]) != 4: + is_batch_norm = False + continue + if in_nodes1[1].layer_type != "Mul": + is_batch_norm = False + continue + + if in_nodes2[0].layer_type != "Const" or in_nodes2[ + 1].layer_type != "Mul": + is_batch_norm = False + continue + + in_nodes3 = [ + self.graph.get_node(in_name) + for in_name in in_nodes1[1].inputs + ] + if in_nodes3[0].layer_type != "Rsqrt" or in_nodes3[ + 1].layer_type != "Const": + is_batch_norm = False + continue + + in_nodes4 = [ + self.graph.get_node(in_name) + for in_name in in_nodes2[1].inputs + ] + if in_nodes4[0].layer_type != "Const" or in_nodes4[ + 1].layer_name != in_nodes1[1].layer_name: + is_batch_norm = False + continue + + in_nodes5 = self.graph.get_node(in_nodes3[0].inputs[0]) + if in_nodes5.layer_type != "Add": + is_batch_norm = False + continue + + in_nodes6 = [ + self.graph.get_node(in_name) for in_name in in_nodes5.inputs + ] + if in_nodes6[0].layer_type != "Const" or in_nodes6[ + 1].layer_type != "Const": + is_batch_norm = False + continue + + if len(in_nodes0[0].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes0[1].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes1[1].outputs) != 2: + is_batch_norm = False + continue + if len(in_nodes2[0].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes2[1].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes3[0].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes3[1].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes4[0].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes5.outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes6[0].outputs) != 1: + is_batch_norm = False + continue + if len(in_nodes6[1].outputs) != 1: + is_batch_norm = False + continue + + conv_shape = in_nodes1[0].out_shapes[0] + if conv_shape[3] < 0: + is_batch_norm = False + continue + + # moving_variance + if in_nodes6[0].value.size != conv_shape[3]: + is_batch_norm = False + continue + + # epsilon + if in_nodes6[1].value.size != 1: + is_batch_norm = False + continue + + # gamma + if in_nodes3[1].value.size != conv_shape[3]: + is_batch_norm = False + continue + + # moving_mean + if in_nodes4[0].value.size != conv_shape[3]: + is_batch_norm = False + continue + + # beta + if in_nodes2[0].value.size != conv_shape[3]: + is_batch_norm = False + continue + + if is_batch_norm: + index = in_nodes1[0].outputs.index(in_nodes0[0].layer_name) + del in_nodes1[0].outputs[index] + node.layer_type = "FusedBatchNorm" + node.inputs = [in_nodes1[0].layer_name] + node.outputs = node.outputs + act = node.fluid_code.layers[-1].param_attr.get("act", None) + node.fluid_code.clear() + attr = { + "epsilon": in_nodes6[1].value, + "param_attr": string(in_nodes3[1].layer_name), + "bias_attr": string(in_nodes2[0].layer_name), + "moving_mean_name": string(in_nodes4[0].layer_name), + "moving_variance_name": string(in_nodes6[0].layer_name), + "is_test": True, + "act": act + } + + node.fluid_code.add_layer( + "batch_norm", + inputs=in_nodes1[0].fluid_code.layers[-1].output, + output=node, + param_attr=attr) + + del self.graph.node_map[in_nodes0[0].layer_name] + del self.graph.node_map[in_nodes0[1].layer_name] + del self.graph.node_map[in_nodes1[1].layer_name] + del self.graph.node_map[in_nodes2[1].layer_name] + del self.graph.node_map[in_nodes3[0].layer_name] + del self.graph.node_map[in_nodes4[0].layer_name] + del self.graph.node_map[in_nodes5.layer_name] + + def merge_prelu(self): + for i, name in enumerate(self.graph.topo_sort): + node = self.graph.get_node(name) + if node is None: + continue + is_prelu = True + if node.layer_type == "Add": + in_nodes0 = [ + self.graph.get_node(in_name) for in_name in node.inputs + ] + if in_nodes0[0].layer_type != "Relu" or in_nodes0[ + 1].layer_type != "Mul": + is_prelu = False + continue + if len(in_nodes0[0].outputs) != 1 or len( + in_nodes0[1].outputs) != 1: + is_prelu = False + continue + + in_nodes1 = self.graph.get_node(in_nodes0[0].inputs[0]) + in_nodes2 = [ + self.graph.get_node(in_name) + for in_name in in_nodes0[1].inputs + ] + if in_nodes2[1].layer_type != "Const" or numpy.fabs( + in_nodes2[1].value - 0.5) > 1e-06: + is_prelu = False + continue + if in_nodes2[0].layer_type != "Mul": + is_prelu = False + continue + if len(in_nodes2[1].outputs) != 1 or len( + in_nodes2[0].outputs) != 1: + is_prelu = False + continue + + in_nodes3 = [ + self.graph.get_node(in_name) + for in_name in in_nodes2[0].inputs + ] + if in_nodes3[0].layer_type != "Const" or in_nodes3[ + 1].layer_type != "Sub": + is_prelu = False + continue + if len(in_nodes3[0].outputs) != 1 or len( + in_nodes3[1].outputs) != 1: + is_prelu = False + continue + + in_nodes4 = [ + self.graph.get_node(in_name) + for in_name in in_nodes3[1].inputs + ] + if in_nodes4[0].layer_name != in_nodes1.layer_name or in_nodes4[ + 1].layer_type != "Abs": + is_prelu = False + continue + if len(in_nodes4[1].outputs) != 1: + is_prelu = False + continue + + in_nodes5 = self.graph.get_node(in_nodes4[1].inputs[0]) + if in_nodes5.layer_name != in_nodes1.layer_name: + is_prelu = False + continue + + if len(in_nodes0[0].outputs) != 1: + is_prelu = false + continue + if len(in_nodes0[1].outputs) != 1: + is_prelu = False + continue + if len(in_nodes1.outputs) < 3: + is_prelu = False + continue + if len(in_nodes2[0].outputs) != 1: + is_prelu = false + continue + if len(in_nodes2[1].outputs) != 1: + is_prelu = False + continue + if len(in_nodes3[0].outputs) != 1: + is_prelu = False + continue + if len(in_nodes3[1].outputs) != 1: + is_prelu = false + continue + if len(in_nodes4[1].outputs) != 1: + is_prelu = False + continue + + mode = None + in_shape = in_nodes1.out_shapes[0] + if in_shape == list(in_nodes3[0].value.shape): + mode = "element" + elif len(in_nodes3[0].value.shape) == 0: + mode = "all" + elif len(in_nodes3[0].value.shape + ) == 1 and in_nodes3[0].value.shape[0] == 1: + mode = "all" + elif len(in_shape) == 4 and len( + in_nodes3[0].value.shape + ) == 1 and in_nodes3[0].value.shape[0] == in_shape[-1]: + mode = "channel" + weight = self.op_mapper.weights[in_nodes3[0].layer_name] + weight = numpy.expand_dims(weight, 0) + weight = numpy.expand_dims(weight, 2) + weight = numpy.expand_dims(weight, 3) + self.op_mapper.weights[in_nodes3[0].layer_name] = weight + in_nodes3[0].fluid_code.layers[0].param_attr["shape"] = [ + 1, in_shape[-1], 1, 1 + ] + else: + is_prelu = False + continue + + if is_prelu: + index = in_nodes1.outputs.index(in_nodes0[0].layer_name) + del in_nodes1.outputs[index] + index = in_nodes1.outputs.index(in_nodes3[1].layer_name) + del in_nodes1.outputs[index] + index = in_nodes1.outputs.index(in_nodes4[1].layer_name) + del in_nodes1.outputs[index] + + node.layer_type = "Prelu" + node.inputs = [in_nodes1.layer_name] + node.outputs = node.outputs + act = node.fluid_code.layers[-1].param_attr.get("act", None) + node.fluid_code.clear() + attr = { + "mode": string(mode), + "param_attr": string(in_nodes3[0].layer_name) + } + + node.fluid_code.add_layer( + "prelu", + inputs=in_nodes1.fluid_code.layers[-1].output, + output=node, + param_attr=attr) + del self.graph.node_map[in_nodes0[0].layer_name] + del self.graph.node_map[in_nodes0[1].layer_name] + del self.graph.node_map[in_nodes2[0].layer_name] + del self.graph.node_map[in_nodes2[1].layer_name] + del self.graph.node_map[in_nodes3[1].layer_name] + del self.graph.node_map[in_nodes4[1].layer_name] diff --git a/x2paddle_model_zoo.md b/x2paddle_model_zoo.md index 3728862572da7bda9c98b2ca4ed4008778e04064..b7531d296cb674e119523246a203e18b76b2e37d 100644 --- a/x2paddle_model_zoo.md +++ b/x2paddle_model_zoo.md @@ -1,33 +1,52 @@ -目前X2Paddle支持40+的TensorFlow OP,40+的Caffe Layer,覆盖了大部分CV分类模型常用的操作。我们在如下模型列表中测试了X2Paddle的转换 +# X2Paddle模型测试库 +> 目前X2Paddle支持40+的TensorFlow OP,40+的Caffe Layer,覆盖了大部分CV分类模型常用的操作。我们在如下模型列表中测试了X2Paddle的转换。 -# TensorFlow +**注:** 受限于不同框架的差异,部分模型可能会存在目前无法转换的情况,如TensorFlow中包含控制流的模型,NLP模型等。对于CV常见的模型,如若您发现无法转换或转换失败,存在较大diff等问题,欢迎通过[ISSUE反馈](https://github.com/PaddlePaddle/X2Paddle/issues/new)的方式告知我们(模型名,代码实现或模型获取方式),我们会及时跟进:) -| 模型 | 代码 | -|------|----------| -| SqueezeNet | [code](https://github.com/tensorflow/tpu/blob/master/models/official/squeezenet/squeezenet_model.py)| -| MobileNet_V1 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md) | -| MobileNet_V2 | [code](https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet) | -| ShuffleNet | [code](https://github.com/TropComplique/shufflenet-v2-tensorflow) | -| mNASNet | [code](https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet) | -| EfficientNet | [code](https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet) | -| Inception_V4 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v4.py) | -| Inception_ResNet_V2 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_resnet_v2.py) | -| VGG16 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/vgg.py) | -| ResNet_V1_101 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v1.py) | -| ResNet_V2_101 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/resnet_v2.py) | +## TensorFlow + +| 模型 | 代码 | 备注 | +|------|----------|------| +| SqueezeNet | [code](https://github.com/tensorflow/tpu/blob/master/models/official/squeezenet/squeezenet_model.py)|-| +| MobileNet_V1 | [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) |-| +| MobileNet_V2 | [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) |-| +| ShuffleNet | [code](https://github.com/TropComplique/shufflenet-v2-tensorflow) |-| +| mNASNet | [code](https://github.com/tensorflow/tpu/tree/master/models/official/mnasnet) |-| +| EfficientNet | [code](https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet) |-| +| Inception_V4 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_v4.py) |-| +| Inception_ResNet_V2 | [code](https://github.com/tensorflow/models/blob/master/research/slim/nets/inception_resnet_v2.py) |-| +| VGG16 | [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) |-| +| ResNet_V1_101 | [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) |-| +| ResNet_V2_101 | [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) |-| +| UNet | [code1](https://github.com/jakeret/tf_unet )/[code2](https://github.com/lyatdawn/Unet-Tensorflow) |-| +|MTCNN | [code](https://github.com/AITTSMD/MTCNN-Tensorflow) |-| +|YOLO-V3| [code](https://github.com/YunYang1994/tensorflow-yolov3) | 转换需要关闭NHWC->NCHW的优化,见[文档Q2](FAQ.md) | +|Inception_V4| [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) | - | +|Inception_ResNet_V2| [code](https://github.com/tensorflow/models/tree/master/research/slim/nets) | - | -# Caffe +## Caffe | 模型 | 代码 | |-------|--------| | SqueezeNet | [code](https://github.com/DeepScale/SqueezeNet/tree/master/SqueezeNet_v1.1) | | MobileNet_V1 | [code](https://github.com/shicai/MobileNet-Caffe) | | MobileNet_V2 | [code](https://github.com/shicai/MobileNet-Caffe) | -| ShuffleNet | [code](https://github.com/miaow1988/ShuffleNet_V2_pytorch_caffe/releases/tag/v0.1.0) | +| ShuffleNet_v2 | [code](https://github.com/miaow1988/ShuffleNet_V2_pytorch_caffe/releases/tag/v0.1.0) | | mNASNet | [code](https://github.com/LiJianfei06/MnasNet-caffe) | | MTCNN | [code](https://github.com/kpzhang93/MTCNN_face_detection_alignment/tree/master/code/codes/MTCNNv1/model) | +| Mobilenet_SSD | [code](https://github.com/chuanqi305/MobileNet-SSD) | +| ResNet18 | [code](https://github.com/HolmesShuan/ResNet-18-Caffemodel-on-ImageNet/blob/master/deploy.prototxt) | +| ResNet50 | [code](https://github.com/soeaver/caffe-model/blob/master/cls/resnet/deploy_resnet50.prototxt) | +| Unet | [code](https://github.com/jolibrain/deepdetect/blob/master/templates/caffe/unet/deploy.prototxt) | +| VGGNet | [code](https://gist.github.com/ksimonyan/211839e770f7b538e2d8#file-vgg_ilsvrc_16_layers_deploy-prototxt) | +| FaceDetection | [code](https://github.com/ShiqiYu/libfacedetection/blob/master/models/caffe/yufacedetectnet-open-v1.prototxt) | + + + -# ONNX + +## ONNX +**注:** 部分模型来源于PyTorch,PyTorch的转换可参考[pytorch_to_onnx.md](pytorch_to_onnx.md) | 模型 | 来源 | operator version| |-------|--------|---------| @@ -47,19 +66,3 @@ | EfficientNet | [pytorch(personal practice)](https://github.com/rwightman/gen-efficientnet-pytorch) |9| | SqueezeNet | [onnx official](https://s3.amazonaws.com/download.onnx/models/opset_9/squeezenet.tar.gz) |9| -目前onnx2paddle主要支持onnx operator version 9; -如何将torchvison或者个人开发者写的pytroch model转换成onnx model: -``` -import torch -import torchvision - -#根据不同模型调整输入的shape -dummy_input = torch.randn(1, 3, 224, 224) - -#预训练后的pytorch model -resnet18 = torchvision.models.resnet18(pretrained=True) - -#"resnet18.onnx"为onnx model的存储路径 -torch.onnx.export(resnet18, dummy_input, "resnet18.onnx",verbose=True) - -```