Ejemplo n.º 1
0
 def ShouldRunTest(self, run_params):
     if trt_convert.get_linked_tensorrt_version()[0] < 5:
         return False
     # Only test static engine mode, with or without calibration.
     return (trt_test.IsQuantizationMode(run_params.precision_mode)
             and not run_params.use_optimizer
             and not run_params.dynamic_engine)
    def _GetConfigProto(self, run_params, graph_state):
        """Get config proto based on specific settings."""
        if graph_state != GraphState.ORIGINAL and run_params.use_optimizer:
            conversion_params = self.GetConversionParams(run_params)
            rewriter_cfg = trt_convert.tensorrt_rewriter_config(
                conversion_params.rewriter_config,
                conversion_params.max_batch_size,
                conversion_params.max_workspace_size_bytes,
                conversion_params.precision_mode,
                conversion_params.minimum_segment_size,
                conversion_params.is_dynamic_op,
                conversion_params.maximum_cached_engines,
                conversion_params.cached_engine_batch_sizes)

            graph_options = config_pb2.GraphOptions(
                rewrite_options=rewriter_cfg)
        else:
            graph_options = config_pb2.GraphOptions()

        gpu_options = config_pb2.GPUOptions()
        gpu_options.allow_growth = True
        if trt_convert.get_linked_tensorrt_version()[0] == 3:
            gpu_options.per_process_gpu_memory_fraction = 0.50

        config = config_pb2.ConfigProto(gpu_options=gpu_options,
                                        graph_options=graph_options)
        return config
Ejemplo n.º 3
0
  def testEval(self):
    if not trt_convert.is_tensorrt_enabled():
      return
    model_dir = test.test_src_dir_path('contrib/tensorrt/test/testdata')

    accuracy_tf_native = self._Run(
        is_training=False,
        use_trt=False,
        batch_size=128,
        num_epochs=None,
        model_dir=model_dir)['accuracy']
    logging.info('accuracy_tf_native: %f', accuracy_tf_native)
    self.assertAllClose(accuracy_tf_native, 0.9662)

    if trt_convert.get_linked_tensorrt_version()[0] < 5:
      return

    accuracy_tf_trt = self._Run(
        is_training=False,
        use_trt=True,
        batch_size=128,
        num_epochs=None,
        model_dir=model_dir)['accuracy']
    logging.info('accuracy_tf_trt: %f', accuracy_tf_trt)
    self.assertAllClose(accuracy_tf_trt, 0.9677)
  def _GetConfigProto(self, run_params, graph_state):
    """Get config proto based on specific settings."""
    if graph_state != GraphState.ORIGINAL and run_params.use_optimizer:
      conversion_params = self.GetConversionParams(run_params)
      rewriter_cfg = trt_convert.tensorrt_rewriter_config(
          conversion_params.rewriter_config, conversion_params.max_batch_size,
          conversion_params.max_workspace_size_bytes,
          conversion_params.precision_mode,
          conversion_params.minimum_segment_size,
          conversion_params.is_dynamic_op,
          conversion_params.maximum_cached_engines,
          conversion_params.cached_engine_batch_sizes)

      graph_options = config_pb2.GraphOptions(rewrite_options=rewriter_cfg)
    else:
      graph_options = config_pb2.GraphOptions()

    gpu_options = config_pb2.GPUOptions()
    gpu_options.allow_growth = True
    if trt_convert.get_linked_tensorrt_version()[0] == 3:
      gpu_options.per_process_gpu_memory_fraction = 0.50

    config = config_pb2.ConfigProto(
        gpu_options=gpu_options, graph_options=graph_options)
    return config
  def _GetConfigProto(self,
                      params,
                      use_optimizer,
                      precision_mode=None,
                      is_dynamic_op=None):
    """Get config proto based on specific settings."""
    if use_optimizer:
      rewriter_cfg = rewriter_config_pb2.RewriterConfig()
      rewriter_cfg.optimizers.extend(["constfold", "layout"])
      custom_op = rewriter_cfg.custom_optimizers.add()
      custom_op.name = "TensorRTOptimizer"
      custom_op.parameter_map["minimum_segment_size"].i = 3
      custom_op.parameter_map["max_batch_size"].i = max(
          [dims[0] for dims in params.input_dims])
      custom_op.parameter_map["is_dynamic_op"].b = is_dynamic_op
      custom_op.parameter_map["max_workspace_size_bytes"].i = 1 << 25
      custom_op.parameter_map["precision_mode"].s = self._ToBytes(
          precision_mode)
      graph_options = config_pb2.GraphOptions(rewrite_options=rewriter_cfg)
    else:
      graph_options = config_pb2.GraphOptions()

    gpu_options = config_pb2.GPUOptions()
    gpu_options.allow_growth = True
    if trt_convert.get_linked_tensorrt_version()[0] == 3:
      gpu_options.per_process_gpu_memory_fraction = 0.50

    config = config_pb2.ConfigProto(
        gpu_options=gpu_options, graph_options=graph_options)
    return config
  def _GetConfigProto(self, run_params, graph_state):
    """Get config proto based on specific settings."""
    if graph_state != GraphState.ORIGINAL and run_params.use_optimizer:
      rewriter_cfg = rewriter_config_pb2.RewriterConfig()
      rewriter_cfg.optimizers.extend(["constfold", "layout"])
      custom_op = rewriter_cfg.custom_optimizers.add()
      custom_op.name = "TensorRTOptimizer"
      trt_params = self.GetConversionParams(run_params)
      custom_op.parameter_map["max_batch_size"].i = trt_params.max_batch_size
      custom_op.parameter_map["max_workspace_size_bytes"].i = (
          trt_params.max_workspace_size_bytes)
      custom_op.parameter_map["precision_mode"].s = trt_params.precision_mode
      custom_op.parameter_map["minimum_segment_size"].i = (
          trt_params.minimum_segment_size)
      custom_op.parameter_map["is_dynamic_op"].b = trt_params.is_dynamic_op
      custom_op.parameter_map["maximum_cached_engines"].i = (
          trt_params.maximum_cached_engines)
      if trt_params.cached_engine_batches:
        custom_op.parameter_map["cached_engine_batches"].list.i.extend(
            trt_params.cached_engine_batches)

      graph_options = config_pb2.GraphOptions(rewrite_options=rewriter_cfg)
    else:
      graph_options = config_pb2.GraphOptions()

    gpu_options = config_pb2.GPUOptions()
    gpu_options.allow_growth = True
    if trt_convert.get_linked_tensorrt_version()[0] == 3:
      gpu_options.per_process_gpu_memory_fraction = 0.50

    config = config_pb2.ConfigProto(
        gpu_options=gpu_options, graph_options=graph_options)
    return config
Ejemplo n.º 7
0
  def testEval(self):
    if not trt_convert.is_tensorrt_enabled():
      return
    model_dir = test.test_src_dir_path('contrib/tensorrt/test/testdata')

    accuracy_tf_native = self._Run(
        is_training=False,
        use_trt=False,
        batch_size=128,
        num_epochs=None,
        model_dir=model_dir)['accuracy']
    logging.info('accuracy_tf_native: %f', accuracy_tf_native)
    self.assertAllClose(0.9662, accuracy_tf_native, rtol=1e-3, atol=1e-3)

    if trt_convert.get_linked_tensorrt_version()[0] < 5:
      return

    accuracy_tf_trt = self._Run(
        is_training=False,
        use_trt=True,
        batch_size=128,
        num_epochs=None,
        model_dir=model_dir)['accuracy']
    logging.info('accuracy_tf_trt: %f', accuracy_tf_trt)
    self.assertAllClose(0.9675, accuracy_tf_trt, rtol=1e-3, atol=1e-3)
Ejemplo n.º 8
0
    def _GetConfigProto(self, run_params, graph_state):
        """Get config proto based on specific settings."""
        if graph_state != GraphState.ORIGINAL and run_params.use_optimizer:
            rewriter_cfg = rewriter_config_pb2.RewriterConfig()
            rewriter_cfg.optimizers.extend(["constfold", "layout"])
            custom_op = rewriter_cfg.custom_optimizers.add()
            custom_op.name = "TensorRTOptimizer"
            trt_params = self.GetConversionParams(run_params)
            custom_op.parameter_map[
                "max_batch_size"].i = trt_params.max_batch_size
            custom_op.parameter_map["max_workspace_size_bytes"].i = (
                trt_params.max_workspace_size_bytes)
            custom_op.parameter_map[
                "precision_mode"].s = trt_params.precision_mode
            custom_op.parameter_map["minimum_segment_size"].i = (
                trt_params.minimum_segment_size)
            custom_op.parameter_map[
                "is_dynamic_op"].b = trt_params.is_dynamic_op
            custom_op.parameter_map["maximum_cached_engines"].i = (
                trt_params.maximum_cached_engines)
            if trt_params.cached_engine_batches:
                custom_op.parameter_map["cached_engine_batches"].list.i.extend(
                    trt_params.cached_engine_batches)

            graph_options = config_pb2.GraphOptions(
                rewrite_options=rewriter_cfg)
        else:
            graph_options = config_pb2.GraphOptions()

        gpu_options = config_pb2.GPUOptions()
        gpu_options.allow_growth = True
        if trt_convert.get_linked_tensorrt_version()[0] == 3:
            gpu_options.per_process_gpu_memory_fraction = 0.50

        config = config_pb2.ConfigProto(gpu_options=gpu_options,
                                        graph_options=graph_options)
        return config
Ejemplo n.º 9
0
 def ShouldRunTest(self, run_params):
   if trt_convert.get_linked_tensorrt_version()[0] < 5:
     return False
   # Test static/dynamic engine with/without calibration.
   return (trt_test.IsQuantizationMode(run_params.precision_mode) and
           not run_params.use_optimizer)