Spaces:
Sleeping
Sleeping
from collections import OrderedDict | |
from transformers import CONFIG_MAPPING, MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING, MODEL_NAMES_MAPPING, TOKENIZER_MAPPING | |
from transformers.convert_slow_tokenizer import SLOW_TO_FAST_CONVERTERS, BertConverter, XLMRobertaConverter | |
from transformers.models.auto.modeling_auto import auto_class_factory | |
from .models.layoutlmv2 import ( | |
LayoutLMv2Config, | |
LayoutLMv2ForRelationExtraction, | |
LayoutLMv2ForTokenClassification, | |
LayoutLMv2Tokenizer, | |
LayoutLMv2TokenizerFast, | |
) | |
from .models.layoutxlm import ( | |
LayoutXLMConfig, | |
LayoutXLMForRelationExtraction, | |
LayoutXLMForTokenClassification, | |
LayoutXLMTokenizer, | |
LayoutXLMTokenizerFast, | |
) | |
CONFIG_MAPPING.update([("layoutlmv2", LayoutLMv2Config), ("layoutxlm", LayoutXLMConfig)]) | |
MODEL_NAMES_MAPPING.update([("layoutlmv2", "LayoutLMv2"), ("layoutxlm", "LayoutXLM")]) | |
TOKENIZER_MAPPING.update( | |
[ | |
(LayoutLMv2Config, (LayoutLMv2Tokenizer, LayoutLMv2TokenizerFast)), | |
(LayoutXLMConfig, (LayoutXLMTokenizer, LayoutXLMTokenizerFast)), | |
] | |
) | |
SLOW_TO_FAST_CONVERTERS.update({"LayoutLMv2Tokenizer": BertConverter, "LayoutXLMTokenizer": XLMRobertaConverter}) | |
MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING.update( | |
[(LayoutLMv2Config, LayoutLMv2ForTokenClassification), (LayoutXLMConfig, LayoutXLMForTokenClassification)] | |
) | |
MODEL_FOR_RELATION_EXTRACTION_MAPPING = OrderedDict( | |
[(LayoutLMv2Config, LayoutLMv2ForRelationExtraction), (LayoutXLMConfig, LayoutXLMForRelationExtraction)] | |
) | |
AutoModelForTokenClassification = auto_class_factory( | |
"AutoModelForTokenClassification", MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING, head_doc="token classification" | |
) | |
AutoModelForRelationExtraction = auto_class_factory( | |
"AutoModelForRelationExtraction", MODEL_FOR_RELATION_EXTRACTION_MAPPING, head_doc="relation extraction" | |
) | |