示例#1
0
    def _convert_input_layers(self):
        """
        :rtype: None
        """
        for model_input in self._context.inputs:
            input_operation = self._context.graph.get_operation_by_name(
                model_input.name)
            shape = self._graph_helper.get_op_output_shape(input_operation)
            if None in shape:
                message = code_to_message.get_message(
                    'ERROR_TF_UNABLE_TO_RESOLVE_GRAPH_INPUT_DIMS')
                raise ConverterError(message(model_input.name))
            if model_input.shape != shape:
                message = code_to_message.get_message(
                    'ERROR_TF_UNEXPECTED_INPUT_SHAPE')
                raise ConverterError(message(model_input.shape, shape))

            self._logger.info(
                code_to_message.get_progress_message(
                    'INFO_TF_BUILDING_INPUT_LAYER')(input_operation.name,
                                                    shape))

            layer_name = str(input_operation.outputs[0].name)
            descriptor = InputLayerDescriptor(layer_name, [input_operation])
            self._input_descriptors.append(descriptor)
            self._ops.remove(input_operation)
            self._context.model.add_data_layer(descriptor.output_names[0],
                                               shape, 'rgb', 'rgb',
                                               model_input.type)
示例#2
0
    def _create_layer(self, layer_builder, descriptor):
        """
        :type descriptor: converters.tensorflow.common.LayerDescriptor
        :rtype: None
        """
        self._logger.info(
            code_to_message.get_progress_message(
                'INFO_ALL_BUILDING_LAYER_W_NODES')(
                    descriptor.layer_type,
                    [op.name for op in descriptor.child_ops]))

        inputs = self._topology_resolver.get_input_layers_for(descriptor)
        outputs = self._topology_resolver.get_output_layers_for(descriptor)
        layer_builder.build_layer(self._context, descriptor, inputs, outputs)
示例#3
0
 def convert(self, dlc_output_path, model_version, converter_command):
     """
     :type dlc_output_path: str
     :type model_version: str
     :type converter_command: str
     :rtype: None
     """
     self._graph_helper = GraphHelper(self._model.session, self._model,
                                      self._ops)
     self._topology_resolver = TopologyResolver()
     self._context = ConverterContext(self._model, snpe.modeltools.Model(),
                                      self._graph_helper,
                                      self._topology_resolver, self._logger)
     self._logger.info(
         code_to_message.get_progress_message('INFO_ALL_BUILDING_NETWORK'))
     self._convert_input_layers()
     self._convert_layers()
     self._set_model_version(model_version)
     self._context.model.set_converter_command(converter_command)
     self._context.model.save(dlc_output_path)