pip install flwr
python
import tensorflow as tf
import flwr as fl
python
model = tf.keras.applications.MobileNetV2(
input_shape=(224, 224, 3), include_top=True, weights=None, classes=10
)
optimizer = tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.9)
loss = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True)
metrics = [tf.keras.metrics.SparseCategoricalAccuracy()]
class FlowerClient(fl.client.NumPyClient):
def get_parameters(self):
return model.get_weights()
def set_parameters(self, parameters):
model.set_weights(parameters)
def fit(self, parameters, config):
model.set_weights(parameters)
model.compile(optimizer=optimizer, loss=loss, metrics=metrics)
model.fit(x_train, y_train, epochs=config["epochs"], batch_size=config["batch_size"])
return model.get_weights(), len(x_train), {}
def evaluate(self, parameters, config):
model.set_weights(parameters)
model.compile(optimizer=optimizer, loss=loss, metrics=metrics)
loss, accuracy = model.evaluate(x_test, y_test)
return loss, len(x_test), {"accuracy": accuracy}
python
server = fl.server.Server(client_manager=fl.client_manager.NumPyClientManager())
server.start(8080)
python
fl.client.start_numpy_client("127.0.0.1:8080", client=FlowerClient())