コード例 #1
0
  def federated_value(self, value, placement):
    """Implements `federated_value` as defined in `api/intrinsics.py`.

    Args:
      value: As in `api/intrinsics.py`.
      placement: As in `api/intrinsics.py`.

    Returns:
      As in `api/intrinsics.py`.

    Raises:
      TypeError: As in `api/intrinsics.py`.
    """
    # TODO(b/113112108): Verify that neither the value, nor any of its parts
    # are of a federated type.

    value = value_impl.to_value(value, None, self._context_stack)

    value = value_impl.ValueImpl.get_comp(value)
    comp = computation_constructing_utils.create_federated_value(
        value, placement)
    return value_impl.ValueImpl(comp, self._context_stack)
コード例 #2
0
 def test_returns_federated_value_at_server(self):
     value = computation_building_blocks.Data('v', tf.int32)
     comp = computation_constructing_utils.create_federated_value(
         value, placement_literals.SERVER)
     self.assertEqual(comp.tff_repr, 'federated_value_at_server(v)')
     self.assertEqual(str(comp.type_signature), 'int32@SERVER')
コード例 #3
0
 def test_raises_type_error_with_unknown_placement(self):
     value = computation_building_blocks.Data('v', tf.int32)
     with self.assertRaises(TypeError):
         computation_constructing_utils.create_federated_value(
             value, 'unknown')
コード例 #4
0
 def test_raises_type_error_with_none_value(self):
     with self.assertRaises(TypeError):
         computation_constructing_utils.create_federated_value(
             None, placement_literals.CLIENTS)