Skip to main content

API Reference

FedML BeeHive (the cross-device FL) currently support ServerMNN related APIs, which operates a FL server compatible with our FedML Android SDK/APP.


import MNN
import fedml
import wandb
from fedml.cross_device import ServerMNN
from fedml.model import create_mnn_lenet5_model

from my_dataset import MnistDataset

if __name__ == "__main__":
# init FedML framework
args = fedml.init()

if args.enable_wandb:
args.wandb_obj = wandb.init(
entity="fedml", project="mobile", name="MNN-Mobile", config=args
)

# init device
device = fedml.device.get_device(args)

# load data
train_dataset = MnistDataset(True)
test_dataset = MnistDataset(False)
train_dataloader = MNN.data.DataLoader(train_dataset, batch_size=64, shuffle=True)
test_dataloader = MNN.data.DataLoader(
test_dataset, batch_size=args.batch_size, shuffle=False
)
class_num = 10

# load model
create_mnn_lenet5_model(args.global_model_file_path)

# start training
server = ServerMNN(
args, device, test_dataloader, None
) # for MNN, the model is loaded using MNN file
server.run()

For newly developed features, we will try to keep the form of these APIs and only add new arguments.

To check the details of the latest definition of each API, the best resource is always the source code itself. Please check comments of each API at: https://github.com/FedML-AI/FedML/blob/master/python/fedml/init.py