From 91ff480e2693f36b11aaebc4e9cc79e4e3c049da Mon Sep 17 00:00:00 2001 From: Allan Lin Date: Thu, 19 Aug 2021 20:29:51 +0800 Subject: [PATCH] Update namespaces inside torch.utils.data to the latest. (#13167) * Update torch.utils.data namespaces to the latest. * Format * Update Dataloader. * Style --- .../multiple_choice/utils_multiple_choice.py | 2 +- examples/legacy/seq2seq/seq2seq_trainer.py | 2 +- .../legacy/token-classification/utils_ner.py | 2 +- .../language-modeling/run_clm_no_trainer.py | 2 +- .../language-modeling/run_mlm_no_trainer.py | 2 +- .../multiple-choice/run_swag_no_trainer.py | 2 +- .../run_qa_beam_search_no_trainer.py | 2 +- .../question-answering/run_qa_no_trainer.py | 2 +- .../run_summarization_no_trainer.py | 2 +- .../run_glue_no_trainer.py | 2 +- .../run_ner_no_trainer.py | 2 +- .../translation/run_translation_no_trainer.py | 2 +- .../adversarial/utils_hans.py | 2 +- .../distillation/grouped_batch_sampler.py | 2 +- src/transformers/data/datasets/glue.py | 2 +- .../data/datasets/language_modeling.py | 2 +- src/transformers/data/datasets/squad.py | 2 +- src/transformers/trainer.py | 32 +++++++++---------- src/transformers/trainer_callback.py | 4 +-- src/transformers/trainer_pt_utils.py | 7 ++-- src/transformers/trainer_seq2seq.py | 2 +- .../run_{{cookiecutter.example_shortcut}}.py | 2 +- tests/test_trainer_distributed.py | 2 +- tests/test_trainer_tpu.py | 2 +- 24 files changed, 41 insertions(+), 44 deletions(-) diff --git a/examples/legacy/multiple_choice/utils_multiple_choice.py b/examples/legacy/multiple_choice/utils_multiple_choice.py index 784a7578d..2b6b5cc18 100644 --- a/examples/legacy/multiple_choice/utils_multiple_choice.py +++ b/examples/legacy/multiple_choice/utils_multiple_choice.py @@ -77,7 +77,7 @@ class Split(Enum): if is_torch_available(): import torch - from torch.utils.data.dataset import Dataset + from torch.utils.data import Dataset class MultipleChoiceDataset(Dataset): """ diff --git a/examples/legacy/seq2seq/seq2seq_trainer.py b/examples/legacy/seq2seq/seq2seq_trainer.py index 075e9f728..3ddc798b6 100644 --- a/examples/legacy/seq2seq/seq2seq_trainer.py +++ b/examples/legacy/seq2seq/seq2seq_trainer.py @@ -141,7 +141,7 @@ class Seq2SeqTrainer(Trainer): ) return scheduler - def _get_train_sampler(self) -> Optional[torch.utils.data.sampler.Sampler]: + def _get_train_sampler(self) -> Optional[torch.utils.data.Sampler]: if isinstance(self.train_dataset, torch.utils.data.IterableDataset): return None elif is_torch_tpu_available(): diff --git a/examples/legacy/token-classification/utils_ner.py b/examples/legacy/token-classification/utils_ner.py index 837d63002..2537aecfc 100644 --- a/examples/legacy/token-classification/utils_ner.py +++ b/examples/legacy/token-classification/utils_ner.py @@ -206,7 +206,7 @@ class TokenClassificationTask: if is_torch_available(): import torch from torch import nn - from torch.utils.data.dataset import Dataset + from torch.utils.data import Dataset class TokenClassificationDataset(Dataset): """ diff --git a/examples/pytorch/language-modeling/run_clm_no_trainer.py b/examples/pytorch/language-modeling/run_clm_no_trainer.py index f4d86a18d..010d99a4b 100755 --- a/examples/pytorch/language-modeling/run_clm_no_trainer.py +++ b/examples/pytorch/language-modeling/run_clm_no_trainer.py @@ -31,7 +31,7 @@ import random import datasets import torch from datasets import load_dataset -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/language-modeling/run_mlm_no_trainer.py b/examples/pytorch/language-modeling/run_mlm_no_trainer.py index d2bfdf26a..2c5346a85 100755 --- a/examples/pytorch/language-modeling/run_mlm_no_trainer.py +++ b/examples/pytorch/language-modeling/run_mlm_no_trainer.py @@ -31,7 +31,7 @@ import random import datasets import torch from datasets import load_dataset -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/multiple-choice/run_swag_no_trainer.py b/examples/pytorch/multiple-choice/run_swag_no_trainer.py index 320bfc7a2..c893f165b 100755 --- a/examples/pytorch/multiple-choice/run_swag_no_trainer.py +++ b/examples/pytorch/multiple-choice/run_swag_no_trainer.py @@ -29,7 +29,7 @@ from typing import Optional, Union import datasets import torch from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/question-answering/run_qa_beam_search_no_trainer.py b/examples/pytorch/question-answering/run_qa_beam_search_no_trainer.py index 6843f3a14..bcde944b0 100644 --- a/examples/pytorch/question-answering/run_qa_beam_search_no_trainer.py +++ b/examples/pytorch/question-answering/run_qa_beam_search_no_trainer.py @@ -28,7 +28,7 @@ import datasets import numpy as np import torch from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/question-answering/run_qa_no_trainer.py b/examples/pytorch/question-answering/run_qa_no_trainer.py index 7d79733c1..febf1b616 100755 --- a/examples/pytorch/question-answering/run_qa_no_trainer.py +++ b/examples/pytorch/question-answering/run_qa_no_trainer.py @@ -28,7 +28,7 @@ import datasets import numpy as np import torch from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/summarization/run_summarization_no_trainer.py b/examples/pytorch/summarization/run_summarization_no_trainer.py index 00ba1b4d4..9bf2e7e05 100644 --- a/examples/pytorch/summarization/run_summarization_no_trainer.py +++ b/examples/pytorch/summarization/run_summarization_no_trainer.py @@ -29,7 +29,7 @@ import nltk import numpy as np import torch from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/text-classification/run_glue_no_trainer.py b/examples/pytorch/text-classification/run_glue_no_trainer.py index 5fd64a0f5..75f4ad5bb 100644 --- a/examples/pytorch/text-classification/run_glue_no_trainer.py +++ b/examples/pytorch/text-classification/run_glue_no_trainer.py @@ -21,7 +21,7 @@ import random import datasets from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/token-classification/run_ner_no_trainer.py b/examples/pytorch/token-classification/run_ner_no_trainer.py index 4dea38d5c..691d1ebbe 100755 --- a/examples/pytorch/token-classification/run_ner_no_trainer.py +++ b/examples/pytorch/token-classification/run_ner_no_trainer.py @@ -27,7 +27,7 @@ import random import datasets import torch from datasets import ClassLabel, load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/pytorch/translation/run_translation_no_trainer.py b/examples/pytorch/translation/run_translation_no_trainer.py index e2d953f82..78b4ae207 100644 --- a/examples/pytorch/translation/run_translation_no_trainer.py +++ b/examples/pytorch/translation/run_translation_no_trainer.py @@ -28,7 +28,7 @@ import datasets import numpy as np import torch from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/examples/research_projects/adversarial/utils_hans.py b/examples/research_projects/adversarial/utils_hans.py index bf0623ffb..b02bf8135 100644 --- a/examples/research_projects/adversarial/utils_hans.py +++ b/examples/research_projects/adversarial/utils_hans.py @@ -88,7 +88,7 @@ class InputFeatures: if is_torch_available(): import torch - from torch.utils.data.dataset import Dataset + from torch.utils.data import Dataset class HansDataset(Dataset): """ diff --git a/examples/research_projects/distillation/grouped_batch_sampler.py b/examples/research_projects/distillation/grouped_batch_sampler.py index c386c4224..6c2d9b974 100644 --- a/examples/research_projects/distillation/grouped_batch_sampler.py +++ b/examples/research_projects/distillation/grouped_batch_sampler.py @@ -19,7 +19,7 @@ import copy from collections import defaultdict import numpy as np -from torch.utils.data.sampler import BatchSampler, Sampler +from torch.utils.data import BatchSampler, Sampler from utils import logger diff --git a/src/transformers/data/datasets/glue.py b/src/transformers/data/datasets/glue.py index 1ba786c38..0fd255766 100644 --- a/src/transformers/data/datasets/glue.py +++ b/src/transformers/data/datasets/glue.py @@ -20,7 +20,7 @@ from enum import Enum from typing import List, Optional, Union import torch -from torch.utils.data.dataset import Dataset +from torch.utils.data import Dataset from filelock import FileLock diff --git a/src/transformers/data/datasets/language_modeling.py b/src/transformers/data/datasets/language_modeling.py index 9bef64e3b..993765091 100644 --- a/src/transformers/data/datasets/language_modeling.py +++ b/src/transformers/data/datasets/language_modeling.py @@ -21,7 +21,7 @@ import warnings from typing import Dict, List, Optional import torch -from torch.utils.data.dataset import Dataset +from torch.utils.data import Dataset from filelock import FileLock diff --git a/src/transformers/data/datasets/squad.py b/src/transformers/data/datasets/squad.py index 9665fb25c..294f89e2f 100644 --- a/src/transformers/data/datasets/squad.py +++ b/src/transformers/data/datasets/squad.py @@ -19,7 +19,7 @@ from enum import Enum from typing import Dict, List, Optional, Union import torch -from torch.utils.data.dataset import Dataset +from torch.utils.data import Dataset from filelock import FileLock diff --git a/src/transformers/trainer.py b/src/transformers/trainer.py index 1eb5f74e1..f4ac212a1 100755 --- a/src/transformers/trainer.py +++ b/src/transformers/trainer.py @@ -49,10 +49,8 @@ import numpy as np import torch from packaging import version from torch import nn -from torch.utils.data.dataloader import DataLoader -from torch.utils.data.dataset import Dataset, IterableDataset +from torch.utils.data import DataLoader, Dataset, IterableDataset, RandomSampler, SequentialSampler from torch.utils.data.distributed import DistributedSampler -from torch.utils.data.sampler import RandomSampler, SequentialSampler from . import __version__ from .configuration_utils import PretrainedConfig @@ -206,16 +204,16 @@ class Trainer: The function to use to form a batch from a list of elements of :obj:`train_dataset` or :obj:`eval_dataset`. Will default to :func:`~transformers.default_data_collator` if no ``tokenizer`` is provided, an instance of :func:`~transformers.DataCollatorWithPadding` otherwise. - train_dataset (:obj:`torch.utils.data.dataset.Dataset` or :obj:`torch.utils.data.dataset.IterableDataset`, `optional`): + train_dataset (:obj:`torch.utils.data.Dataset` or :obj:`torch.utils.data.IterableDataset`, `optional`): The dataset to use for training. If it is an :obj:`datasets.Dataset`, columns not accepted by the ``model.forward()`` method are automatically removed. - Note that if it's a :obj:`torch.utils.data.dataset.IterableDataset` with some randomization and you are - training in a distributed fashion, your iterable dataset should either use a internal attribute - :obj:`generator` that is a :obj:`torch.Generator` for the randomization that must be identical on all - processes (and the Trainer will manually set the seed of this :obj:`generator` at each epoch) or have a - :obj:`set_epoch()` method that internally sets the seed of the RNGs used. - eval_dataset (:obj:`torch.utils.data.dataset.Dataset`, `optional`): + Note that if it's a :obj:`torch.utils.data.IterableDataset` with some randomization and you are training in + a distributed fashion, your iterable dataset should either use a internal attribute :obj:`generator` that + is a :obj:`torch.Generator` for the randomization that must be identical on all processes (and the Trainer + will manually set the seed of this :obj:`generator` at each epoch) or have a :obj:`set_epoch()` method that + internally sets the seed of the RNGs used. + eval_dataset (:obj:`torch.utils.data.Dataset`, `optional`): The dataset to use for evaluation. If it is an :obj:`datasets.Dataset`, columns not accepted by the ``model.forward()`` method are automatically removed. tokenizer (:class:`PreTrainedTokenizerBase`, `optional`): @@ -537,7 +535,7 @@ class Trainer: else: return dataset.remove_columns(ignored_columns) - def _get_train_sampler(self) -> Optional[torch.utils.data.sampler.Sampler]: + def _get_train_sampler(self) -> Optional[torch.utils.data.Sampler]: if not isinstance(self.train_dataset, collections.abc.Sized): return None @@ -617,7 +615,7 @@ class Trainer: if is_datasets_available() and isinstance(train_dataset, datasets.Dataset): train_dataset = self._remove_unused_columns(train_dataset, description="training") - if isinstance(train_dataset, torch.utils.data.dataset.IterableDataset): + if isinstance(train_dataset, torch.utils.data.IterableDataset): if self.args.world_size > 1: train_dataset = IterableDatasetShard( train_dataset, @@ -647,7 +645,7 @@ class Trainer: pin_memory=self.args.dataloader_pin_memory, ) - def _get_eval_sampler(self, eval_dataset: Dataset) -> Optional[torch.utils.data.sampler.Sampler]: + def _get_eval_sampler(self, eval_dataset: Dataset) -> Optional[torch.utils.data.Sampler]: # Deprecated code if self.args.use_legacy_prediction_loop: if is_torch_tpu_available(): @@ -683,7 +681,7 @@ class Trainer: Subclass and override this method if you want to inject some custom behavior. Args: - eval_dataset (:obj:`torch.utils.data.dataset.Dataset`, `optional`): + eval_dataset (:obj:`torch.utils.data.Dataset`, `optional`): If provided, will override :obj:`self.eval_dataset`. If it is an :obj:`datasets.Dataset`, columns not accepted by the ``model.forward()`` method are automatically removed. It must implement :obj:`__len__`. """ @@ -694,7 +692,7 @@ class Trainer: if is_datasets_available() and isinstance(eval_dataset, datasets.Dataset): eval_dataset = self._remove_unused_columns(eval_dataset, description="evaluation") - if isinstance(eval_dataset, torch.utils.data.dataset.IterableDataset): + if isinstance(eval_dataset, torch.utils.data.IterableDataset): if self.args.world_size > 1: eval_dataset = IterableDatasetShard( eval_dataset, @@ -730,14 +728,14 @@ class Trainer: Subclass and override this method if you want to inject some custom behavior. Args: - test_dataset (:obj:`torch.utils.data.dataset.Dataset`, `optional`): + test_dataset (:obj:`torch.utils.data.Dataset`, `optional`): The test dataset to use. If it is an :obj:`datasets.Dataset`, columns not accepted by the ``model.forward()`` method are automatically removed. It must implement :obj:`__len__`. """ if is_datasets_available() and isinstance(test_dataset, datasets.Dataset): test_dataset = self._remove_unused_columns(test_dataset, description="test") - if isinstance(test_dataset, torch.utils.data.dataset.IterableDataset): + if isinstance(test_dataset, torch.utils.data.IterableDataset): if self.args.world_size > 1: test_dataset = IterableDatasetShard( test_dataset, diff --git a/src/transformers/trainer_callback.py b/src/transformers/trainer_callback.py index 2dee17563..e205c87b1 100644 --- a/src/transformers/trainer_callback.py +++ b/src/transformers/trainer_callback.py @@ -175,9 +175,9 @@ class TrainerCallback: The optimizer used for the training steps. lr_scheduler (:obj:`torch.optim.lr_scheduler.LambdaLR`): The scheduler used for setting the learning rate. - train_dataloader (:obj:`torch.utils.data.dataloader.DataLoader`, `optional`): + train_dataloader (:obj:`torch.utils.data.DataLoader`, `optional`): The current dataloader used for training. - eval_dataloader (:obj:`torch.utils.data.dataloader.DataLoader`, `optional`): + eval_dataloader (:obj:`torch.utils.data.DataLoader`, `optional`): The current dataloader used for training. metrics (:obj:`Dict[str, float]`): The metrics computed by the last evaluation phase. diff --git a/src/transformers/trainer_pt_utils.py b/src/transformers/trainer_pt_utils.py index 4eab539d0..2751f7be5 100644 --- a/src/transformers/trainer_pt_utils.py +++ b/src/transformers/trainer_pt_utils.py @@ -29,9 +29,8 @@ import numpy as np import torch from packaging import version from torch import nn -from torch.utils.data.dataset import Dataset, IterableDataset +from torch.utils.data import Dataset, IterableDataset, RandomSampler, Sampler from torch.utils.data.distributed import DistributedSampler -from torch.utils.data.sampler import RandomSampler, Sampler from .file_utils import is_sagemaker_dp_enabled, is_sagemaker_mp_enabled, is_torch_tpu_available from .tokenization_utils_base import BatchEncoding @@ -290,7 +289,7 @@ class SequentialDistributedSampler(Sampler): return self.num_samples -def get_tpu_sampler(dataset: torch.utils.data.dataset.Dataset, bach_size: int): +def get_tpu_sampler(dataset: torch.utils.data.Dataset, batch_size: int): if xm.xrt_world_size() <= 1: return RandomSampler(dataset) return DistributedSampler(dataset, num_replicas=xm.xrt_world_size(), rank=xm.get_ordinal()) @@ -690,7 +689,7 @@ class IterableDatasetShard(IterableDataset): Args: - dataset (:obj:`torch.utils.data.dataset.IterableDataset`): + dataset (:obj:`torch.utils.data.IterableDataset`): The batch sampler to split in several shards. batch_size (:obj:`int`, `optional`, defaults to 1): The size of the batches per shard. diff --git a/src/transformers/trainer_seq2seq.py b/src/transformers/trainer_seq2seq.py index c9a061646..bfcded021 100644 --- a/src/transformers/trainer_seq2seq.py +++ b/src/transformers/trainer_seq2seq.py @@ -17,7 +17,7 @@ from typing import Any, Dict, List, Optional, Tuple, Union import torch from packaging import version from torch import nn -from torch.utils.data.dataset import Dataset +from torch.utils.data import Dataset from .deepspeed import is_deepspeed_zero3_enabled from .trainer import Trainer diff --git a/templates/adding_a_new_example_script/{{cookiecutter.directory_name}}/run_{{cookiecutter.example_shortcut}}.py b/templates/adding_a_new_example_script/{{cookiecutter.directory_name}}/run_{{cookiecutter.example_shortcut}}.py index 564145adb..799bf1619 100755 --- a/templates/adding_a_new_example_script/{{cookiecutter.directory_name}}/run_{{cookiecutter.example_shortcut}}.py +++ b/templates/adding_a_new_example_script/{{cookiecutter.directory_name}}/run_{{cookiecutter.example_shortcut}}.py @@ -499,7 +499,7 @@ import random import datasets from datasets import load_dataset, load_metric -from torch.utils.data.dataloader import DataLoader +from torch.utils.data import DataLoader from tqdm.auto import tqdm import transformers diff --git a/tests/test_trainer_distributed.py b/tests/test_trainer_distributed.py index b40526c6d..6ed74efe5 100644 --- a/tests/test_trainer_distributed.py +++ b/tests/test_trainer_distributed.py @@ -31,7 +31,7 @@ logger = logging.get_logger(__name__) if is_torch_available(): import torch from torch import nn - from torch.utils.data.dataset import Dataset + from torch.utils.data import Dataset from transformers import Trainer diff --git a/tests/test_trainer_tpu.py b/tests/test_trainer_tpu.py index 0ef90a9f1..e9f8f1a15 100644 --- a/tests/test_trainer_tpu.py +++ b/tests/test_trainer_tpu.py @@ -32,7 +32,7 @@ logger = logging.get_logger(__name__) if is_torch_available(): import torch from torch import nn - from torch.utils.data.dataset import Dataset + from torch.utils.data import Dataset from transformers import Trainer