PySyft AttributeError: 'DataFrame' object has no attribute 'federate' while reading data from csv

370 Views Asked by At

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)
    
0

There are 0 best solutions below