Mentions légales du service

Skip to content
Snippets Groups Projects
  1. Jun 19, 2024
  2. Mar 26, 2024
  3. Mar 18, 2024
  4. Mar 15, 2024
    • ANDREY Paul's avatar
      Fix Torch 1.13 unit tests launch. · ffe6a302
      ANDREY Paul authored
      Verified
      ffe6a302
    • ANDREY Paul's avatar
      Add support for TensorFlow 2.16 / Keras 3. · aff0ff31
      ANDREY Paul authored
      - Apply some minor backward changes (and, when required, branches) to
        support breaking changes in Keras 3 (the default for TensorFlow 2.16
        and onwards), while preserving support for older versions.
      - On the side, split a test about 'Model' serialization in two tests,
        one for config serializability, the other for instantiation from a
        non-serialized config dict.
      - The current code has been tested (by running all unit tests) with
        both TensorFlow 2.11 and 2.16, in a Python 3.10 environment.
      Verified
      aff0ff31
  5. Mar 13, 2024
  6. Mar 12, 2024
  7. Mar 01, 2024
    • ANDREY Paul's avatar
      Update release notes for '2.4.0'. · 08b53632
      ANDREY Paul authored
      Verified
      08b53632
    • ANDREY Paul's avatar
      Fix redundant model weights sharing with clients. · d0b8eb2c
      ANDREY Paul authored
      - Until now, in the main FL process, clients would always receive
        global model weights twice, due to their being shared both with
        training and evaluation requests.
      - This commit fixes that via the introduction of backend mechanisms
        to keep track of which clients hold the latest model weights, and
        sparingly attach them to requests based on this.
      - As a side effect, `TrainRequest` and `EvaluationRequest` messages
        now specify `weights` to be an `Optional[Vector]` field.
      Verified
      d0b8eb2c
    • ANDREY Paul's avatar
      Hack around PyLint not detecting 'tensorflow.keras' anymore. · 7704c462
      ANDREY Paul authored
      This commit introduces imports of 'tf.keras' as 'tf_keras' so that
      false-positive pylint errors can be silenced in one place per file
      rather than on each and every call.
      This remains tiresome, but might in fact be useful to switch to the
      newer TensorFlow versions in the future.
      Verified
      7704c462
  8. Feb 29, 2024
  9. Feb 16, 2024
    • ANDREY Paul's avatar
    • ANDREY Paul's avatar
      Merge branch 'revise-messaging' into 'develop' · 18a459fe
      ANDREY Paul authored
      Revise network communication backend and message-parsing logic.
      
      See merge request !62
      18a459fe
    • ANDREY Paul's avatar
      Add 'heartbeat' parameter to 'NetworkServer' and speed up tests. · f770f370
      ANDREY Paul authored
      Set up a low heartbeat for localhost-running tests, resulting in
      drastic runtime gains (notably due to time gains during the join
      and initialization phase for functional tests).
      Verified
      f770f370
    • ANDREY Paul's avatar
    • ANDREY Paul's avatar
    • ANDREY Paul's avatar
    • ANDREY Paul's avatar
    • ANDREY Paul's avatar
    • ANDREY Paul's avatar
      Adjust 'FederatedClient' and 'FederatedServer' to new messaging API. · 3b8703f2
      ANDREY Paul authored
      - Update the way received messages are type-checked and have them
        be deserialized after type-checking only.
      - Move up metadata collection and use to a new optional and sparse
        step during the initialization phase.
      - Implement new message subtypes for metadata query and reply, and
        for signalling that initializations steps went well.
      Verified
      3b8703f2
    • ANDREY Paul's avatar
      Integrate new Message API with communication endpoints. · 125e2708
      ANDREY Paul authored
      - Revert some changes from a previous commit, that may be envisioned
        again when revising APIs in-depth for DecLearn 3.0.
      - Stitch back the 'communication' and 'messaging' submodules together,
        having 'NetworkClient' and 'NetworkServer' send 'Message' instances
        (that are merely serialized to string prior to being exchanged) and
        parse received strings into 'SerializedMessage' instances.
      - This change is a compromise between keeping things as before (which
        would not benefit from the introduced delayed-parsing capability of
        'SerializedMessage'), and changing them so deeply that current code
        making use of communication endpoint would require heavy revisions.
      Verified
      125e2708
    • ANDREY Paul's avatar
      Revise 'Message' API, make it extendable and move it around. · 42153810
      ANDREY Paul authored
      * Introduce new 'declearn.messaging' submodule, that is meant to
        replace the now-deprecated 'declearn.communication.messaging'.
      * Make 'Message' extendable via subclassing and type-registration
        (which is automatically performed by default).
      * Introduce 'SerializedMessage' as a wrapper for received messages,
        that parses the exact message subtype (enabling logic tests and
        message filtering) but delays actual content deserialization and
        Message object recovery (enabling to prevent undue resources use
        for unwanted messages that end up being discarded).
      * Deprecate some old 'Message' classes, that are still exported by
        the deprecated submodule but not by the new one.
      Verified
      42153810
    • ANDREY Paul's avatar
      Revise network communication backend and message-parsing logic. · 7b623317
      ANDREY Paul authored
      - Introduce a new 'declearn.communication.api.backend' submodule:
        - Introduce a new 'ActionMessage' minimal backend API, that defines
          hard-coded, lightweight and easily-parsed data structures designed
          to convey information and content across network communications
          agnostic to the content's nature.
        - Move 'declearn.communication.messaging.flags' submodule to
          'declearn.communication.api.backend.flags'.
        - Move 'MessagesHandler' semi-private class to the 'backend'
          submodule, where it is now properly exposed.
      
      - Revise 'MessagesHandler':
        - Have it use the new 'ActionMessage's to wrap up messages, and
          delay their content's parsing to other times and parts of the
          code.
        - Quit sending information together with registration requests.
          In the future, we may want to introduce some callback system to
          validate or complete a registration request's processing.
        - Turn 'heartbeat' into an instantiation parameter.
      
      - Revise 'NetworkClient' and 'NetworkServer':
        - Quit passing of 'data_info' with registration requests.
        - Have message-sending and message-receiving methods expect str
          inputs and return str outputs: the actual parsing into objects
          is therefore delayed and left to be defined elsewhere.
        - Rename 'NetworkClient.check_message' into 'recv_message' (keep
          the former as an alias, with a DeprecationWarning).
        - Improve the use of (optional) timeouts when sending or expecting
          messages and overall exceptions handling:
          - 'NetworkClient.recv_message' may either raise a TimeoutError
            (in case of timeout) or RuntimeError (in case of rejection).
          - 'NeworkServer.send_messages' and 'broadcast_message' quietly
            stops waiting for clients to collect messages after the (opt.)
            timeout delay has passed. Messages may still be collected.
          - 'NetworkServer.wait_for_messages' no longer accepts a timeout.
          - 'NetworkServer.wait_for_messages_with_timeout' implements the
            possibility to setup a timeout. It returns both received client
            replies and a list of clients that failed to answer.
      Verified
      7b623317
Loading