Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 1.56 KB

api.md

File metadata and controls

48 lines (37 loc) · 1.56 KB

FedML BeeHive 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