EDeepLearningTool Class
EDeepLearningTool represents the common operations of deep learning tools.
The class is responsible for handling CPU/GPU settings and training.
Computing the result for an image is called inference and is the responsability of the actual deep learning tools (see EClassifier).
Derived Class(es):EClassifierELocatorBaseESupervisedSegmenterEUnsupervisedSegmenter
Namespace: Euresys::Open_eVision::EasyDeepLearning
Methods
Returns the corresponding deep learning tool that must be deleted by the caller.
Only multiple GPUs with the default engine is supported.
In order for the model to be automatically saved during the training, the tool must have been loaded or saved to a file. The path where the tool will be saved is either indicated by EDeepLearningTool::Path or the three paths EDeepLearningTool::SettingsPath, EDeepLearningTool::InferenceModelPath, and EDeepLearningTool::TrainingModelPath. If one of these path is empty, the corresponding part of the tool will not be saved automatically during training.
By default, auto save is disabled and the period is equal to 0.
When using multi-GPUs processing (see EDeepLearningTool::GPUIndexes), the batch size is the number of images that each GPU will process at once.
A large batch size will increase the processing speed on GPU but also the memory requirements.
The batch size must be bigger or equal to
After the end of the training, this number is the actual number of iterations performed during the training which can be lower than the number of iterations given to the EDeepLearningTool::Train method (for example if the user called EDeepLearningTool::StopTraining).
When EDeepLearningTool::EnableDeterministicTraining, the random seed is generated using a random non-deterministic source.
Enable the use of a GPU for training and inference of the deep learning tool. If the active engine is not the default engine, EDeepLearningTool::EnableGPU will be false even if the active device has a GPU device type. Setting EDeepLearningTool::EnableGPU to any value when the active engine is not the default one will throw an exception.
Indexes of the GPUs to use for computations.
Using multiple GPUs is only possible when we can process multiple images at once, i.e. during training (EDeepLearningTool::Train) or batch inference.
By default, all the detected GPUs will be used.
Use EDeepLearningDevice::IsPrecisionSupported to check whether a device support the given precision.
The default label colors are the one specified in the dataset used for training.
The default label opacities are the one specified in the dataset used for training.
Number of detected NVIDIA GPU.
For EasyClassify and EasyLocate, this will always be equal to 1.
For EasySegment, the number of patches will depend on the scale, patch size and sampling density parameters.
In practice, for EasyClassify and EasyLocate, this is the same as the batch size.
For EasySegment, the value will depend on the scale, patch size and sampling density parameters.
Default value is true.
You need to pass an image or a vector of images with the same characteristics (image resolution, image type and number of image) as the image or vector of images that you will use to make inference with this tool.
The given ESerializer must have been created for writing.
The training model is necessary to continue training the tool.
Only multiple GPUs with the default engine is supported.
In order for the model to be automatically saved during the training, the tool must have been loaded or saved to a file. The path where the tool will be saved is either indicated by EDeepLearningTool::Path or the three paths EDeepLearningTool::SettingsPath, EDeepLearningTool::InferenceModelPath, and EDeepLearningTool::TrainingModelPath. If one of these path is empty, the corresponding part of the tool will not be saved automatically during training.
By default, auto save is disabled and the period is equal to 0.
When using multi-GPUs processing (see EDeepLearningTool::GPUIndexes), the batch size is the number of images that each GPU will process at once.
A large batch size will increase the processing speed on GPU but also the memory requirements.
The batch size must be bigger or equal to
When EDeepLearningTool::EnableDeterministicTraining, the random seed is generated using a random non-deterministic source.
Enable the use of a GPU for training and inference of the deep learning tool. If the active engine is not the default engine, EDeepLearningTool::EnableGPU will be false even if the active device has a GPU device type. Setting EDeepLearningTool::EnableGPU to any value when the active engine is not the default one will throw an exception.
Indexes of the GPUs to use for computations.
Using multiple GPUs is only possible when we can process multiple images at once, i.e. during training (EDeepLearningTool::Train) or batch inference.
By default, all the detected GPUs will be used.
Use EDeepLearningDevice::IsPrecisionSupported to check whether a device support the given precision.
Default value is true.
At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool::BestIteration.
A negative timeout means that the method will wait until the training is complete.
The default value is set to
The method returns the number of trained iterations.
EDeepLearningTool Class
EDeepLearningTool represents the common operations of deep learning tools.
The class is responsible for handling CPU/GPU settings and training.
Computing the result for an image is called inference and is the responsability of the actual deep learning tools (see EClassifier).
Derived Class(es):EClassifierELocatorBaseESupervisedSegmenterEUnsupervisedSegmenter
Namespace: Euresys.Open_eVision.EasyDeepLearning
Properties
Only multiple GPUs with the default engine is supported.
In order for the model to be automatically saved during the training, the tool must have been loaded or saved to a file. The path where the tool will be saved is either indicated by EDeepLearningTool::Path or the three paths EDeepLearningTool::SettingsPath, EDeepLearningTool::InferenceModelPath, and EDeepLearningTool::TrainingModelPath. If one of these path is empty, the corresponding part of the tool will not be saved automatically during training.
By default, auto save is disabled and the period is equal to 0.
When using multi-GPUs processing (see EDeepLearningTool::GPUIndexes), the batch size is the number of images that each GPU will process at once.
A large batch size will increase the processing speed on GPU but also the memory requirements.
The batch size must be bigger or equal to
After the end of the training, this number is the actual number of iterations performed during the training which can be lower than the number of iterations given to the EDeepLearningTool::Train method (for example if the user called EDeepLearningTool::StopTraining).
When EDeepLearningTool::EnableDeterministicTraining, the random seed is generated using a random non-deterministic source.
Enable the use of a GPU for training and inference of the deep learning tool. If the active engine is not the default engine, EDeepLearningTool::EnableGPU will be false even if the active device has a GPU device type. Setting EDeepLearningTool::EnableGPU to any value when the active engine is not the default one will throw an exception.
Indexes of the GPUs to use for computations.
Using multiple GPUs is only possible when we can process multiple images at once, i.e. during training (EDeepLearningTool::Train) or batch inference.
By default, all the detected GPUs will be used.
Use EDeepLearningDevice::IsPrecisionSupported to check whether a device support the given precision.
Number of detected NVIDIA GPU.
Default value is true.
Methods
Returns the corresponding deep learning tool that must be deleted by the caller.
The default label colors are the one specified in the dataset used for training.
The default label opacities are the one specified in the dataset used for training.
For EasyClassify and EasyLocate, this will always be equal to 1.
For EasySegment, the number of patches will depend on the scale, patch size and sampling density parameters.
In practice, for EasyClassify and EasyLocate, this is the same as the batch size.
For EasySegment, the value will depend on the scale, patch size and sampling density parameters.
You need to pass an image or a vector of images with the same characteristics (image resolution, image type and number of image) as the image or vector of images that you will use to make inference with this tool.
The given ESerializer must have been created for writing.
The training model is necessary to continue training the tool.
At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool::BestIteration.
A negative timeout means that the method will wait until the training is complete.
The default value is set to
The method returns the number of trained iterations.