Rename ImageGPT (#14526)
* Rename * Add MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING
This commit is contained in:
@@ -96,10 +96,10 @@ ImageGPTModel
|
|||||||
:members: forward
|
:members: forward
|
||||||
|
|
||||||
|
|
||||||
ImageGPTForCausalLM
|
ImageGPTForCausalImageModeling
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.. autoclass:: transformers.ImageGPTForCausalLM
|
.. autoclass:: transformers.ImageGPTForCausalImageModeling
|
||||||
:members: forward
|
:members: forward
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -619,6 +619,7 @@ if is_torch_available():
|
|||||||
_import_structure["models.auto"].extend(
|
_import_structure["models.auto"].extend(
|
||||||
[
|
[
|
||||||
"MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
|
"MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
|
||||||
|
"MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING",
|
||||||
"MODEL_FOR_CAUSAL_LM_MAPPING",
|
"MODEL_FOR_CAUSAL_LM_MAPPING",
|
||||||
"MODEL_FOR_CTC_MAPPING",
|
"MODEL_FOR_CTC_MAPPING",
|
||||||
"MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
|
"MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
|
||||||
@@ -977,7 +978,7 @@ if is_torch_available():
|
|||||||
_import_structure["models.imagegpt"].extend(
|
_import_structure["models.imagegpt"].extend(
|
||||||
[
|
[
|
||||||
"IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST",
|
"IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST",
|
||||||
"ImageGPTForCausalLM",
|
"ImageGPTForCausalImageModeling",
|
||||||
"ImageGPTForImageClassification",
|
"ImageGPTForImageClassification",
|
||||||
"ImageGPTModel",
|
"ImageGPTModel",
|
||||||
"ImageGPTPreTrainedModel",
|
"ImageGPTPreTrainedModel",
|
||||||
@@ -2521,6 +2522,7 @@ if TYPE_CHECKING:
|
|||||||
)
|
)
|
||||||
from .models.auto import (
|
from .models.auto import (
|
||||||
MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
|
MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
|
||||||
|
MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
|
||||||
MODEL_FOR_CAUSAL_LM_MAPPING,
|
MODEL_FOR_CAUSAL_LM_MAPPING,
|
||||||
MODEL_FOR_CTC_MAPPING,
|
MODEL_FOR_CTC_MAPPING,
|
||||||
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
|
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
|
||||||
@@ -2823,7 +2825,7 @@ if TYPE_CHECKING:
|
|||||||
)
|
)
|
||||||
from .models.imagegpt import (
|
from .models.imagegpt import (
|
||||||
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
||||||
ImageGPTForCausalLM,
|
ImageGPTForCausalImageModeling,
|
||||||
ImageGPTForImageClassification,
|
ImageGPTForImageClassification,
|
||||||
ImageGPTModel,
|
ImageGPTModel,
|
||||||
ImageGPTPreTrainedModel,
|
ImageGPTPreTrainedModel,
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ _import_structure = {
|
|||||||
if is_torch_available():
|
if is_torch_available():
|
||||||
_import_structure["modeling_auto"] = [
|
_import_structure["modeling_auto"] = [
|
||||||
"MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
|
"MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING",
|
||||||
|
"MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING",
|
||||||
"MODEL_FOR_CAUSAL_LM_MAPPING",
|
"MODEL_FOR_CAUSAL_LM_MAPPING",
|
||||||
"MODEL_FOR_CTC_MAPPING",
|
"MODEL_FOR_CTC_MAPPING",
|
||||||
"MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
|
"MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING",
|
||||||
@@ -137,6 +138,7 @@ if TYPE_CHECKING:
|
|||||||
if is_torch_available():
|
if is_torch_available():
|
||||||
from .modeling_auto import (
|
from .modeling_auto import (
|
||||||
MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
|
MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
|
||||||
|
MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
|
||||||
MODEL_FOR_CAUSAL_LM_MAPPING,
|
MODEL_FOR_CAUSAL_LM_MAPPING,
|
||||||
MODEL_FOR_CTC_MAPPING,
|
MODEL_FOR_CTC_MAPPING,
|
||||||
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
|
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
|
||||||
|
|||||||
@@ -147,7 +147,6 @@ MODEL_FOR_PRETRAINING_MAPPING_NAMES = OrderedDict(
|
|||||||
MODEL_WITH_LM_HEAD_MAPPING_NAMES = OrderedDict(
|
MODEL_WITH_LM_HEAD_MAPPING_NAMES = OrderedDict(
|
||||||
[
|
[
|
||||||
# Model with LM heads mapping
|
# Model with LM heads mapping
|
||||||
("imagegpt", "ImageGPTForCausalLM"),
|
|
||||||
("qdqbert", "QDQBertForMaskedLM"),
|
("qdqbert", "QDQBertForMaskedLM"),
|
||||||
("fnet", "FNetForMaskedLM"),
|
("fnet", "FNetForMaskedLM"),
|
||||||
("gptj", "GPTJForCausalLM"),
|
("gptj", "GPTJForCausalLM"),
|
||||||
@@ -199,7 +198,6 @@ MODEL_WITH_LM_HEAD_MAPPING_NAMES = OrderedDict(
|
|||||||
MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = OrderedDict(
|
MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = OrderedDict(
|
||||||
[
|
[
|
||||||
# Model for Causal LM mapping
|
# Model for Causal LM mapping
|
||||||
("imagegpt", "ImageGPTForCausalLM"),
|
|
||||||
("qdqbert", "QDQBertLMHeadModel"),
|
("qdqbert", "QDQBertLMHeadModel"),
|
||||||
("trocr", "TrOCRForCausalLM"),
|
("trocr", "TrOCRForCausalLM"),
|
||||||
("gptj", "GPTJForCausalLM"),
|
("gptj", "GPTJForCausalLM"),
|
||||||
@@ -233,6 +231,13 @@ MODEL_FOR_CAUSAL_LM_MAPPING_NAMES = OrderedDict(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING_NAMES = OrderedDict(
|
||||||
|
# Model for Causal Image Modeling mapping
|
||||||
|
[
|
||||||
|
("imagegpt", "ImageGPTForCausalImageModeling"),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES = OrderedDict(
|
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES = OrderedDict(
|
||||||
[
|
[
|
||||||
# Model for Image Classification mapping
|
# Model for Image Classification mapping
|
||||||
@@ -524,6 +529,9 @@ MODEL_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_MAPPING_NAMES)
|
|||||||
MODEL_FOR_PRETRAINING_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_FOR_PRETRAINING_MAPPING_NAMES)
|
MODEL_FOR_PRETRAINING_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_FOR_PRETRAINING_MAPPING_NAMES)
|
||||||
MODEL_WITH_LM_HEAD_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_WITH_LM_HEAD_MAPPING_NAMES)
|
MODEL_WITH_LM_HEAD_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_WITH_LM_HEAD_MAPPING_NAMES)
|
||||||
MODEL_FOR_CAUSAL_LM_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_FOR_CAUSAL_LM_MAPPING_NAMES)
|
MODEL_FOR_CAUSAL_LM_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, MODEL_FOR_CAUSAL_LM_MAPPING_NAMES)
|
||||||
|
MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING = _LazyAutoMapping(
|
||||||
|
CONFIG_MAPPING_NAMES, MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING_NAMES
|
||||||
|
)
|
||||||
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING = _LazyAutoMapping(
|
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING = _LazyAutoMapping(
|
||||||
CONFIG_MAPPING_NAMES, MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES
|
CONFIG_MAPPING_NAMES, MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ if is_vision_available():
|
|||||||
if is_torch_available():
|
if is_torch_available():
|
||||||
_import_structure["modeling_imagegpt"] = [
|
_import_structure["modeling_imagegpt"] = [
|
||||||
"IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST",
|
"IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST",
|
||||||
"ImageGPTForCausalLM",
|
"ImageGPTForCausalImageModeling",
|
||||||
"ImageGPTForImageClassification",
|
"ImageGPTForImageClassification",
|
||||||
"ImageGPTModel",
|
"ImageGPTModel",
|
||||||
"ImageGPTPreTrainedModel",
|
"ImageGPTPreTrainedModel",
|
||||||
@@ -48,7 +48,7 @@ if TYPE_CHECKING:
|
|||||||
if is_torch_available():
|
if is_torch_available():
|
||||||
from .modeling_imagegpt import (
|
from .modeling_imagegpt import (
|
||||||
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
||||||
ImageGPTForCausalLM,
|
ImageGPTForCausalImageModeling,
|
||||||
ImageGPTForImageClassification,
|
ImageGPTForImageClassification,
|
||||||
ImageGPTModel,
|
ImageGPTModel,
|
||||||
ImageGPTPreTrainedModel,
|
ImageGPTPreTrainedModel,
|
||||||
|
|||||||
@@ -881,7 +881,7 @@ class ImageGPTModel(ImageGPTPreTrainedModel):
|
|||||||
""",
|
""",
|
||||||
IMAGEGPT_START_DOCSTRING,
|
IMAGEGPT_START_DOCSTRING,
|
||||||
)
|
)
|
||||||
class ImageGPTForCausalLM(ImageGPTPreTrainedModel):
|
class ImageGPTForCausalImageModeling(ImageGPTPreTrainedModel):
|
||||||
_keys_to_ignore_on_load_missing = [r"attn.masked_bias", r"attn.bias", r"lm_head.weight"]
|
_keys_to_ignore_on_load_missing = [r"attn.masked_bias", r"attn.bias", r"lm_head.weight"]
|
||||||
|
|
||||||
def __init__(self, config):
|
def __init__(self, config):
|
||||||
@@ -958,13 +958,13 @@ class ImageGPTForCausalLM(ImageGPTPreTrainedModel):
|
|||||||
|
|
||||||
Examples::
|
Examples::
|
||||||
|
|
||||||
>>> from transformers import ImageGPTFeatureExtractor, ImageGPTForCausalLM
|
>>> from transformers import ImageGPTFeatureExtractor, ImageGPTForCausalImageModeling
|
||||||
>>> import torch
|
>>> import torch
|
||||||
>>> import matplotlib.pyplot as plt
|
>>> import matplotlib.pyplot as plt
|
||||||
>>> import numpy as np
|
>>> import numpy as np
|
||||||
|
|
||||||
>>> feature_extractor = ImageGPTFeatureExtractor.from_pretrained('openai/imagegpt-small')
|
>>> feature_extractor = ImageGPTFeatureExtractor.from_pretrained('openai/imagegpt-small')
|
||||||
>>> model = ImageGPTForCausalLM.from_pretrained('openai/imagegpt-small')
|
>>> model = ImageGPTForCausalImageModeling.from_pretrained('openai/imagegpt-small')
|
||||||
>>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
>>> device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
||||||
>>> model.to(device)
|
>>> model.to(device)
|
||||||
|
|
||||||
|
|||||||
@@ -341,6 +341,9 @@ def load_tf_weights_in_albert(*args, **kwargs):
|
|||||||
MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING = None
|
MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING = None
|
||||||
|
|
||||||
|
|
||||||
|
MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING = None
|
||||||
|
|
||||||
|
|
||||||
MODEL_FOR_CAUSAL_LM_MAPPING = None
|
MODEL_FOR_CAUSAL_LM_MAPPING = None
|
||||||
|
|
||||||
|
|
||||||
@@ -2661,7 +2664,7 @@ class IBertPreTrainedModel:
|
|||||||
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST = None
|
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST = None
|
||||||
|
|
||||||
|
|
||||||
class ImageGPTForCausalLM:
|
class ImageGPTForCausalImageModeling:
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
requires_backends(self, ["torch"])
|
requires_backends(self, ["torch"])
|
||||||
|
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ if is_torch_available():
|
|||||||
|
|
||||||
from transformers import (
|
from transformers import (
|
||||||
BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
||||||
|
MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
|
||||||
MODEL_FOR_CAUSAL_LM_MAPPING,
|
MODEL_FOR_CAUSAL_LM_MAPPING,
|
||||||
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
|
MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
|
||||||
MODEL_FOR_MASKED_LM_MAPPING,
|
MODEL_FOR_MASKED_LM_MAPPING,
|
||||||
@@ -150,6 +151,7 @@ class ModelTesterMixin:
|
|||||||
elif model_class in [
|
elif model_class in [
|
||||||
*get_values(MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING),
|
*get_values(MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING),
|
||||||
*get_values(MODEL_FOR_CAUSAL_LM_MAPPING),
|
*get_values(MODEL_FOR_CAUSAL_LM_MAPPING),
|
||||||
|
*get_values(MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING),
|
||||||
*get_values(MODEL_FOR_MASKED_LM_MAPPING),
|
*get_values(MODEL_FOR_MASKED_LM_MAPPING),
|
||||||
*get_values(MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING),
|
*get_values(MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING),
|
||||||
]:
|
]:
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ if is_torch_available():
|
|||||||
|
|
||||||
from transformers import (
|
from transformers import (
|
||||||
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
IMAGEGPT_PRETRAINED_MODEL_ARCHIVE_LIST,
|
||||||
ImageGPTForCausalLM,
|
ImageGPTForCausalImageModeling,
|
||||||
ImageGPTForImageClassification,
|
ImageGPTForImageClassification,
|
||||||
ImageGPTModel,
|
ImageGPTModel,
|
||||||
)
|
)
|
||||||
@@ -207,14 +207,14 @@ class ImageGPTModelTester:
|
|||||||
self.parent.assertEqual(len(result.past_key_values), config.n_layer)
|
self.parent.assertEqual(len(result.past_key_values), config.n_layer)
|
||||||
|
|
||||||
def create_and_check_lm_head_model(self, config, pixel_values, input_mask, head_mask, token_type_ids, *args):
|
def create_and_check_lm_head_model(self, config, pixel_values, input_mask, head_mask, token_type_ids, *args):
|
||||||
model = ImageGPTForCausalLM(config)
|
model = ImageGPTForCausalImageModeling(config)
|
||||||
model.to(torch_device)
|
model.to(torch_device)
|
||||||
model.eval()
|
model.eval()
|
||||||
|
|
||||||
labels = ids_tensor([self.batch_size, self.seq_length], self.vocab_size - 1)
|
labels = ids_tensor([self.batch_size, self.seq_length], self.vocab_size - 1)
|
||||||
result = model(pixel_values, token_type_ids=token_type_ids, labels=labels)
|
result = model(pixel_values, token_type_ids=token_type_ids, labels=labels)
|
||||||
self.parent.assertEqual(result.loss.shape, ())
|
self.parent.assertEqual(result.loss.shape, ())
|
||||||
# ImageGPTForCausalLM doens't have tied input- and output embeddings
|
# ImageGPTForCausalImageModeling doens't have tied input- and output embeddings
|
||||||
self.parent.assertEqual(result.logits.shape, (self.batch_size, self.seq_length, self.vocab_size - 1))
|
self.parent.assertEqual(result.logits.shape, (self.batch_size, self.seq_length, self.vocab_size - 1))
|
||||||
|
|
||||||
def create_and_check_imagegpt_for_image_classification(
|
def create_and_check_imagegpt_for_image_classification(
|
||||||
@@ -255,9 +255,9 @@ class ImageGPTModelTester:
|
|||||||
class ImageGPTModelTest(ModelTesterMixin, GenerationTesterMixin, unittest.TestCase):
|
class ImageGPTModelTest(ModelTesterMixin, GenerationTesterMixin, unittest.TestCase):
|
||||||
|
|
||||||
all_model_classes = (
|
all_model_classes = (
|
||||||
(ImageGPTForCausalLM, ImageGPTForImageClassification, ImageGPTModel) if is_torch_available() else ()
|
(ImageGPTForCausalImageModeling, ImageGPTForImageClassification, ImageGPTModel) if is_torch_available() else ()
|
||||||
)
|
)
|
||||||
all_generative_model_classes = (ImageGPTForCausalLM,) if is_torch_available() else ()
|
all_generative_model_classes = (ImageGPTForCausalImageModeling,) if is_torch_available() else ()
|
||||||
test_missing_keys = False
|
test_missing_keys = False
|
||||||
input_name = "pixel_values"
|
input_name = "pixel_values"
|
||||||
|
|
||||||
@@ -273,7 +273,7 @@ class ImageGPTModelTest(ModelTesterMixin, GenerationTesterMixin, unittest.TestCa
|
|||||||
|
|
||||||
return inputs_dict
|
return inputs_dict
|
||||||
|
|
||||||
# we overwrite the _check_scores method of GenerationTesterMixin, as ImageGPTForCausalLM doesn't have tied input- and output embeddings
|
# we overwrite the _check_scores method of GenerationTesterMixin, as ImageGPTForCausalImageModeling doesn't have tied input- and output embeddings
|
||||||
def _check_scores(self, batch_size, scores, length, config):
|
def _check_scores(self, batch_size, scores, length, config):
|
||||||
expected_shape = (batch_size, config.vocab_size - 1)
|
expected_shape = (batch_size, config.vocab_size - 1)
|
||||||
self.assertIsInstance(scores, tuple)
|
self.assertIsInstance(scores, tuple)
|
||||||
@@ -519,7 +519,7 @@ class ImageGPTModelIntegrationTest(unittest.TestCase):
|
|||||||
|
|
||||||
@slow
|
@slow
|
||||||
def test_inference_causal_lm_head(self):
|
def test_inference_causal_lm_head(self):
|
||||||
model = ImageGPTForCausalLM.from_pretrained("openai/imagegpt-small").to(torch_device)
|
model = ImageGPTForCausalImageModeling.from_pretrained("openai/imagegpt-small").to(torch_device)
|
||||||
|
|
||||||
feature_extractor = self.default_feature_extractor
|
feature_extractor = self.default_feature_extractor
|
||||||
image = prepare_img()
|
image = prepare_img()
|
||||||
|
|||||||
Reference in New Issue
Block a user