FATE icon indicating copy to clipboard operation
FATE copied to clipboard

sbt 的validate_data 设置不生效

Open Yanghello opened this issue 3 years ago • 1 comments
trafficstars

data upload代码如下

import json
from pipeline.backend.pipeline import PipeLine
from pipeline.component import Reader, DataTransform, Intersection, HeteroSecureBoost, Evaluation
from pipeline.interface import Data

train_data_guest = {"name": "guest_binary_mnist_train", "namespace": "bench"}
test_data_guest = {"name": "guest_binary_mnist_test", "namespace": "bench"}

pipeline_upload = PipeLine().set_initiator(
    role="guest", party_id=142).set_roles(guest=142, host=154)

pipeline_upload.add_upload_data(file="guest_binary_mnist_train.csv",
                                table_name=train_data_guest["name"],
                                namespace=train_data_guest["namespace"],
                                head=1, partition=8)          
pipeline_upload.upload(drop=1)

pipeline_upload.add_upload_data(file="guest_binary_mnist_test.csv",
                                table_name=test_data_guest["name"],
                                namespace=test_data_guest["namespace"],
                                head=1, partition=8)

pipeline_upload.upload(drop=1)

训练代码如下

import json
from pipeline.backend.pipeline import PipeLine
from pipeline.component import Reader, DataTransform, Intersection, HeteroSecureBoost, Evaluation
from pipeline.interface import Data
from pipeline.interface import Model

train_data_guest = {"name": "guest_binary_mnist_train", "namespace": "bench"}
train_data_host = {"name": "host_binary_mnist_train", "namespace": "bench"}
test_data_guest = {"name": "guest_binary_mnist_test", "namespace": "bench"}
test_data_host = {"name": "host_binary_mnist_test", "namespace": "bench"}


pipeline = PipeLine().set_initiator(
    role="guest", party_id=142).set_roles(guest=142, host=154)


reader_0 = Reader(name="reader_0")
reader_0.get_party_instance(
    role="guest", party_id=142).component_param(table=train_data_guest)
reader_0.get_party_instance(
    role="host", party_id=154).component_param(table=train_data_host)
data_transform_0 = DataTransform(
    name="data_transform_0")
data_transform_0.get_party_instance(
    role="guest", party_id=142).component_param(with_label=True, output_format="dense", label_name="label")
data_transform_0.get_party_instance(
    role="host", party_id=154).component_param(with_label=False)

reader_1 = Reader(name="reader_1")
reader_1.get_party_instance(
    role="guest", party_id=142).component_param(table=test_data_guest)
reader_1.get_party_instance(
    role="host", party_id=154).component_param(table=test_data_host)

data_transform_1 = DataTransform(
    name="data_transform_1")
data_transform_1.get_party_instance(
    role="guest", party_id=142).component_param(with_label=True, output_format="dense", label_name="label")
data_transform_1.get_party_instance(
    role="host", party_id=154).component_param(with_label=False)

intersection_0 = Intersection(name="intersection_0")
intersection_1 = Intersection(name="intersection_1")

hetero_secureboost_0 = HeteroSecureBoost(name="hetero_secureboost_0",
                                         num_trees=10,
                                         learning_rate=0.3,
                                         bin_num=33,
                                         task_type="classification",
                                         validation_freqs=2,
                                         objective_param={
                                             "objective": "cross_entropy"},
                                         encrypt_param={"method": "paillier"},

                                         tree_param={"max_depth": 3})


pipeline.add_component(reader_0)\
    .add_component(reader_1)\
    .add_component(data_transform_0, data=Data(data=reader_0.output.data))\
    .add_component(data_transform_1, data=Data(data=reader_1.output.data), model=Model(data_transform_0.output.model))\
    .add_component(intersection_0, data=Data(data=data_transform_0.output.data))\
    .add_component(intersection_1, data=Data(data=data_transform_1.output.data))\
    .add_component(hetero_secureboost_0, data=Data(train_data=intersection_0.output.data, validate_data=intersection_1.output.data))


pipeline.compile().fit()

fate board上没有显示validate metrics,只有train的metrics,求指点 如下图 截屏2022-09-01 下午9 32 12

Yanghello avatar Sep 01 '22 13:09 Yanghello

Make sure that the training data's ids and the testing data's ids are not overlapped.

mgqa34 avatar Sep 02 '22 02:09 mgqa34

您好!请问这个问题解决了吗?我也是这样的

harmony0303 avatar Nov 19 '23 04:11 harmony0303