123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- from pipeline.backend.pipeline import PipeLine
- from pipeline.component import DataTransform
- from pipeline.component import HeteroLR
- from pipeline.component import Intersection
- from pipeline.component import Reader
- from pipeline.interface import Data
- from pipeline.interface import Model
- def main():
-
- guest = 9999
- host = 10000
- arbiter = 10000
-
- guest_train_data = {"name": "breast_hetero_guest", "namespace": "experiment"}
- host_train_data = {"name": "breast_hetero_host", "namespace": "experiment"}
- guest_eval_data = {"name": "breast_hetero_guest", "namespace": "experiment"}
- host_eval_data = {"name": "breast_hetero_host", "namespace": "experiment"}
-
- pipeline = PipeLine()
-
- pipeline.set_initiator(role="guest", party_id=guest)
-
- pipeline.set_roles(guest=guest, host=host, arbiter=arbiter)
-
- reader_0 = Reader(name="reader_0")
-
- reader_0.get_party_instance(role="guest", party_id=guest).component_param(table=guest_train_data)
-
- reader_0.get_party_instance(role="host", party_id=host).component_param(table=host_train_data)
- reader_1 = Reader(name="reader_1")
- reader_1.get_party_instance(role="guest", party_id=guest).component_param(table=guest_eval_data)
- reader_1.get_party_instance(role="host", party_id=host).component_param(table=host_eval_data)
-
- data_transform_0 = DataTransform(name="data_transform_0")
- data_transform_1 = DataTransform(name="data_transform_1")
-
- data_transform_0_guest_party_instance = data_transform_0.get_party_instance(role="guest", party_id=guest)
-
- data_transform_0_guest_party_instance.component_param(with_label=True, output_format="dense")
-
- data_transform_0.get_party_instance(role="host", party_id=host).component_param(with_label=False)
-
- intersection_0 = Intersection(name="intersection_0")
- intersection_1 = Intersection(name="intersection_1")
-
- hetero_lr_0 = HeteroLR(name="hetero_lr_0", early_stop="weight_diff", learning_rate=0.15, optimizer="rmsprop",
- max_iter=10, early_stopping_rounds=2, validation_freqs=1)
-
- pipeline.add_component(reader_0)
- pipeline.add_component(reader_1)
- pipeline.add_component(data_transform_0, data=Data(data=reader_0.output.data))
-
- pipeline.add_component(data_transform_1,
- data=Data(data=reader_1.output.data), model=Model(data_transform_0.output.model))
-
- pipeline.add_component(intersection_0, data=Data(data=data_transform_0.output.data))
- pipeline.add_component(intersection_1, data=Data(data=data_transform_1.output.data))
-
- pipeline.add_component(
- hetero_lr_0,
- data=Data(
- train_data=intersection_0.output.data,
- validate_data=intersection_1.output.data))
-
- pipeline.compile()
-
- pipeline.fit()
-
- import json
- print(json.dumps(pipeline.get_component("hetero_lr_0").get_summary(), indent=4))
-
-
- pipeline.deploy_component([data_transform_0, intersection_0, hetero_lr_0])
-
- predict_pipeline = PipeLine()
- reader_2 = Reader(name="reader_2")
- reader_2.get_party_instance(role="guest", party_id=guest).component_param(table=guest_eval_data)
- reader_2.get_party_instance(role="host", party_id=host).component_param(table=host_eval_data)
-
- predict_pipeline.add_component(reader_2)
-
-
- predict_pipeline.add_component(pipeline, data=Data(
- predict_input={pipeline.data_transform_0.input.data: reader_2.output.data}))
-
- predict_pipeline.predict()
- if __name__ == "__main__":
- main()
|