diff --git a/mace/python/tools/converter_tool/caffe_converter.py b/mace/python/tools/converter_tool/caffe_converter.py index 8ce0a0741d6b791aa16c4137b297521280e93109..3ff2fa231e2b461481a41c966b65831a78c955bc 100644 --- a/mace/python/tools/converter_tool/caffe_converter.py +++ b/mace/python/tools/converter_tool/caffe_converter.py @@ -324,12 +324,17 @@ class CaffeConverter(base_converter.ConverterInterface): global_pooling_arg.i = 1 def convert_ops(self): + layer_names = set() for layer in self._caffe_layers.layer: caffe_op = self._caffe_net.get_op(layer.name) if caffe_op not in self._skip_ops: + mace_check(layer.name not in layer_names, + "There is duplicate layer name '%s' in your model" + % layer.name) mace_check(layer.type in self._op_converters, "Mace does not support caffe op type %s yet" % layer.type) + layer_names.add(layer.name) self._op_converters[layer.type](caffe_op) def add_tensor(self, name, shape, data_type, value): diff --git a/mace/python/tools/converter_tool/shape_inference.py b/mace/python/tools/converter_tool/shape_inference.py index 9478a3e545f9dc203ea01f03b1d32a4452ad964b..da6541f499459532e9ead7b277cb1192a9b3fdd1 100644 --- a/mace/python/tools/converter_tool/shape_inference.py +++ b/mace/python/tools/converter_tool/shape_inference.py @@ -81,7 +81,8 @@ class ShapeInference(object): def infer_shape_general(self, op): if len(op.input) > 0: mace_check(op.input[0] in self._output_shape_cache, - "%s does not exist" % op.input[0]) + "Op %s input %s does not exist" + % (op.name, op.input[0])) input_shape = self._output_shape_cache[op.input[0]] self.add_output_shape(op, [input_shape])