itwinai.tensorflowο
distributedο
TensorFlow distributed strategies.
- itwinai.tensorflow.distributed.get_strategy() Tuple[tensorflow.distribute.Strategy, int][source]ο
Strategy for distributed TensorFlow training. It will automatically detect if you are running in a multi-node environment, returning the correct TensorFlow distributed strategy for data parallel distributed training.
- Returns:
strategy and number of parallel workers.
- Return type:
Tuple[tf.distribute.Strategy, int]
trainerο
Base TensorFlow trainer module.
- class itwinai.tensorflow.trainer.TensorflowTrainer(epochs: int, micro_batch_size: int, shuffle_buffer: int | None = None, callbacks: List[Dict | keras.callbacks.Callback] | None = None, model_config: Dict | None = None, model_compile_config: Dict | None = None, rnd_seed: int | None = None, verbose: str | int = 'auto')[source]ο
Bases:
TrainerTrains a Keras model.
- Parameters:
epochs (int) β number of training epochs.
micro_batch_size (int) β per-worker batch size. Equals macro batch size when not running distributed.
shuffle_buffer (Optional[int], optional) β if given, shuffles dataset using a buffer of given size. See
tf.data.Dataset.shuffle. Defaults to None.callbacks (Optional[List], optional) β list fo Keras callbacks. Can be a list of dictionary configurations. Defaults to None.
model_config (Optional[Dict], optional) β model configuration. If given, a model is instantiated from this configuration. Defaults to None.
model_compile_config (Optional[Dict], optional) β configuration for
keras.Model.compile. Defaults to None.rnd_seed (Optional[int], optional) β random seed. Defaults to None.
verbose (Union[str, int], optional) β verbosity level for
keras.Model.fit. Defaults to βautoβ.
- epochs: intο
Total number of training epochs.
- micro_batch_size: intο
Per-worker batch size (when distributed).
- shuffle_buffer: int | None = Noneο
Buffer used to shuffle dataset. Defaults to None.
- rnd_seed: int | None = Noneο
Random seed for reproducibility. Defaults to None.
- callbacks: List | None = Noneο
List of Keras callbacks. Defaults to None.
- strategy: tensorflow.distribute.Strategyο
TensorFlow distributed strategy.
- num_workers: intο
Total number of workers in distributed strategy.
- macro_batch_size: intο
Total batch size. When distributed, it is the sum of
micro_batch_sizeacross all workers.
- static instantiate_compile_conf(model_compile_config: Dict) Dict[str, Any][source]ο
Instantiate fields of Keras
model.compile()from their dictionary serialization.- Parameters:
model_compile_config (Dict) β fields of Keras
model.compile()serialized as dictionary.- Returns:
dictionary mapping compile argument names to the instantiated objects.
- Return type:
Dict[str, Any]
- static instantiate_callbacks(callbacks: List[Dict | keras.callbacks.Callback]) List[keras.callbacks.Callback][source]ο
Instantiate Keras callbacks from dictionaries.
- Parameters:
callbacks (List[Union[Dict, Callback]]) β list of Keras callbacks
dictionary. (in serialized as)
- Returns:
list of instantiated callbacks.
- Return type:
List[Callback]
- execute(train_dataset: tensorflow.data.Dataset, validation_dataset: tensorflow.data.Dataset, test_dataset: tensorflow.data.Dataset | None = None) Tuple[tensorflow.data.Dataset, tensorflow.data.Dataset, tensorflow.data.Dataset, keras.Model][source]ο
Run training. Users should override this method.
- Parameters:
train_dataset (Dataset) β train dataset of type
tensorflow.data.Dataset.validation_dataset (Dataset) β validation dataset of type
tensorflow.data.Dataset.test_dataset (Optional[Dataset], optional) β test dataset of type
tensorflow.data.Dataset. Defaults to None.
- Returns:
tuple of train_dataset, validation_dataset, test_dataset, and trained Keras model.
- Return type:
Tuple[Dataset, Dataset, Dataset, keras.Model]