secretflow.ml.nn.sl.backend.tensorflow package#
Submodules#
secretflow.ml.nn.sl.backend.tensorflow.sl_base module#
sl model base
Classes:
|
|
|
|
|
|
|
|
|
- class secretflow.ml.nn.sl.backend.tensorflow.sl_base.SLBaseModel(builder_base: Callable, builder_fuse: Optional[Callable] = None)[源代码]#
基类:
ABC
Methods:
__init__
(builder_base[, builder_fuse])build_dataset
(x[, y, s_w, batch_size, ...])fuse_net
(hiddens)
- class secretflow.ml.nn.sl.backend.tensorflow.sl_base.SLBaseModule[源代码]#
基类:
ABC
,Module
Methods:
forward
(x)Defines the computation performed at every call.
set_weights
(weights)get_gradients
([parameters])set_gradients
(gradients[, parameters])Attributes:
- abstract forward(x)[源代码]#
Defines the computation performed at every call.
Should be overridden by all subclasses.
备注
Although the recipe for forward pass needs to be defined within this function, one should call the
Module
instance afterwards instead of this since the former takes care of running the registered hooks while the latter silently ignores them.
- set_gradients(gradients: List[Union[Tensor, ndarray]], parameters: Optional[List[Tensor]] = None)[源代码]#
- training: bool#
- class secretflow.ml.nn.sl.backend.tensorflow.sl_base.SLBaseTFModel(builder_base: Callable[[], Model], builder_fuse: Callable[[], Model], dp_strategy: DPStrategy, compressor: Compressor, *, _ray_trace_ctx=None, **kwargs)[源代码]#
基类:
SLBaseModel
Methods:
__init__
(builder_base, builder_fuse, ...[, ...])fuse_op
(x, y)set_steps_per_epoch
(steps_per_epoch)build_dataset
(*x[, y, s_w, batch_size, ...])build tf.data.Dataset
base_forward
([stage, compress])compute hidden embedding :param stage: Which stage of the base forward :param compress: Whether to compress cross device data.
base_backward
(gradient[, compress])backward on fusenet
init_training
(callbacks[, epochs, steps, ...])on_epoch_begin
(epoch)on_train_batch_begin
([step])on_train_batch_end
([step])on_validation
(val_logs)on_epoch_end
(epoch)set_sample_weight
(sample_weight[, stage])fuse_net
(*hidden_features[, _num_returns, ...])Fuses the hidden layer and calculates the reverse gradient only on the side with the label
evaluate
(*hidden_features[, compress])Returns the loss value & metrics values for the model in test mode.
metrics
()predict
(*hidden_features[, compress])Generates output predictions for the input hidden layer features.
save_base_model
(base_model_path[, save_traces])save_fuse_model
(fuse_model_path[, save_traces])load_base_model
(base_model_path[, ...])load_fuse_model
(fuse_model_path[, ...])get_privacy_spent
(step[, orders])Get accountant of dp mechanism.
- __init__(builder_base: Callable[[], Model], builder_fuse: Callable[[], Model], dp_strategy: DPStrategy, compressor: Compressor, *, _ray_trace_ctx=None, **kwargs)[源代码]#
- build_dataset(*x: List[ndarray], y: Optional[ndarray] = None, s_w: Optional[ndarray] = None, batch_size=32, buffer_size=128, shuffle=False, repeat_count=1, stage='train', random_seed=1234, dataset_builder: Optional[Callable] = None)[源代码]#
build tf.data.Dataset
- 参数
x – feature, FedNdArray or HDataFrame
y – label, FedNdArray or HDataFrame
s_w – sample weight, FedNdArray or HDataFrame
batch_size – Number of samples per gradient update
buffer_size – buffer size for shuffling
shuffle – whether shuffle the dataset or not
repeat_count – num of repeats
stage – stage of this datset
random_seed – Prg seed for shuffling
- base_forward(stage='train', compress: bool = False)[源代码]#
compute hidden embedding :param stage: Which stage of the base forward :param compress: Whether to compress cross device data.
Returns: hidden embedding
- base_backward(gradient, compress: bool = False)[源代码]#
backward on fusenet
- 参数
gradient – gradient of fusenet hidden layer
compress – Whether to decompress gradient.
- fuse_net(*hidden_features, _num_returns=2, compress=False)[源代码]#
Fuses the hidden layer and calculates the reverse gradient only on the side with the label
- 参数
hidden_features – A list of hidden layers for each party to compute
compress – Whether to decompress/compress data.
- 返回
gradient Of hiddens
- evaluate(*hidden_features, compress: bool = False)[源代码]#
Returns the loss value & metrics values for the model in test mode.
- 参数
hidden_features – A list of hidden layers for each party to compute
compress – Whether to decompress input data.
- 返回
map of model metrics.
- class secretflow.ml.nn.sl.backend.tensorflow.sl_base.ModelPartition(model_fn, optim_fn, loss_fn, dataloader_fn, *, _ray_trace_ctx=None)[源代码]#
基类:
object
Methods:
__init__
(model_fn, optim_fn, loss_fn, ...[, ...])get_one_batch
([name])forward
([used_name, external_input])backward
([used_name, gradients, external_input])apply_gradients
([gradients])set_weights
(weights)call_model_fn
(fn_name, *args, **kwargs)
- secretflow.ml.nn.sl.backend.tensorflow.sl_base.PYUSLTFModel[源代码]#
ActorProxy(PYUSLTFModel)
的别名 Methods:__init__
(*args, **kwargs)Abstraction device object base class.
base_backward
(gradient[, compress, ...])backward on fusenet
base_forward
([stage, compress, _ray_trace_ctx])compute hidden embedding :param stage: Which stage of the base forward :param compress: Whether to compress cross device data.
build_dataset
(*x[, y, s_w, batch_size, ...])build tf.data.Dataset
evaluate
(*hidden_features[, compress, ...])Returns the loss value & metrics values for the model in test mode.
fuse_net
(*hidden_features[, _num_returns, ...])Fuses the hidden layer and calculates the reverse gradient only on the side with the label
get_base_weights
(*[, _ray_trace_ctx])get_basenet_output_num
(*[, _ray_trace_ctx])get_fuse_weights
(*[, _ray_trace_ctx])get_privacy_spent
(step[, orders, _ray_trace_ctx])Get accountant of dp mechanism.
get_stop_training
(*[, _ray_trace_ctx])init_data
(*[, _ray_trace_ctx])init_training
(callbacks[, epochs, steps, ...])load_base_model
(base_model_path[, ...])load_fuse_model
(fuse_model_path[, ...])metrics
(*[, _ray_trace_ctx])on_epoch_begin
(epoch, *[, _ray_trace_ctx])on_epoch_end
(epoch, *[, _ray_trace_ctx])on_train_batch_begin
([step, _ray_trace_ctx])on_train_batch_end
([step, _ray_trace_ctx])on_train_begin
(*[, _ray_trace_ctx])on_train_end
(*[, _ray_trace_ctx])on_validation
(val_logs, *[, _ray_trace_ctx])predict
(*hidden_features[, compress, ...])Generates output predictions for the input hidden layer features.
reset_metrics
(*[, _ray_trace_ctx])save_base_model
(base_model_path[, ...])save_fuse_model
(fuse_model_path[, ...])set_sample_weight
(sample_weight[, stage, ...])set_steps_per_epoch
(steps_per_epoch, *[, ...])
- secretflow.ml.nn.sl.backend.tensorflow.sl_base.PYUModel[源代码]#
ActorProxy(PYUModel)
的别名 Methods:__init__
(*args, **kwargs)Abstraction device object base class.
apply_gradients
([gradients, _ray_trace_ctx])backward
([used_name, gradients, ...])call_model_fn
(fn_name, *args[, _ray_trace_ctx])forward
([used_name, external_input, ...])get_one_batch
([name, _ray_trace_ctx])get_weights
(*[, _ray_trace_ctx])optim_step
(*[, _ray_trace_ctx])set_weights
(weights, *[, _ray_trace_ctx])zero_grad
(*[, _ray_trace_ctx])
secretflow.ml.nn.sl.backend.tensorflow.utils module#
Classes:
|
Decorator to define a function with a custom loss. |
- class secretflow.ml.nn.sl.backend.tensorflow.utils.custom_loss(func: Callable)[源代码]#
基类:
object
Decorator to define a function with a custom loss.
This decorator allows to define loss functions with additional keyword arguments. These keyword arguments must match the results of model’s forward pass.
示例
>>> import tensorflow as tf >>> # define model >>> class MyModel(tf.keras.Model): >>> def call(self, inputs, **kwargs): >>> # do forward pass >>> return None, y_pred, {'kwarg1': kwarg1, 'kwarg2': kwarg2} >>> # define loss function >>> @custom_loss >>> def my_loss(y_true, y_pred, kwarg1 = None, kwarg2 = None): >>> # cumpute loss >>> pass >>> # compile model with custom loss function >>> model = MyModel(...) >>> model.compile( >>> loss=my_loss, >>> optimizer=tf.keras.optimizers.Adam(0.01), >>> metrics=['acc'], >>> )
Note: custom_loss, my_loss and MyModel need to be added to custom_objects when loading the model.
Methods:
__init__
(func)with_kwargs
(kwargs)from_config
(config)