def build()

in mmdnn/conversion/coreml/coreml_graph.py [0:0]


    def build(self):
        self.input_layers = list()

        # input layer

        for layer in self.model.description.input:
            self.layer_map[layer.name] = CoremlGraphNode(layer)
            self.layer_name_map[layer.name] = layer.name


        model_type = self.model.WhichOneof('Type')
        if model_type == 'neuralNetworkClassifier':
            # build each layer
            for layer in self.model.neuralNetworkClassifier.layers:
                self.layer_map[layer.name] = CoremlGraphNode(layer)
                self.layer_name_map[layer.name] = layer.name

            # if A.output == B.input, then make the connection: A -> B
            for layerA in self.model.neuralNetworkClassifier.layers:
                for layerB in self.model.neuralNetworkClassifier.layers:
                    for A in layerA.output:
                        for B in layerB.input:
                            if A == B :
                                # print('{0:20}->     {1:20}'.format(layerA.name, layerB.name))
                                self._make_connection(layerA.name, layerB.name)

            # if A.name == B.input, then make the connection: A -> B, here A is the input
            for layerA in self.model.description.input:
                for layerB in self.model.neuralNetworkClassifier.layers:
                    for B in layerB.input:
                        if layerA.name == B:
                            self._make_connection(layerA.name, layerB.name)
        elif model_type == 'neuralNetwork':
            # build each layer
            for layer in self.model.neuralNetwork.layers:
                self.layer_map[layer.name] = CoremlGraphNode(layer)
                self.layer_name_map[layer.name] = layer.name

            # if A.output == B.input, then make the connection: A -> B
            for layerA in self.model.neuralNetwork.layers:
                for layerB in self.model.neuralNetwork.layers:
                    for A in layerA.output:
                        for B in layerB.input:
                            if A == B :
                                # print('{0:20}->     {1:20}'.format(layerA.name, layerB.name))
                                self._make_connection(layerA.name, layerB.name)
            # if A.name == B.input, then make the connection: A -> B, here A is the input
            for layerA in self.model.description.input:
                for layerB in self.model.neuralNetwork.layers:
                    for B in layerB.input:
                        if layerA.name == B:
                            self._make_connection(layerA.name, layerB.name)
        elif model_type == 'neuralNetworkRegressor':
            # build each layer
            for layer in self.model.neuralNetworkRegressor.layers:
                self.layer_map[layer.name] = CoremlGraphNode(layer)
                self.layer_name_map[layer.name] = layer.name

            # if A.output == B.input, then make the connection: A -> B
            for layerA in self.model.neuralNetworkRegressor.layers:
                for layerB in self.model.neuralNetworkRegressor.layers:
                    for A in layerA.output:
                        for B in layerB.input:
                            if A == B :
                                # print('{0:20}->     {1:20}'.format(layerA.name, layerB.name))
                                self._make_connection(layerA.name, layerB.name)
            # if A.name == B.input, then make the connection: A -> B, here A is the input
            for layerA in self.model.description.input:
                for layerB in self.model.neuralNetworkRegressor.layers:
                    for B in layerB.input:
                        if layerA.name == B:
                            self._make_connection(layerA.name, layerB.name)
        else:
            assert False



            # The information of the layer
        super(CoremlGraph, self).build()