Releases: makgyver/fluke
Releases · makgyver/fluke
Release list
v0.8.1
Release v0.8.1
IMPORTANT: fluke is now in beta!
New features
- The federation orchestrator is now the federated algorithm and not the server
- Decentralized FL: base class for implementing a fully decentralized FL algorithm is now available (
DecentralizedFL). Standard Gossip Learning (GossipDFL) has also been added. - Added
TimedMessageclass - Added
Topologyclass - Added documentation on evaluation configuration
- Added
receive_allandhas_messagetoChannel
Fixes
- Fixed documentation issues
- Fixed issue with the personalized model of personalized algorithms
- Fixed
GEARhyper-paramaters setting - Fixed
_last_roundonClientwhich was off by 1
Deprecations
- The
fitandfinalizemethods ofServerare now deprecated because the orchestration is now performed by the algorithm's class
v0.7.9
Release v0.7.9
This release fixes many minor issues and introduced multi-gpu parallel training for clients (experimental features).
New features
- [Experimental] It is now possible to perform parallel clients training using multiple GPU (via torch.distributed)
- Now the logging and the tracking of the evaluation performances are done using two different classes
- The evaluation log now includes more information, like the support (number of clients involved in the computation of the mean/sum) and/or the round
Minor changes
- Revised code formatting
- Collection[Client] -> Sequence[Client]
Fixes
- Fixed issue in FedProto related to the generator of client models
- Fixed different sections in the documentation
- Fixed issue with the logging of the evaluation performance
v0.7.8
Release notes 0.7.8
This release fixes many minor issues and introduced multi-gpu training for clients (experimental features).
New features and improvements
- [Exprimental] It is now possible to perform the training client-side using multiple GPU (via torch.nn.DataParallel)
- The channel now notify also when messages are sent/broadcasted
- It is now possible to set a global logger in FlukeENV
- All classes/methods related to the configuration is now in the submodule fluke.config
Major changes
- Iterable -> Collection
- No more server reference on the client
- Receiver and sender of messages are no longer references to client/server but are identifiers (int/str). The server is identified with the string "server" and the client by its ID
- _ObjectRef -> ObjectRef
- Client/Server: no more _notify_xyz, but a single _notify with argument event
Fixes
- Fixed issue on the Server that caused to select 0 clients
- Fixed issue with clients-only when logging on wandb
- Fixed code style and documentation
- Fixed requirements.txt
- Added a clean close to ClearMLLog
v0.7.4
Release notes 0.7.4
This release adds some improvements to and fix some minor issues
Fixed issues
- Removed useless
_load_from_cachefrom some clients - Other minor fixes including docs and tests
Improvements
- Improved
ClassificationEvalthat is now extensible with custom metrics - The
flukecommand accepts now overriding arguments (viahydra) - Added configuration validation with
cerberus
New features
- It is now possible to install
flukevia Docker - Added notification for message sent, broadcasted and for the early stopping of the federation
- Added
DebugLogto have a more verbose logger - Added
ConfigurationErrorto handle these types of errors
v0.7.2
Fixed issues
- Fixed issue related to torch.device witth centralized and clients-only command
- Fixed minor issues with the API documentation
Improvements
- Improved start up speed
- Improved some printing
New features
- Added fluke ASCII art banner
- Added possibility to early stop the federation
- Added possibility to track custom value with the logger
v0.7.1
Fixed issues
- Fixed issue with
inmemory=falsein the experiment configuration
New features
- Added
FlukeCache - Added FL algorithm
FedLD - Added FL algorithm
FAT - Added FL algorithm
GEAR - Added client-side gradient clipping
Important modifications
⚠️ From this versionflukedoes not support python <= 3.9GeneralSettingsis nowFlukeENV- The arguments of the
flukecommands are changed
v0.5.1
Fixed issues
- Fixed issue with
FEMNIST(#classes 64 -> 62) and an inefficiency onDataSplitter.assign - Fixed issue related to batch normalization layers
New features
- Added option to unload models on disk to save memory (
inmemory) - Added
fine_tuning_epochsto clients so the fine-tuning is now possible with a custom number of local epochs - Added
output_sizeargument to some nets - Added the possibility to pass arguments to build the model through the configuration (
net_argsoption) - Added Saving options
- Added FL algorithm
DPFedAVG
v0.4.0
Fixed issues
- Fixed FedNH, FedHP and FedProto
- Fixed issues on Dirichlet data distribution when
balanced=True - Removed the required
output_sizefrom the networks
New features
- Added
get_activation_sizeinutils - Added dataset
FCUBEfrom https://arxiv.org/pdf/2102.02079
v0.3.4
Fixed issues
- Fixed problem with the
cuda:Nsetting. Now it works properly and selects the correct device. - Fixed warning related to the redundancy of
wandb.require("core")in the last versions of thewandlibrary
Known issues with torch
If you get the error AttributeError: module 'torch.serialization' has no attribute 'add_safe_globals' please upgrade your torch installation to the latest version.
Important note
Release 0.3.3 has been published and deleted right after due to an error!