我正在尝试为我的 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)