docstr: Start PaddleHub-Serving with flask and gunicorn
docstr_tok: ["Start","PaddleHub-Serving","with","flask","and","gunicorn"]
code: def start_serving(self):
      """
      Start PaddleHub-Serving with flask and gunicorn
      """
      if self.args.use_gpu:
          if self.args.use_multiprocess:
              log.logger.warning(
                  "`use_multiprocess` will be ignored if specify `use_gpu`."
              )
          self.start_zmq_serving_with_args()
      else:
          if self.args.use_multiprocess:
              if platform.system() == "Windows":
                  log.logger.warning(
                      "Warning: Windows cannot use multiprocess working mode, PaddleHub Serving will switch to single process mode"
                  )
                  self.start_single_app_with_args()
              else:
                  self.start_app_with_args()
          else:
              self.start_single_app_with_args()
  
imports: import argparse
  import os
  import platform
  import json
  import multiprocessing
  import time
  import signal
  import paddlehub
  from paddlehub.commands import register
  from paddlehub.serving import app_compat
  from paddlehub.env import CONF_HOME
  from paddlehub.serving.http_server import run_all, StandaloneApplication
  from paddlehub.utils import log
  from paddlehub.utils.utils import is_port_occupied
  from paddlehub.server.server import CacheUpdater
label_desc: Use image node_id 9 for calling the ServingCommand obj's underlying member method code with example usage: obj.start_serving() without return types