





import argparse

import torch

from transformers import FunnelBaseModel, FunnelConfig, FunnelModel, load_tf_weights_in_funnel
from transformers.utils import logging


logging.set_verbosity_info()






def lowerCamelCase__   (							snake_case_     :  str	,				snake_case_     :  Optional[Any]	,				snake_case_     :  Tuple	,				snake_case_     :  Dict	)				->    int:
   # Initialise PyTorch model
   __snake_case								=       FunnelConfig.from_json_file(snake_case_	)
   print(f"""Building PyTorch model from configuration: {config}"""	)
   __snake_case								=       FunnelBaseModel(snake_case_	) if base_model else FunnelModel(snake_case_	)

   # Load weights from tf checkpoint
   load_tf_weights_in_funnel(snake_case_	,				snake_case_	,				snake_case_	)

   # Save pytorch-model
   print(f"""Save PyTorch model to {pytorch_dump_path}"""	)
   torch.save(model.state_dict()	,				snake_case_	)


if __name__ == "__main__":
    snake_case_           =      argparse.ArgumentParser()
    # Required parameters
    parser.add_argument(
        '--tf_checkpoint_path', default=None, type=str, required=True, help='Path to the TensorFlow checkpoint path.'
    )
    parser.add_argument(
        '--config_file',
        default=None,
        type=str,
        required=True,
        help='The config json file corresponding to the pre-trained model. \nThis specifies the model architecture.',
    )
    parser.add_argument(
        '--pytorch_dump_path', default=None, type=str, required=True, help='Path to the output PyTorch model.'
    )
    parser.add_argument(
        '--base_model', action='store_true', help='Whether you want just the base model (no decoder) or not.'
    )
    snake_case_           =      parser.parse_args()
    convert_tf_checkpoint_to_pytorch(
        args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.base_model
    )








from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


snake_case_           =      {
    'configuration_git': ['GIT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'GitConfig', 'GitVisionConfig'],
    'processing_git': ['GitProcessor'],
}

try:
    if not is_torch_available():
        raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
    pass
else:
    snake_case_           =      [
        'GIT_PRETRAINED_MODEL_ARCHIVE_LIST',
        'GitForCausalLM',
        'GitModel',
        'GitPreTrainedModel',
        'GitVisionModel',
    ]

if TYPE_CHECKING:
    from .configuration_git import GIT_PRETRAINED_CONFIG_ARCHIVE_MAP, GitConfig, GitVisionConfig
    from .processing_git import GitProcessor

    try:
        if not is_torch_available():
            raise OptionalDependencyNotAvailable()
    except OptionalDependencyNotAvailable:
        pass
    else:
        from .modeling_git import (
            GIT_PRETRAINED_MODEL_ARCHIVE_LIST,
            GitForCausalLM,
            GitModel,
            GitPreTrainedModel,
            GitVisionModel,
        )

else:
    import sys

    snake_case_           =      _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)

