ONE - On-device Neural Engine
|
Public Member Functions | |
None | __init__ (self, str nnpackage_path, str backends="train") |
None | compile (self, Union[str, Optimizer] optimizer, Union[str, LossFunction] loss, List[Union[str, Metric]] metrics=[], int batch_size=16) |
Dict[str, Union[float, List[float]]] | train (self, DataLoader data_loader, int epochs, float validation_split=0.0, Optional[str] checkpoint_path=None) |
Dict[str, Any] | train_step (self, List[np.ndarray] inputs, List[np.ndarray] expecteds) |
Dict[str, Any] | eval_step (self, List[np.ndarray] inputs, List[np.ndarray] expecteds) |
Data Fields | |
optimizer | |
loss | |
metrics | |
train_info | |
Protected Member Functions | |
None | _print_training_parameters (self) |
Tuple[float, float, float] | _run_phase (self, Tuple[List[np.ndarray], List[np.ndarray]] data, bool train=True) |
None | _check_batch_size (self, List[np.ndarray] data, int batch_size, str data_type="input") |
Dict[str, Any] | _batch_step (self, List[np.ndarray] inputs, List[np.ndarray] expecteds, bool update_weights) |
Class for training and inference using nnfw_session.
Definition at line 18 of file session.py.
None package.experimental.train.session.TrainSession.__init__ | ( | self, | |
str | nnpackage_path, | ||
str | backends = "train" |
||
) |
Initialize the train session. Args: nnpackage_path (str): Path to the nnpackage file or directory. backends (str): Backends to use, default is "train".
Definition at line 22 of file session.py.
References package.experimental.train.session.TrainSession.__init__(), onert_micro::OMTrainingContext.loss, nnfw_loss_info.loss, package.experimental.train.session.TrainSession.loss, package.experimental.train.session.TrainSession.metrics, onert_micro::OMTrainingContext.optimizer, package.experimental.train.session.TrainSession.optimizer, onert::backend::acl_common::AclBackendContext< T_TensorBuilder, T_ConstantInitializer, T_KernelGenerator, T_Optimizer >.optimizer, onert::backend::train::BackendContext.optimizer(), validate_onnx2circle.OnnxRunner.session, onert::api::python::NNFW_SESSION.session, package.common.basesession.BaseSession.session, and package.experimental.train.session.TrainSession.train_info.
Referenced by package.experimental.train.session.TrainSession.__init__().
|
protected |
Common logic for one batch: bind data, run, collect loss & metrics. Returns a dict with keys "loss", "metrics", "time_ms".
Definition at line 289 of file session.py.
References package.experimental.train.session.TrainSession._check_batch_size(), package.experimental.train.session.TrainSession.metrics, validate_onnx2circle.OnnxRunner.session, onert::api::python::NNFW_SESSION.session, package.common.basesession.BaseSession.session, and package.experimental.train.session.TrainSession.train_info.
Referenced by package.experimental.train.session.TrainSession.eval_step(), and package.experimental.train.session.TrainSession.train_step().
|
protected |
Validate that the batch size of the data matches the configured training batch size. Args: data (list of np.ndarray): The data to validate. batch_size (int): The expected batch size. data_type (str): 'input' or 'expected'. Raises: ValueError: If the batch size does not match the expected value.
Definition at line 228 of file session.py.
Referenced by package.experimental.train.session.TrainSession._batch_step(), and package.experimental.train.session.TrainSession._run_phase().
|
protected |
Print the training parameters in a formatted way.
Definition at line 95 of file session.py.
References onert_micro::OMTrainingContext.loss, nnfw_loss_info.loss, package.experimental.train.session.TrainSession.loss, onert_micro::OMTrainingContext.optimizer, package.experimental.train.session.TrainSession.optimizer, onert::backend::acl_common::AclBackendContext< T_TensorBuilder, T_ConstantInitializer, T_KernelGenerator, T_Optimizer >.optimizer, onert::backend::train::BackendContext.optimizer(), and package.experimental.train.session.TrainSession.train_info.
|
protected |
Run a training or validation phase. Args: data: Data generator. train (bool): Whether to update weights. Returns: (avg_loss, avg_io_ms, avg_train_ms)
Definition at line 163 of file session.py.
References package.experimental.train.session.TrainSession._check_batch_size(), package.experimental.train.session.TrainSession.metrics, validate_onnx2circle.OnnxRunner.session, onert::api::python::NNFW_SESSION.session, package.common.basesession.BaseSession.session, and package.experimental.train.session.TrainSession.train_info.
Referenced by package.experimental.train.session.TrainSession.train().
None package.experimental.train.session.TrainSession.compile | ( | self, | |
Union[str, Optimizer] | optimizer, | ||
Union[str, LossFunction] | loss, | ||
List[Union[str, Metric]] | metrics = [] , |
||
int | batch_size = 16 |
||
) |
Compile the session with optimizer, loss, and metrics. Args: optimizer (str or Optimizer): Optimizer instance or name. loss (str or LossFunction): Loss instance or name. metrics (list of str or Metric): Metrics to evaluate during training. batch_size (int): Number of samples per batch.
Definition at line 43 of file session.py.
Dict[str, Any] package.experimental.train.session.TrainSession.eval_step | ( | self, | |
List[np.ndarray] | inputs, | ||
List[np.ndarray] | expecteds | ||
) |
Run one evaluation batch: forward only (no weight update). Args: inputs (list of np.ndarray): Inputs for this batch. expecteds (list of np.ndarray): Ground‑truth outputs for this batch. Returns: dict: { "loss": list of float losses, "metrics": dict of metric_name -> value, "eval_time": float (ms) }
Definition at line 267 of file session.py.
References package.experimental.train.session.TrainSession._batch_step(), onert_micro::OMTrainingContext.loss, nnfw_loss_info.loss, package.experimental.train.session.TrainSession.loss, onert_micro::OMTrainingContext.optimizer, package.experimental.train.session.TrainSession.optimizer, onert::backend::acl_common::AclBackendContext< T_TensorBuilder, T_ConstantInitializer, T_KernelGenerator, T_Optimizer >.optimizer, and onert::backend::train::BackendContext.optimizer().
Dict[str, Union[float, List[float]]] package.experimental.train.session.TrainSession.train | ( | self, | |
DataLoader | data_loader, | ||
int | epochs, | ||
float | validation_split = 0.0 , |
||
Optional[str] | checkpoint_path = None |
||
) |
Train the model using the given data loader. Args: data_loader: Data loader providing input and expected data. epochs (int): Number of epochs to train. validation_split (float): Ratio of validation data. Default is 0.0. checkpoint_path (str, optional): Path to save training checkpoints. Returns: dict: Timing and performance metrics.
Definition at line 113 of file session.py.
References package.experimental.train.session.TrainSession._run_phase(), onert_micro::OMTrainingContext.loss, nnfw_loss_info.loss, package.experimental.train.session.TrainSession.loss, package.experimental.train.session.TrainSession.metrics, onert_micro::OMTrainingContext.optimizer, package.experimental.train.session.TrainSession.optimizer, onert::backend::acl_common::AclBackendContext< T_TensorBuilder, T_ConstantInitializer, T_KernelGenerator, T_Optimizer >.optimizer, onert::backend::train::BackendContext.optimizer(), validate_onnx2circle.OnnxRunner.session, onert::api::python::NNFW_SESSION.session, and package.common.basesession.BaseSession.session.
Dict[str, Any] package.experimental.train.session.TrainSession.train_step | ( | self, | |
List[np.ndarray] | inputs, | ||
List[np.ndarray] | expecteds | ||
) |
Train the model for a single batch. Args: inputs (list of np.ndarray): List of input arrays for the batch. expecteds (list of np.ndarray): List of expected output arrays for the batch. Returns: dict: Loss and metrics values, and train_time in ms.
Definition at line 249 of file session.py.
References package.experimental.train.session.TrainSession._batch_step(), onert_micro::OMTrainingContext.loss, nnfw_loss_info.loss, package.experimental.train.session.TrainSession.loss, onert_micro::OMTrainingContext.optimizer, package.experimental.train.session.TrainSession.optimizer, onert::backend::acl_common::AclBackendContext< T_TensorBuilder, T_ConstantInitializer, T_KernelGenerator, T_Optimizer >.optimizer, and onert::backend::train::BackendContext.optimizer().
package.experimental.train.session.TrainSession.loss |
Definition at line 59 of file session.py.
Referenced by package.experimental.train.session.TrainSession.__init__(), package.experimental.train.session.TrainSession._print_training_parameters(), package.experimental.train.session.TrainSession.eval_step(), package.experimental.train.session.TrainSession.train(), and package.experimental.train.session.TrainSession.train_step().
package.experimental.train.session.TrainSession.metrics |
Definition at line 60 of file session.py.
Referenced by package.experimental.train.session.TrainSession.__init__(), package.experimental.train.session.TrainSession._batch_step(), package.experimental.train.session.TrainSession._run_phase(), and package.experimental.train.session.TrainSession.train().
package.experimental.train.session.TrainSession.optimizer |
Definition at line 57 of file session.py.
Referenced by package.experimental.train.session.TrainSession.__init__(), package.experimental.train.session.TrainSession._print_training_parameters(), package.experimental.train.session.TrainSession.eval_step(), package.experimental.train.session.TrainSession.train(), and package.experimental.train.session.TrainSession.train_step().
package.experimental.train.session.TrainSession.train_info |
Definition at line 84 of file session.py.
Referenced by package.experimental.train.session.TrainSession.__init__(), package.experimental.train.session.TrainSession._batch_step(), package.experimental.train.session.TrainSession._print_training_parameters(), and package.experimental.train.session.TrainSession._run_phase().