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)
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)
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)