TensorFlow manager is a helper object in Neural Monkey which manages TensorFlow sessions, execution of the computation graph, and saving and restoring of model variables.
TensorFlowManager(num_sessions: int, num_threads: int, save_n_best: int = 1, minimize_metric: bool = False, gpu_allow_growth: bool = True, per_process_gpu_memory_fraction: float = 1.0, enable_tf_debug: bool = False) → None¶
Inteface between computational graph, data and TF sessions.
List of active Tensorflow sessions.
__init__(num_sessions: int, num_threads: int, save_n_best: int = 1, minimize_metric: bool = False, gpu_allow_growth: bool = True, per_process_gpu_memory_fraction: float = 1.0, enable_tf_debug: bool = False) → None¶
Initialize a TensorflowManager.
At this moment the graph must already exist. This method initializes required number of TensorFlow sessions and initializes them with provided variable files if they are provided.
- num_sessions – Number of sessions to be initialized.
- num_threads – Number of threads sessions will run in.
- save_n_best – How many best models to keep
- minimize_metric – Whether the best model is the one with the lowest or the highest score
- gpu_allow_growth – TF to allocate incrementally, not all at once.
- per_process_gpu_memory_fraction – Limit TF memory use.
execute(batch: neuralmonkey.dataset.Dataset, feedables: Set[neuralmonkey.model.feedable.Feedable], runners: Sequence[neuralmonkey.runners.base_runner.GraphExecutor], train: bool = False, compute_losses: bool = True, summaries: bool = True) → List[neuralmonkey.runners.base_runner.ExecutionResult]¶
Execute runners on a batch of data.
First, extract executables from the provided runners, telling the runners whether to compute also losses and summaries. Second, until all executables are satisfied (have the result attribute set), run the executables on the batch.
- batch – A batch of data.
- execution_scripts – List of runners to execute.
- train – Training mode flag (this value is fed to the train_mode placeholders in model parts).
- compute_losses – Flag to runners whether run loss operations.
- summaries – Flag to runners whether to run summary operations.
A list of ExecutionResult tuples, one for each executable (runner).
init_saving(vars_prefix: str) → None¶
initialize_model_parts(runners: Sequence[neuralmonkey.runners.base_runner.GraphExecutor], save: bool = False) → None¶
Initialize model parts variables from their checkpoints.
initialize_sessions() → None¶
restore(variable_files: Union[str, List[str]]) → None¶
restore_best_vars() → None¶
save(variable_files: Union[str, List[str]]) → None¶
validation_hook(score: float, epoch: int, batch: int) → None¶
get_default_tf_manager() → neuralmonkey.tf_manager.TensorFlowManager¶