首页 > 解决方案 > AttributeError:“WebsocketServerWorker”对象没有属性“add_dataset”

问题描述

当我使用 pysyft 做一些联邦学习任务时,出现错误:

AttributeError:“WebsocketServerWorker”对象没有属性“add_dataset”

def start_websocket_server_worker(id, host, port, hook, verbose, training, dataset, dataset_labels):
    server = websocket_server.WebsocketServerWorker(id=id, host=host, port=port, hook=hook, verbose=verbose)
    # change dataset to tensor
    x_values_tensor = dataset.reshape(dataset.shape[0], dataset.shape[2], dataset.shape[1], 1).astype(float)

    y_values_tensor = dataset_labels.astype(float)
    one_HARdataset = HARdataset(x_values=x_values_tensor, y_values=y_values_tensor, transform=transforms.Compose([
                        ToTensor()
                        ]))

    server.add_dataset(one_HARdataset, key="har_dataset")
    print("datasets: %s", server.datasets)
    server.start()
    return server

错误:

Traceback (most recent call last):
  File "run_websocket_server.py", line 166, in <module>
    dataset_labels=data_sep_worker_labels[work_dic[args.id]]
  File "run_websocket_server.py", line 122, in start_websocket_server_worker
    server.add_dataset(one_HARdataset, key="har_dataset")
AttributeError: 'WebsocketServerWorker' object has no attribute 'add_dataset'
Traceback (most recent call last):
  File "run_websocket_server.py", line 166, in <module>
    dataset_labels=data_sep_worker_labels[work_dic[args.id]]
  File "run_websocket_server.py", line 122, in start_websocket_server_worker
    server.add_dataset(one_HARdataset, key="har_dataset")
AttributeError: 'WebsocketServerWorker' object has no attribute 'add_dataset'
Traceback (most recent call last):
  File "run_websocket_server.py", line 166, in <module>
    dataset_labels=data_sep_worker_labels[work_dic[args.id]]
  File "run_websocket_server.py", line 122, in start_websocket_server_worker
    server.add_dataset(one_HARdataset, key="har_dataset")
AttributeError: 'WebsocketServerWorker' object has no attribute 'add_dataset'
Traceback (most recent call last):
  File "run_websocket_server.py", line 166, in <module>
    dataset_labels=data_sep_worker_labels[work_dic[args.id]]
  File "run_websocket_server.py", line 122, in start_websocket_server_worker
    server.add_dataset(one_HARdataset, key="har_dataset")
AttributeError: 'WebsocketServerWorker' object has no attribute 'add_dataset'

我不知道如何解决它:(

标签: pythonmachine-learningfederated-learningpysyft

解决方案


我知道了。最新版本的 pysyft 在 'WebsocketServerWorker' 对象中没有 add_dataset 属性,所以我们应该回到以前的版本,比如 0.2.5。我们可以使用以下命令:

pip install syft==0.2.5 -f https://download.pytorch.org/whl/torch_stable.html

祝你好运,玩得开心!


推荐阅读