mindformers.trainer.ImageClassificationTrainer¶
-
class
mindformers.trainer.ImageClassificationTrainer(model_name: str = None)[源代码]¶ ImageClassification Task For Trainer.
- 参数
model_name (str) – The model name of Task-Trainer. Default: None
- 引发
NotImplementedError – If train method or evaluate method or predict method not implemented.
实际案例
>>> import numpy as np >>> from mindspore.dataset import GeneratorDataset >>> from mindspore.nn import AdamWeightDecay, WarmUpLR, \ ... DynamicLossScaleUpdateCell, TrainOneStepWithLossScaleCell, Accuracy >>> from mindformers.trainer import ImageClassificationTrainer >>> from mindformers.tools.register import MindFormerConfig >>> from mindformers.models import ViTForImageClassification, ViTConfig, ViTImageProcessor >>> class MyDataLoader: ... def __init__(self): ... self._data = [np.zeros((3, 224, 224), np.float32) for _ in range(64)] ... self._label = [np.eye(1000)[i] for i in range(64)] ... ... def __getitem__(self, index): ... return self._data[index], self._label[index] ... ... def __len__(self): ... return len(self._data) >>> train_dataset = GeneratorDataset(source=MyDataLoader(), column_names=['image', 'label']).batch(batch_size=2) >>> eval_dataset = GeneratorDataset(source=MyDataLoader(), column_names=['image', 'label']).batch(batch_size=2) >>> input_data = np.uint8(np.random.random((5, 3, 255, 255))) >>> #1) use config to train >>> cls_task = ImageClassificationTrainer(model_name='vit_base_p16') >>> cls_task.train(dataset=train_dataset) >>> cls_task.evaluate(dataset=eval_dataset) >>> cls_task.predict(input_data=input_data, top_k=5) >>> #2) use instance function to train >>> vit_config = ViTConfig(batch_size=2) >>> network_with_loss = ViTForImageClassification(vit_config) >>> lr_schedule = WarmUpLR(learning_rate=0.001, warmup_steps=100) >>> optimizer = AdamWeightDecay(beta1=0.009, beta2=0.999, ... learning_rate=lr_schedule, ... params=network_with_loss.trainable_params()) >>> loss_scale = DynamicLossScaleUpdateCell(loss_scale_value=2**12, scale_factor=2, scale_window=1000) >>> wrapper = TrainOneStepWithLossScaleCell(network_with_loss, optimizer, scale_sense=loss_scale) >>> cls_task.train(wrapper=wrapper, dataset=train_dataset) >>> compute_metrics = {"Accuracy": Accuracy(eval_type='classification')} >>> cls_task.evaluate(network=network_with_loss, dataset=eval_dataset, compute_metrics=compute_metrics) >>> image_processor = ViTImageProcessor(size=224) >>> cls_task.predict(input_data=input_data, image_processor=image_processor, top_k=5)
-
evaluate(config: Union[dict, mindformers.tools.register.config.MindFormerConfig, mindformers.trainer.config_args.ConfigArguments, mindformers.trainer.training_args.TrainingArguments, None] = None, network: Union[mindspore.nn.cell.Cell, mindformers.models.base_model.BaseModel, None] = None, dataset: Union[mindformers.dataset.base_dataset.BaseDataset, mindspore.dataset.engine.datasets_user_defined.GeneratorDataset, None] = None, callbacks: Union[mindspore.train.callback._callback.Callback, List[mindspore.train.callback._callback.Callback], None] = None, compute_metrics: Union[dict, set, None] = None, **kwargs)[源代码]¶ Evaluate task for ImageClassification Trainer. This function is used to evaluate the network.
The trainer interface is used to quickly start training for general task. It also allows users to customize the network, dataset, callbacks, compute_metrics.
- 参数
config (Optional[Union[dict, MindFormerConfig, ConfigArguments, TrainingArguments]]) – The task config which is used to configure the dataset, the hyper-parameter, optimizer, etc. It supports config dict or MindFormerConfig or TrainingArguments or ConfigArguments class. Default: None.
network (Optional[Union[Cell, BaseModel]]) – The network for trainer. It supports model name or BaseModel or MindSpore Cell class. Default: None.
dataset (Optional[Union[BaseDataset, GeneratorDataset]]) – The evaluate dataset. It support real dataset path or BaseDateset class or MindSpore Dataset class. Default: None.
callbacks (Optional[Union[Callback, List[Callback]]]) – The training callback function. It support CallBack or CallBack List of MindSpore. Default: None.
compute_metrics (Optional[Union[dict, set]]) – The metric of evaluating. It support dict or set in MindSpore’s Metric class. Default: None.
-
predict(config: Union[dict, mindformers.tools.register.config.MindFormerConfig, mindformers.trainer.config_args.ConfigArguments, mindformers.trainer.training_args.TrainingArguments, None] = None, input_data: Union[mindspore.common.tensor.Tensor, numpy.ndarray, PIL.Image.Image, str, list, None] = None, network: Union[mindspore.nn.cell.Cell, mindformers.models.base_model.BaseModel, None] = None, image_processor: Optional[mindformers.models.base_processor.BaseImageProcessor] = None, **kwargs)[源代码]¶ Predict task for ImageClassification Trainer. This function is used to predict the network.
The trainer interface is used to quickly start training for general task. It also allows users to customize the network, tokenizer, image_processor, audio_processor.
- 参数
config (Optional[Union[dict, MindFormerConfig, ConfigArguments, TrainingArguments]]) – The task config which is used to configure the dataset, the hyper-parameter, optimizer, etc. It supports config dict or MindFormerConfig or TrainingArguments or ConfigArguments class. Default: None.
input_data (Optional[Union[Tensor, np.ndarray, Image, str, list]]) – The predict data. Default: None.
network (Optional[Union[Cell, BaseModel]]) – The network for trainer. It supports model name or BaseModel or MindSpore Cell class. Default: None.
image_processor (Optional[BaseImageProcessor]) – The processor for image preprocessing. It support BaseImageProcessor class. Default: None.
-
train(config: Union[dict, mindformers.tools.register.config.MindFormerConfig, mindformers.trainer.config_args.ConfigArguments, mindformers.trainer.training_args.TrainingArguments, None] = None, network: Union[mindspore.nn.cell.Cell, mindformers.models.base_model.BaseModel, None] = None, dataset: Union[mindformers.dataset.base_dataset.BaseDataset, mindspore.dataset.engine.datasets_user_defined.GeneratorDataset, None] = None, wrapper: Optional[mindspore.nn.wrap.cell_wrapper.TrainOneStepCell] = None, optimizer: Optional[mindspore.nn.optim.optimizer.Optimizer] = None, callbacks: Union[mindspore.train.callback._callback.Callback, List[mindspore.train.callback._callback.Callback], None] = None, **kwargs)[源代码]¶ Train task for ImageClassification Trainer. This function is used to train or fine-tune the network.
The trainer interface is used to quickly start training for general task. It also allows users to customize the network, optimizer, dataset, wrapper, callback.
- 参数
config (Optional[Union[dict, MindFormerConfig, ConfigArguments, TrainingArguments]]) – The task config which is used to configure the dataset, the hyper-parameter, optimizer, etc. It supports config dict or MindFormerConfig or TrainingArguments or ConfigArguments class. Default: None.
network (Optional[Union[Cell, BaseModel]]) – The network for trainer. It supports model name or BaseModel or MindSpore Cell class. Default: None.
dataset (Optional[Union[BaseDataset, GeneratorDataset]]) – The training dataset. It support real dataset path or BaseDateset class or MindSpore Dataset class. Default: None.
optimizer (Optional[Optimizer]) – The training network’s optimizer. It support Optimizer class of MindSpore. Default: None.
wrapper (Optional[TrainOneStepCell]) – Wraps the network with the optimizer. It support TrainOneStepCell class of MindSpore. Default: None.
callbacks (Optional[Union[Callback, List[Callback]]]) – The training callback function. It support CallBack or CallBack List of MindSpore. Default: None.
- 引发
NotImplementedError – If wrapper not implemented.