code: def get_default_sess_config(mem_fraction=0.99):
      """
      Return a tf.ConfigProto to use as default session config.
      You can modify the returned config to fit your needs.
  
      Args:
          mem_fraction(float): see the `per_process_gpu_memory_fraction` option
              in TensorFlow's GPUOptions protobuf:
              https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/config.proto
  
      Returns:
          tf.ConfigProto: the config to use.
      """
      conf = tfv1.ConfigProto()
  
      conf.allow_soft_placement = True
      # conf.log_device_placement = True
  
      conf.intra_op_parallelism_threads = 1
      conf.inter_op_parallelism_threads = 0
      # TF benchmark use cpu_count() - gpu_thread_count(), e.g. 80 - 8 * 2
      # Didn't see much difference.
  
      conf.gpu_options.per_process_gpu_memory_fraction = mem_fraction
  
      # This hurt performance of large data pipeline:
      # https://github.com/tensorflow/benchmarks/commit/1528c46499cdcff669b5d7c006b7b971884ad0e6
      # conf.gpu_options.force_gpu_compatible = True
  
      conf.gpu_options.allow_growth = True
  
      # from tensorflow.core.protobuf import rewriter_config_pb2 as rwc
      # conf.graph_options.rewrite_options.memory_optimization = \
      #     rwc.RewriterConfig.HEURISTICS
  
      # May hurt performance?
      # conf.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1
      # conf.graph_options.place_pruned_graph = True
      return conf
  
file_path: tensorpack/tensorpack/tfutils/common.py
imports: import tensorflow
  from ..compat import tfv1
  from ..utils.argtools import graph_memoized
  from .collect_env import collect_env_info
label_desc: Use image node_id 1 for calling a global function with example usage: get_default_sess_config(mem_fraction) and returns: conf