コード例 #1
0
 def testAsyncBasic(self):
     ctx = context.Context(execution_mode=context.ASYNC)
     ctx.ensure_initialized()
     has_cpu_device = False
     for x in ctx.devices():
         has_cpu_device = has_cpu_device or 'CPU' in x
     self.assertTrue(has_cpu_device)
     del ctx
コード例 #2
0
 def testSoftPlacement(self):
   if not context.context().num_gpus():
     self.skipTest('No GPUs found')
   # Temporarily replace the context
   # pylint: disable=protected-access
   del context._context
   try:
     context._context = context.Context(
         device_policy=context.DEVICE_PLACEMENT_SILENT,
         config=config_pb2.ConfigProto(allow_soft_placement=True))
     cpu_tensor = constant_op.constant(1.0)
     result = cpu_tensor + cpu_tensor
     self.assertEqual(result.device,
                      '/job:localhost/replica:0/task:0/device:GPU:0')
   finally:
     del context._context
     context._context = context.Context()
コード例 #3
0
  def testSetLogicalDeviceAfterContextInitialization(self):
    ctx = context.Context()
    ctx.set_logical_cpu_devices(4)
    self.assertIs(len(ctx.list_logical_devices('CPU')), 4)

    # Cannot set logical device twice.
    with self.assertRaisesRegex(RuntimeError, 'Virtual CPUs already set'):
      ctx.set_logical_cpu_devices(8)
コード例 #4
0
 def testSoftPlacement(self):
   if not context.context().num_gpus():
     self.skipTest('No GPUs found')
   # Temporarily replace the context
   # pylint: disable=protected-access
   del context._context
   context._context = context.Context()
   try:
     config.set_device_policy('silent')
     config.set_soft_device_placement(True)
     cpu_tensor = constant_op.constant(1.0)
     result = cpu_tensor + cpu_tensor
     self.assertEqual(result.device,
                      '/job:localhost/replica:0/task:0/device:GPU:0')
   finally:
     del context._context
     context._context = context.Context()
コード例 #5
0
 def testContext(self):
     ctx = context.Context()
     self.assertFalse(ctx.in_graph_mode())
     self.assertTrue(ctx.in_eager_mode())
     self.assertEqual('', ctx.scope_name)
     self.assertEqual(-1, ctx._device_index)  # pylint: disable=protected-access
     self.assertFalse(ctx.recording_summaries)
     self.assertIsNone(ctx.summary_writer_resource)
     del ctx
コード例 #6
0
 def testSilentCopy(self):
     # Temporarily replace the context
     # pylint: disable=protected-access
     old_context = context.context()
     context._set_context(context.Context())
     try:
         config.set_device_policy('silent')
         cpu_tensor = constant_op.constant(1.0)
         gpu_tensor = cpu_tensor.gpu()
         self.assertAllEqual(cpu_tensor + gpu_tensor, 2.0)
     finally:
         context._set_context(old_context)
コード例 #7
0
ファイル: ops_test.py プロジェクト: njeffrie/tensorflow
    def testCrossContextTensorCache(self):
        old_context = context.context()
        old_x = constant_op.constant(9.5)
        context._set_context(context.Context())

        try:
            new_x = constant_op.constant(9.5)
            self.assertEqual(new_x.numpy(), 9.5)
        finally:
            context._set_context(old_context)

        self.assertEqual(old_x.numpy(), 9.5)
コード例 #8
0
    def testSetLogicalLocalCpuDevice(self):
        ctx = context.Context()

        # Manually add a remote CPU device into logical device list.
        ctx._logical_devices = []  # pylint: disable=protected-access
        dev = context.LogicalDevice(name='/job:worker/replica:0/task:1',
                                    device_type='CPU')
        ctx._logical_devices.append(dev)  # pylint: disable=protected-access
        self.assertIs(len(ctx.list_logical_devices('CPU')), 1)

        # This would pass the check since the previously added device is not local.
        ctx.set_logical_cpu_devices(4)
        # Logical device list would be overwritten after initialization.
        self.assertIs(len(ctx.list_logical_devices('CPU')), 4)
コード例 #9
0
 def testSoftPlacement(self):
     # Temporarily replace the context
     # pylint: disable=protected-access
     old_context = context.context()
     context._set_context(context.Context())
     try:
         config.set_device_policy('silent')
         config.set_soft_device_placement(True)
         cpu_tensor = constant_op.constant(1.0)
         result = cpu_tensor + cpu_tensor
         self.assertEqual(result.device,
                          '/job:localhost/replica:0/task:0/device:GPU:0')
     finally:
         context._set_context(old_context)
コード例 #10
0
    def testContextThreadLocalMembers(self):
        def get_context_values(ctx):
            return [
                ctx.executing_eagerly(), ctx.scope_name, ctx.device_name,
                ctx.num_gpus()
            ]

        def get_values(ctx, values):
            values.extend(get_context_values(ctx))

        context_values = []
        ctx = context.Context()
        self._runInThread(get_values, (ctx, context_values))
        self.assertAllEqual(context_values, get_context_values(ctx))
コード例 #11
0
    def testContext(self):
        ctx = context.Context()
        self.assertTrue(ctx.executing_eagerly())

        self.assertEqual('', ctx.scope_name)
        ctx.scope_name = 'foo'
        self.assertEqual('foo', ctx.scope_name)

        self.assertEqual(context.SYNC, ctx.execution_mode)
        ctx.execution_mode = context.ASYNC
        self.assertEqual(context.ASYNC, ctx.execution_mode)
        ctx.execution_mode = context.SYNC
        self.assertEqual(context.SYNC, ctx.execution_mode)

        self.assertEqual('', ctx.device_name)
        self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
        with ctx.device('GPU:0'):
            self.assertEqual('/job:localhost/replica:0/task:0/device:GPU:0',
                             ctx.device_name)
            self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
            with ctx.device(None):
                self.assertEqual('', ctx.device_name)
                self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
                with ctx.device('CPU:0'):
                    self.assertEqual(
                        '/job:localhost/replica:0/task:0/device:CPU:0',
                        ctx.device_name)
                    self.assertEqual(ctx.device_name,
                                     ctx.device_spec.to_string())
                with ctx.device(ctx.list_logical_devices('CPU')[0]):
                    self.assertEqual(
                        '/job:localhost/replica:0/task:0/device:CPU:0',
                        ctx.device_name)
                    self.assertEqual(ctx.device_name,
                                     ctx.device_spec.to_string())

        gpus = ctx.list_logical_devices('GPU')
        if gpus:
            with ctx.device(gpus[0]):
                self.assertEqual(
                    '/job:localhost/replica:0/task:0/device:GPU:0',
                    ctx.device_name)
                self.assertEqual(ctx.device_name, ctx.device_spec.to_string())

        has_cpu_device = False
        for x in ctx.devices():
            has_cpu_device = has_cpu_device or 'CPU' in x
        self.assertTrue(has_cpu_device)
        del ctx
コード例 #12
0
ファイル: core_test.py プロジェクト: 568xiaoma/WeChatProgram
    def testContextThreadLocalMembers(self):
        def get_context_values(ctx):
            return [
                ctx.in_graph_mode(),
                ctx.in_eager_mode(), ctx.scope_name,
                ctx.summary_writer_resource, ctx.device_name,
                ctx.num_gpus()
            ]

        def get_values(ctx, values):
            values.extend(get_context_values(ctx))

        context_values = []
        ctx = context.Context()
        self._runInThread(get_values, (ctx, context_values))
        self.assertAllEqual(context_values, get_context_values(ctx))
コード例 #13
0
ファイル: ops_test.py プロジェクト: dithyrambe/tensorflow
 def testSoftPlacement(self):
     # Temporarily replace the context
     # pylint: disable=protected-access
     old_context = context.context()
     context._set_context(context.Context())
     try:
         config.set_device_policy('silent')
         config.set_soft_device_placement(True)
         # Avoid the TensorHandle cache hit.
         # TODO(b/169790439): include Context to the TensorHandle cache.
         cpu_tensor = constant_op.constant(1.1)
         result = cpu_tensor + cpu_tensor
         self.assertEqual(result.device,
                          '/job:localhost/replica:0/task:0/device:GPU:0')
     finally:
         context._set_context(old_context)
コード例 #14
0
    def testContext(self):
        ctx = context.Context()
        self.assertTrue(ctx.executing_eagerly())

        self.assertEqual('', ctx.scope_name)
        ctx.scope_name = 'foo'
        self.assertEqual('foo', ctx.scope_name)

        self.assertEqual(context.SYNC, ctx.execution_mode)
        ctx.execution_mode = context.ASYNC
        self.assertEqual(context.ASYNC, ctx.execution_mode)
        ctx.execution_mode = context.SYNC
        self.assertEqual(context.SYNC, ctx.execution_mode)

        self.assertIsNone(ctx.summary_writer)
        ctx.summary_writer = 'mock'
        self.assertEqual('mock', ctx.summary_writer)
        self.assertIsNone(ctx.summary_recording)
        ctx.summary_recording = 'mock'
        self.assertEqual('mock', ctx.summary_recording)
        self.assertIsNone(ctx.summary_step)
        ctx.summary_step = 'mock'
        self.assertEqual('mock', ctx.summary_step)

        self.assertEqual('', ctx.device_name)
        self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
        with ctx.device('GPU:0'):
            self.assertEqual('/job:localhost/replica:0/task:0/device:GPU:0',
                             ctx.device_name)
            self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
            with ctx.device(None):
                self.assertEqual('', ctx.device_name)
                self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
                with ctx.device('CPU:0'):
                    self.assertEqual(
                        '/job:localhost/replica:0/task:0/device:CPU:0',
                        ctx.device_name)
                    self.assertEqual(ctx.device_name,
                                     ctx.device_spec.to_string())

        has_cpu_device = False
        for x in ctx.devices():
            has_cpu_device = has_cpu_device or 'CPU' in x
        self.assertTrue(has_cpu_device)
        del ctx
コード例 #15
0
ファイル: core_test.py プロジェクト: lengjia/RRL
  def testContext(self):
    ctx = context.Context()
    self.assertFalse(ctx.in_graph_mode())
    self.assertTrue(ctx.in_eager_mode())

    self.assertEqual('', ctx.scope_name)
    ctx.scope_name = 'foo'
    self.assertEqual('foo', ctx.scope_name)

    self.assertIsNone(ctx.summary_writer_resource)
    ctx.summary_writer_resource = 'mock'
    self.assertEqual('mock', ctx.summary_writer_resource)

    self.assertFalse(ctx.recording_summaries)
    ctx.recording_summaries = True
    self.assertTrue(ctx.recording_summaries)

    self.assertEqual('', ctx.device_name)
    self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
    with ctx.device('GPU:0'):
      self.assertEqual('/job:localhost/replica:0/task:0/device:GPU:0',
                       ctx.device_name)
      self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
      with ctx.device(None):
        self.assertEqual('', ctx.device_name)
        self.assertEqual(ctx.device_name, ctx.device_spec.to_string())
        with ctx.device('CPU:0'):
          self.assertEqual('/job:localhost/replica:0/task:0/device:CPU:0',
                           ctx.device_name)
          self.assertEqual(ctx.device_name, ctx.device_spec.to_string())

    has_cpu_device = False
    for x in ctx.devices():
      has_cpu_device = has_cpu_device or 'CPU' in x
    self.assertTrue(has_cpu_device)
    del ctx
コード例 #16
0
ファイル: context_test.py プロジェクト: michszy/tensorflow
 def testSetGlobalSeed(self):
     c = context.Context()
     c._set_global_seed(123)
     c._set_global_seed([1, 2])
     c._set_global_seed((1, 2))
     c._set_global_seed(np.asarray([11, 22], dtype=np.int64))
コード例 #17
0
 def testContextConfig(self):
     if not context.context().num_gpus():
         self.skipTest('No GPUs found')
     ctx = context.Context(config=config_pb2.ConfigProto(
         device_count={'GPU': 0}))
     self.assertEquals(0, ctx.num_gpus())
コード例 #18
0
 def testDevice_supportsLogicalDevice(self):
     ctx = context.Context()
     cpus = ctx.list_logical_devices('CPU')
     with ctx.device(cpus[0]):
         self.assertEqual('/job:localhost/replica:0/task:0/device:CPU:0',
                          ctx.device_name)
コード例 #19
0
 def testDevice_supportsDeviceSpec(self):
     ctx = context.Context()
     device_name = '/job:localhost/replica:0/task:0/device:CPU:0'
     device_spec = pydev.DeviceSpec.from_string(device_name)
     with ctx.device(device_spec):
         self.assertEqual(device_name, ctx.device_name)
コード例 #20
0
 def testContextConfig(self):
     ctx = context.Context(config=config_pb2.ConfigProto(
         device_count={'GPU': 0}))
     self.assertEquals(0, ctx.num_gpus())