Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release of mplc v0.3.0 #310

Merged
merged 2 commits into from
Jan 7, 2021
Merged

Release of mplc v0.3.0 #310

merged 2 commits into from
Jan 7, 2021

Conversation

arthurPignet
Copy link
Collaborator

@arthurPignet arthurPignet commented Jan 6, 2021

We planned to release a new version of mplc on git, pip and conda.

the release note are shown below, please don't hesitated to comment !


MPLC v0.3 Release notes

This release introduces several changes to the library which is now offering more modularity. It is also deployed on PyPI.

Features

  • Multiple code refactorization: Refacto the multi-partner learning approaches in a more object oriented way. #255
  • New Experiment object: An object which runs and repeats several scenarios and gathers results to simplify their analysis. #275
  • New corruption methods and options: Refacto the corruption in a more object oriented way. Add random, permutation, duplication, redundancy ways to corrupt a dataset. #280 & #277
  • Updated datasets integration: Change module architecture. The datasets are now a subclass of the Dataset class. #262
  • Updated tutorial notebooks. #266
  • Documentation: Update and format documentation. #264 & #294
  • Add code coverage badge: A new badge on the README, to follow the extension of the test coverage. #268
  • More tests added: There is now end-to-end tests for contributivity methods and multi-partner learning approaches. #304 & #300
  • Add FederatedGradient: New multi-partner learning method. The gradients are aggregated (instead of the weights). Then the optimizer updates the model with the aggregated gradient. #299
  • Add S-model: New multi-partner learning method. It adds for each partner a NoiseAdaptative layer, which is supposed to adapt to potential label flip and thus improve the shared model performances, even with corrupted partners.
    #281 & #301
  • Add local/global option for test and validation datasets. The dataset is split (only once! and in a stratified way) between train/test/validation datasets. If ‘local’, these test/validation datasets are splitted between partners, in the exact same way than the training one. #288

Fixes

  • Fix bugs in corruption by permutation: A transposition was missing. #284
  • Update Cifar10 model optimizer: The learning rate was way too low. We also switched from RMSprop to Adam for the optimizer, as it showed better performances. #283
  • Fix early stopping: Condition for early stopping was not reachable. #279
  • Logs: Add epoch number when showing evaluation metrics. #274
  • Dependencies updates: Removal of Keras (We now exclusively use the tensorflow's built-in Keras module), upgrade to Tensor Flow v2.4.0, Numpy v1.19.4, Scikit Learn v0.23.2, Pandas v1.1.5. #290
  • Switch to Github Actions instead of Travis for Continuous Integration. #298
  • Normalize contributivity scores in step-by-step methods. #295

Contributors

This release received successful contributions from:

Change description
Signed-off-by: arthurPignet <arthur.pignet@mines-paristech.fr>

Signed-off-by: arthurPignet <arthur.pignet@mines-paristech.fr>
@bowni
Copy link
Member

bowni commented Jan 6, 2021

The release note is really cool, well done @arthurPignet!

Fixing a few English typos:

We planned to release a new version of mplc on git, pip and conda.

the release note are shown below, please don't hesitated to comment !


MPLC v0.3 Release notes

This release introduces several changes to the library which is now offering more modularity. It is also deployed on PyPI.

Features

  • Multiple code refactorization: Refacto the multi-partner learning approaches in a more object oriented way. #255
  • New Experiment object: An object which runs and repeats several scenarios and gathers results to simplify their analysis. #275
  • New corruption methods and options: Refacto the corruption in a more object oriented way. Add random, permutation, duplication, redundancy ways to corrupt a dataset. #280 & #277
  • Updated datasets integration: Change module architecture. The datasets are now a subclass of the Dataset class. #262
  • Updated tutorial notebooks. #266
  • Documentation: Update and format documentation. #264 & #294
  • Add code coverage badge: A new badge on the README, to follow the extension of the test coverage. #268
  • More tests added: There is now end-to-end tests for contributivity methods and multi-partner learning approaches. #304 & #300
  • Add FederatedGradient: New multi-partner learning method. The gradients are aggregated (instead of the weights). Then the optimizer updates the model with the aggregated gradient. #299
  • Add S-model: New multi-partner learning method. It adds for each partner a NoiseAdaptative layer, which is supposed to adapt to potential label flip and thus improve the shared model performances, even with corrupted partners.
    #281 & #301
  • Add local/global option for test and validation datasets. The dataset is split (only once! and in a stratified way) between train/test/validation datasets. If ‘local’, these test/validation datasets are splitted between partners, in the exact same way than the training one. #288

Fixes

  • Fix bugs in corruption by permutation: A transposition was missing. #284
  • Update Cifar10 model optimizer: The learning rate was way too low. We also switched from RMSprop to Adam for the optimizer, as it showed better performances. #283
  • Fix early stopping: Condition for early stopping was not reachable. #279
  • Logs: Add epoch number when showing evaluation metrics. #274
  • Dependencies updates: Removal of Keras (We now exclusively use the tensorflow's built-in Keras module), upgrade to Tensor Flow v2.4.0, Numpy v1.19.4, Scikit Learn v0.23.2, Pandas v1.1.5. #290
  • Switch to Github Actions instead of Travis for Continuous Integration. #298
  • Normalize contributivity scores in step-by-step methods. #295

Contributors

This release received successful contributions from:

@arthurPignet arthurPignet merged commit d0d8d23 into master Jan 7, 2021
@arthurPignet arthurPignet deleted the release-v0.3 branch January 7, 2021 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants