APIClient
Note
For access to FEDn Studio API, please see Accessing the API.
FEDn comes with an APIClient for interacting with the FEDn network. The APIClient is a Python3 library that can be used to interact with the FEDn network programmatically.
Installation
The APIClient is available as a Python package on PyPI, and can be installed using pip:
$ pip install fedn
Initialize the APIClient
To initialize the APIClient, you need to provide the hostname and port of the FEDn API server. The default port is 8092. The following code snippet shows how to initialize the APIClient:
from fedn import APIClient
client = APIClient("localhost", 8092)
Set active package and seed model
The active package can be set using the following code snippet:
client.set_active_package(path="path/to/package.tgz", helper="numpyhelper")
To set the initial seed model, you can use the following code snippet:
client.set_active_model(path="path/to/seed.npz")
Start training session
Once the active package and seed model are set, you can connect clients to the network and start training models. The following code snippet initializes a session (training rounds):
session = client.start_session(id="session_name")
List data
Other than starting training sessions, the APIClient can be used to get data from the network, such as sessions, models etc. All entities are represented and they all work in a similar fashion.
get_*() - (plural) list all entities of a specific type
get_*(id=<id-of-entity>) - get a specific entity
Entities represented in the APIClient are:
clients
combiners
models
packages
rounds
sessions
statuses
validations
The following code snippet shows how to list all sessions:
sessions = client.get_sessions()
And the following code snippet shows how to get a specific session:
session = client.get_session(id="session_name")
For more information on how to use the APIClient, see the fedn.network.api.client
, and the example Notebooks.