Closed better629 closed 4 months ago
@better629 Can you give more infomation about the failed task? Like submit_conf & dsl, it will be much better to post the training data for us to reproduce the issue.
@mgqa34 The training data is the example's data.
The generated config are: train_conf
{"initiator": {"role": "guest", "party_id": 10000}, "job_parameters": {"work_mode": 0}, "role": {"guest": [10000], "host": [10000], "arbiter": [10000]}, "role_parameters": {"guest": {"args": {"data": {"train_data": [{"name": "breast_b", "namespace": "breast_b_guest"}], "eval_data": [{"name": "breast_b", "namespace": "breast_b_guest"}]}}, "dataio_0": {"with_label": [true], "label_name": ["y"], "label_type": ["int"], "output_format": ["dense"]}}, "host": {"args": {"data": {"train_data": [{"name": "breast_a", "namespace": "breast_a_host"}], "eval_data": [{"name": "breast_a", "namespace": "breast_a_host"}]}}, "dataio_0": {"with_label": [false], "output_format": ["dense"]}}}, "algorithm_parameters": {"secureboost_0": {"task_type": "classification", "learning_rate": 0.1, "num_trees": 5, "subsample_feature_rate": 1, "n_iter_no_change": true, "tol": 0.0001, "bin_num": 10, "objective_param": {"objective": "cross_entropy"}, "encrypt_param": {"method": "paillier"}, "predict_param": {"with_proba": true, "threshold": 0.5}, "cv_param": {"n_splits": 5, "shuffle": false, "random_seed": 103, "need_cv": false, "evaluate_param": {"eval_type": "binary"}}, "validation_freqs": 1}, "evaluation_0": {"eval_type": "binary"}}}
train_dsl
{"components": {"dataio_0": {"module": "DataIO", "input": {"data": {"data": ["args.train_data"]}}, "output": {"data": ["train"], "model": ["dataio"]}}, "dataio_1": {"module": "DataIO", "input": {"data": {"data": ["args.eval_data"]}, "model": ["dataio_0.dataio"]}, "output": {"data": ["eval"], "model": ["dataio"]}, "need_deploy": false}, "intersection_0": {"module": "Intersection", "input": {"data": {"data": ["dataio_0.train"]}}, "output": {"data": ["train"]}}, "intersection_1": {"module": "Intersection", "input": {"data": {"data": ["dataio_1.eval"]}}, "output": {"data": ["eval"]}, "need_deploy": false}, "secureboost_0": {"module": "HeteroSecureBoost", "input": {"data": {"train_data": ["intersection_0.train"], "eval_data": ["intersection_1.eval"]}}, "output": {"data": ["train"], "model": ["train"]}}, "evaluation_0": {"module": "Evaluation", "input": {"data": {"data": ["secureboost_0.train"]}}}}}
I install "docker_standalone-fate-1.2.0.tar.gz", upload "breast_b.csv" and "breast_a.csv" with "partition=10", but can't reproduce the described issue. Is this error always occurs ?
@mgqa34
Yes, I have tried multi paramters, but always got above error with quick_run.py
in examples/federatedml-1.x-examples
.
Especially, the above error was occured in hetero_secureboost example
. Did you update eval_data namespace
in quick_run.py
conf_json['role_parameters']['guest']['args']['data']['train_data'] = [
{
'name': guest_table_name,
'namespace': guest_namespace
}
]
if "eval_data" in conf_json['role_parameters']['guest']['args']['data']:
conf_json['role_parameters']['guest']['args']['data']["eval_data"] = [{
"name": guest_table_name,
"namespace": guest_namespace
}]
conf_json['role_parameters']['host']['args']['data']['train_data'] = [
{
'name': host_table_name,
'namespace': host_namespace
}
]
if "eval_data" in conf_json['role_parameters']['host']['args']['data']:
conf_json['role_parameters']['host']['args']['data']["eval_data"] = [{
"name": host_table_name,
"namespace": host_namespace
}]
If not, it will occurs below error in dataio_1 node
"2020-01-08 05:55:16,326 - task_executor.py[line:122] - INFO: {'data': {'data': ['args.eval_data']}, 'model': ['dataio_0.dataio']}"
"2020-01-08 05:55:16,326 - data_io.py[line:123] - INFO: start to read dense data and change data to instance"
"2020-01-08 05:55:16,327 - task_executor.py[line:132] - ERROR: Count of data_instance is 0"
Traceback (most recent call last):
File "/fate/fate_flow/driver/task_executor.py", line 123, in run_task
run_object.run(parameters, task_run_args)
File "/fate/federatedml/model_base.py", line 88, in run
this_data_output = func(*real_param)
File "/fate/federatedml/util/data_io.py", line 766, in transform
return self.reader.read_data(data_inst, "transform")
File "/fate/federatedml/util/data_io.py", line 125, in read_data
abnormal_detection.empty_table_detection(input_data)
File "/fate/federatedml/util/abnormal_detection.py", line 25, in empty_table_detection
raise ValueError("Count of data_instance is 0")
ValueError: Count of data_instance is 0
``
"ValueError: Count of data_instance is 0" means that the data uploaded is failed. You can upload the data directly and run the secureboost example by the guide in https://github.com/FederatedAI/FATE/tree/master/examples/federatedml-1.x-examples/hetero_secureboost
"ValueError: Count of data_instance is 0" means that the data uploaded is failed. You can upload the data directly and run the secureboost example by the guide in https://github.com/FederatedAI/FATE/tree/master/examples/federatedml-1.x-examples/hetero_secureboost
@mgqa34
Yes, I have followed the federatedml-1.x-examples/hetero_secureboost Binary class
.
But it occurs with above error IndexError: list index out of range
with quick_run.py
@mgqa34
Could you please run the hetero_secureboost Binary-Class
problem with quick_run.py
and breast_b/a.csv data
, and take a look that if there has above problem.
You can try to submit the task after modifying the table name and namespace.
I used the
docker_standalone-fate-1.2.0.tar.gz
to run FATE. But When I run thehetero_secureboost Binary-Class
problem, there occurs a problem insecureboost_0
step.Does anyone also meet above problem~