我有 50 个客户,但我想分别训练每 5 个客户,并将他们的权重保存在
w_locals
中,之后我想将所有权重保存在 w_totals
中
w_totals = []
for iter in range(epochs):
w_locals = [w_glob for i in range(client_5)]
for idxs_task in range(task_num):
dataset = load_data()
for client_idx in range(client_5):
dataloader_train = load_data_train()
w = train(copy.deepcopy(net_glob).to(device), dataloader_train)
w_locals[client_idx] = copy.deepcopy(w)
w_totals.append(copy.deepcopy(w_locals))
我确信当我添加此行时会出现错误
w_totals.append(copy.deepcopy(w_locals))
那么我该如何解决这个问题以及
尝试先将权重传输到CPU,然后保存权重。或者,如果可以的话,将每个模型保存到硬盘并保存每个权重的路径。如果直接从 GPU 复制权重,有时垃圾收集器不会处理未使用的权重,新的权重仍保留在 GPU 上,这会占用空间。