加密梯度聚合的联合学习

时间:2020-02-20 16:00:20

标签: python-3.x pytorch federated-learning

我想使用加密的梯度聚合进行联合学习。为此,我已经从数据集中训练了一个模型,如下所示:

model.fix_precision().share(bob, alice, crypto_provider = w_aggrigator)

然后,在工人之间共享它:

test_loader = th.utils.data.DataLoader(public_data_test, shuffle=False, batch_size=batch_size)

shared_test = []
for data, target in test_loader:
    shared_test.append((
        data.fix_prec().share(bob, alice, crypto_provider = w_aggrigator),
        target.fix_prec().share(bob, alice, crypto_provider = w_aggrigator)
    ))

然后,我在工作人员之间共享测试数据,如下所示:

output = th.zeros(0, dtype=th.long)
model.eval()
for data, label in test_loader:
    new_labels = model(data.float()) # Error is raised on this line 
    ps = th.argmax(th.exp(new_labels), dim=1)
    output = th.cat((output, ps))

但是,当我尝试对测试集进行预测时,会引发错误。 这是预测部分:

IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)

而且,这是简单的错误:

IRateLimitCounterStore

但是,当我不在工作人员之间共享模型时,它将成功进行预测。如果有人可以帮助我在这里缺少的内容,我将不胜感激。

0 个答案:

没有答案