0

我正在尝试为我的 csv 数据实现联合学习的 pysyft 代码。我正在关注的教程是这个https://github.com/bt-s/Split-Learning-and-Federated-Learning/blob/master/src/federated_learning.py 他们使用的是 iamge 的火炬库 FMNIST 数据。我很难为我的 csv 数据自定义此代码。

这是我得到的错误

文件“C:/user/python/PCA/federated_learning.py”,第 175 行,在 train_loader = sy.FederatedDataLoader(train_set, transform=data_transformer.federate(workers), train=True, batch_size=args.batch_size, shuffle=True , **kwargs) AttributeError: 'Compose' 对象没有属性 '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)
    
4

0 回答 0