0

When I using pysyft to do some Federated Learning task, there is an error:

AttributeError: 'WebsocketServerWorker' object has no attribute '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

the error:

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'

I don't know how to solve it :(

Eduardo Yáñez Parareda
  • 9,126
  • 4
  • 37
  • 50

1 Answers1

0

I got it. The newest version of pysyft doesn't have add_dataset attribute in 'WebsocketServerWorker' object, so we should back to the previous versions, like 0.2.5. We can use the following commands:

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

Good Luck, have fun!