This project is mirrored from https://github.com/tensorflow/federated. Pull mirroring failed .
Last successful update .
  1. 14 Aug, 2021 1 commit
  2. 24 Jul, 2021 1 commit
  3. 19 Jun, 2021 1 commit
  4. 15 Jun, 2021 1 commit
    • Taylor Cramer's avatar
      Rename `federated_secure_sum` to `federated_secure_sum_bitwidth` · 51f6db21
      Taylor Cramer authored
      This change unblocks the introduction of `federated_secure_sum` with
      a maximum value rather than a bitwidth, as well as the introduction of
      `federated_secure_modular_sum` with an integer modulus.
      
      CL automatically created by:
      ```
          replace_string \
            'federated_secure_sum' \
            'federated_secure_sum_bitwidth'
      ```
      
      PiperOrigin-RevId: 379380586
      51f6db21
  5. 30 Apr, 2021 1 commit
  6. 27 Apr, 2021 1 commit
  7. 26 Apr, 2021 1 commit
    • Michael Reneer's avatar
      Move `computation_types` to the `impl/types` package. · 5ef88eac
      Michael Reneer authored
      This change is intended reduce the depth of the package structure and make it easier to determine what is part of the public API by taking steps to removing the split in the `api` and `impl` packages.
      
      PiperOrigin-RevId: 370373365
      5ef88eac
  8. 22 Apr, 2021 1 commit
    • Michael Reneer's avatar
      Move `typed_object` to `impl/types`. · 11247e31
      Michael Reneer authored
      This change is intended reduce the depth of the package structure and make it easier to determine what is part of the public API by taking steps to removing the split in the `api` and `impl` packages.
      
      PiperOrigin-RevId: 369718296
      11247e31
  9. 10 Apr, 2021 1 commit
  10. 09 Apr, 2021 1 commit
  11. 08 Apr, 2021 2 commits
    • Zachary Garrett's avatar
      Rename and move `tff.utils.update_state` to `tff.structure.update_struct`. · 70988d7d
      Zachary Garrett authored
      Remove the `tff.utils` package now that it contains nothing.
      
      PiperOrigin-RevId: 367275852
      70988d7d
    • Taylor Cramer's avatar
      Add federated_select and federated_secure_select intrinsics · 3de5b388
      Taylor Cramer authored
      This change introduces federated_select and its secure counterpart
      as new intrinsics. As of this change, federated_select is still not
      supported by any TFF backend (mapreduce, reference, or execution).
      The purpose of this change is to solidify the API for federated_select
      and unblock efforts to begin simulating federated_select for research
      use.
      
      Note that federated_select and federated_secure_select are
      exposed as separate intrinsics rather than a single intrinsic whose
      behavior is configurable in the backend, or as a single intrinsic with
      a boolean parameter. The former approach would not allow for easy
      simultaneous use of federated_select and federated_secure_select in
      the same computation, which may be useful when selecting based on
      private data in some places and non-private data in others. The latter
      approach (a boolean parameter) could suggest to users that they should
      parameterize their own code based on a "secure" boolean, which is
      undesirable; such indirection could make it harder to tell whether
      secure selection is being used in a particular location. Additionally,
      keeping `federated_secure_select` as a separate function will make it
      easier to modify if it turns out that `federated_secure_select` or
      `federated_select` should offer additional non-shared parameters.
      
      PiperOrigin-RevId: 367265514
      3de5b388
  12. 02 Apr, 2021 1 commit
  13. 26 Mar, 2021 1 commit
    • Taylor Cramer's avatar
      Remove unused federated_reduce intrinsic · 0badf9bf
      Taylor Cramer authored
      There was a not-insignificant amount of code involved
      in providing this intrinsic. However, it isn't being
      used at all, in particular because it isn't possible
      to use in production (where multi-layered aggregation
      is a requirement). Instances of federated_reduce that
      use an associative binary accumulate operator can be
      easily transitioned to federated_aggregate, as was
      already done in the _federated_reduce_with_func helper
      in federated_aggregations.py.
      
      PiperOrigin-RevId: 365091411
      0badf9bf
  14. 19 Mar, 2021 1 commit
  15. 16 Mar, 2021 1 commit
  16. 11 Mar, 2021 1 commit
    • Taylor Cramer's avatar
      Add type_to_tensor_structure · 3d968c59
      Taylor Cramer authored
      This function allows users to create values of a given tensor type structure,
      wrapping correctly in the desired Python container. This can be used to,
      for example, create a structure of zeroes for a given TFF type.
      
      PiperOrigin-RevId: 362177848
      3d968c59
  17. 18 Dec, 2020 1 commit
  18. 26 Nov, 2020 1 commit
  19. 13 Nov, 2020 1 commit
  20. 29 Sep, 2020 1 commit
  21. 15 Sep, 2020 1 commit
  22. 12 Sep, 2020 1 commit
  23. 25 Aug, 2020 1 commit
  24. 15 Aug, 2020 1 commit
  25. 13 Aug, 2020 1 commit
  26. 25 Jul, 2020 1 commit
  27. 22 Jul, 2020 1 commit
    • Taylor Cramer's avatar
      Rename `AnonymousTuple` to `Struct`. · d12deec7
      Taylor Cramer authored
      This change moves and renames `AnonymousTuple` and its `Type`-based
      brethren. It re-exports the new types under the old names to allow
      for a more gradual transition to the new API.
      
      PiperOrigin-RevId: 322477504
      d12deec7
  28. 28 May, 2020 1 commit
  29. 14 Apr, 2020 1 commit
  30. 09 Apr, 2020 1 commit
  31. 07 Apr, 2020 1 commit
  32. 19 Feb, 2020 1 commit
  33. 13 Feb, 2020 1 commit
  34. 08 Feb, 2020 2 commits
  35. 23 Jan, 2020 1 commit
    • Michael Reneer's avatar
      Add `secure_sum` intrinsic to TFF. · 27807ecf
      Michael Reneer authored
      This change is part one of three:
      
      1. Add `secure_sum` intrinsic to TFF.
      2. Update transformations to support the `secure_sum` intrinsic.
      3. Update canonical form to support the `secure_sum` intrinsic.
      
      Here is an example using the API:
      
      ```python
        @computations.federated_computation
        def init_fn():
          """The `init` function for `computation_utils.IterativeProcess`."""
          return intrinsics.federated_value([0, 0], placements.SERVER)
      
        @computations.tf_computation(tf.int32, tf.int32], tf.int32]])
        def work(client_data, client_input):
          del client_data  # Unused
          del client_input  # Unused
          return [1, 1]
      
        @computations.federated_computation([
            computation_types.FederatedType([tf.int32, tf.int32], placements.SERVER),
            computation_types.FederatedType(tf.int32, placements.CLIENTS),
        ])
        def next_fn(server_state, client_data):
          """The `next` function for `computation_utils.IterativeProcess`."""
          client_input = intrinsics.federated_broadcast(server_state)
          c3 = intrinsics.federated_zip([client_data, client_input])
          client_updates = intrinsics.federated_map(work, c3)
          federated_update = intrinsics.federated_sum(client_updates[0])
          secure_update = intrinsics.secure_sum(client_updates[1], 8)
          new_server_state = intrinsics.federated_zip([federated_update, secure_update])
          server_output = intrinsics.federated_value([], placements.SERVER)
          return new_server_state, server_output
      
        ip = computation_utils.IterativeProcess(init_fn, next_fn)
      ```
      
      PiperOrigin-RevId: 290988239
      27807ecf
  36. 10 Jan, 2020 1 commit
  37. 31 Dec, 2019 1 commit
  38. 21 Nov, 2019 1 commit