code: def test_gpu_save_load_export(self):
      old_num_gpus = tc.config.get_num_gpus()
      gpu_options = set([old_num_gpus, 0, 1])
      for in_gpus in gpu_options:
          tc.config.set_num_gpus(in_gpus)
          model = tc.object_detector.create(self.sf, max_iterations=1)
          for out_gpus in gpu_options:
              with test_util.TempDirectory() as path:
                  model.save(path)
                  tc.config.set_num_gpus(out_gpus)
                  model = tc.load_model(path)
                  model.export_coreml(
                      os.path.join(path, "model.mlmodel")
                  )
  
      tc.config.set_num_gpus(old_num_gpus)
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  import unittest
  import pytest
  from .None import util
  import turicreate
  import tempfile
  import numpy
  import platform
  import pytest
  import sys
  import os
  from turicreate.toolkits._main import ToolkitError
  from turicreate.toolkits._internal_utils import _raise_error_if_not_sarray, _mac_ver
  from six import StringIO
label_desc: Use image node_id 2 for calling the ObjectDetectorGPUTest obj's underlying member method code with example usage: obj.test_gpu_save_load_export() without return types