I am trying to implement that pysyft code for federated learing for my csv data . The tutorial i am following is this https://github.com/bt-s/Split-Learning-and-Federated-Learning/blob/master/src/federated_learning.py they used torch library FMNIST data which is iamge . I am having difficulty in customizing this code for my csv data.
This is error i am getting
File "C:/user/python/PCA/federated_learning.py", line 175, in train_loader = sy.FederatedDataLoader(train_set, transform=data_transformer.federate(workers), train=True, batch_size=args.batch_size, shuffle=True, **kwargs) AttributeError: 'Compose' object has no attribute 'federate
# Pysyft needs to be hooked to PyTorch to enable its features
hook = sy.TorchHook(torch)
# Define the workers
alfa = sy.VirtualWorker(hook, id="alfa")
bravo = sy.VirtualWorker(hook, id="bravo")
workers = (alfa, bravo)
device = "cuda" if torch.cuda.is_available() else "cpu"
device = torch.device(device)
kwargs = {'num_workers': 1, 'pin_memory': True} if device=="cuda" else {}
# Specify required data transformation
data_transformer = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])
import pandas as pd
print("Loading CSV...")
test_set = pd.read_csv("C:/user/python/PCA/data/test.csv", encoding = "UTF-8")
train_set = pd.read_csv("C:/user/python/PCA/data/train.csv", encoding = "UTF-8")
train_loader = sy.FederatedDataLoader(train_set, transform=data_transformer.federate(workers), train=True, batch_size=args.batch_size, shuffle=True, **kwargs)
test_loader = torch.utils.data.DataLoader(test_set, transform=data_transformer, train=False, batch_size=args.batch_size, shuffle=True, **kwargs)