I am trying to use TFF to implement federated learning. I have spun up 3 EC2 instances and set up the TFF in a conda environment. I am trying to figure out how to create a federated dataset with some CSV files and then start training over these EC2 instances by having one of them as the Central and the other 2 as the clients. In the TFF code i could see tff.CLIENTS has a URI attribute but not sure how to map it to the IP/Some-Endpoint for communicating between clients and Server.
I have searched for ways to do that in the using the current TFF functions provided but couldn't find any pointers on achieving this case. (As it is the placement literals tff.CLIENT and tff.SERVER are anyway not exposed via API currently and is planned for future releases)
Inside the tensorflow_federated\python\core\impl\placement_literals.py:
PlacementLiteral(object):
"""A representation of one of the globally recognized placement literals."""
def __init__(self, name, uri, default_all_equal, description):
self._name = name
self._uri = uri #URI for client/Server
self._description = description
self._default_all_equal = default_all_equal
NA
TFF currently only fully supports single-machine simulation. There is work being done to enable multi-machine simulation environments to enable faster simulation (though it will semantically be the same result), but it is on going.
I would recommended first starting with running TFF in single-machine simulation.