
    g                     Z    d dl mZmZ ddlmZ ddlmZ defdZdZ G d	 d
e          Z	dS )    )ArgumentParser	Namespace   )logging   )BaseTransformersCLICommandargsc                 Z    t          | j        | j        | j        | j        | j                  S )zx
    Factory function used to convert a model TF 1.0 checkpoint in a PyTorch checkpoint.

    Returns: ServeCommand
    )ConvertCommand
model_typetf_checkpointpytorch_dump_outputconfigfinetuning_task_name)r	   s    Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/transformers/commands/convert.pyconvert_command_factoryr      s/     +T-Et{TXTm      z
transformers can only be used from the commandline to convert TensorFlow models in PyTorch, In that case, it requires
TensorFlow to be installed. Please see https://www.tensorflow.org/install/ for installation instructions.
c            
       L    e Zd Zedefd            Zdededededef
dZd	 Zd
S )r   parserc                    |                      dd          }|                    dt          dd           |                    dt          dd	           |                    d
t          dd           |                    dt          dd           |                    dt          dd           |                    t                     dS )z
        Register this command to argparse so it's available for the transformer-cli

        Args:
            parser: Root parser to register command-specific arguments
        convertzcCLI tool to run convert model from original author checkpoints to Transformers PyTorch checkpoints.)helpz--model_typeTzModel's type.)typerequiredr   z--tf_checkpointz%TensorFlow checkpoint path or folder.z--pytorch_dump_outputz'Path to the PyTorch saved model output.z--config z"Configuration file path or folder.)r   defaultr   z--finetuning_task_nameNzEOptional fine-tuning task name if the TF model was a finetuned model.)func)
add_parseradd_argumentstrset_defaultsr   )r   train_parsers     r   register_subcommandz"ConvertCommand.register_subcommand'   s     ((v ) 
 
 	!!.sTP_!```!!C$=d 	" 	
 	
 	
 	!!##Cl 	" 	
 	
 	
 	!!*3Im!nnn!!$X	 	" 	
 	
 	
 	!!'>!?????r   r   r   r   r   r   c                     t          j        d          | _        | j                            d|            || _        || _        || _        || _        || _        d S )Nztransformers-cli/convertingzLoading model )	r   
get_logger_loggerinfo_model_type_tf_checkpoint_pytorch_dump_output_config_finetuning_task_name)selfr   r   r   r   r   r	   s          r   __init__zConvertCommand.__init__C   sc     )*GHH7:77888%+$7!%9"""r   c                 p   | j         dk    rH	 ddlm} n"# t          $ r t          t                    w xY w || j        | j        | j                   d S | j         dk    rH	 ddlm} n"# t          $ r t          t                    w xY w || j        | j        | j                   d S | j         dk    rH	 ddl	m} n"# t          $ r t          t                    w xY w || j        | j        | j                   d S | j         dk    rH	 ddl
m} n"# t          $ r t          t                    w xY w || j        | j        | j                   d S | j         dk    r$ddlm}  || j        | j        | j                   d S | j         d	k    rH	 dd
lm} n"# t          $ r t          t                    w xY w || j        | j        | j                   d S | j         dk    rN	 ddlm} n"# t          $ r t          t                    w xY w || j        | j        | j        | j                   d S | j         dk    rddlm}  || j        | j                   d S | j         dk    rddlm}  || j        | j                   d S | j         dk    r$ddlm}  || j        | j        | j                   d S t1          d          )Nalbertr   ) convert_tf_checkpoint_to_pytorchbertfunnelt5gpt)$convert_openai_checkpoint_to_pytorchgpt2)"convert_gpt2_checkpoint_to_pytorchxlnet)#convert_xlnet_checkpoint_to_pytorchxlm)!convert_xlm_checkpoint_to_pytorchlxmert)$convert_lxmert_checkpoint_to_pytorchrembert)(convert_rembert_tf_checkpoint_to_pytorchzU--model_type should be selected in the list [bert, gpt, gpt2, t5, xlnet, xlm, lxmert])r(   >models.albert.convert_albert_original_tf_checkpoint_to_pytorchr1   ImportErrorIMPORT_ERROR_MESSAGEr)   r+   r*   :models.bert.convert_bert_original_tf_checkpoint_to_pytorch>models.funnel.convert_funnel_original_tf_checkpoint_to_pytorch6models.t5.convert_t5_original_tf_checkpoint_to_pytorch>models.openai.convert_openai_original_tf_checkpoint_to_pytorchr6   :models.gpt2.convert_gpt2_original_tf_checkpoint_to_pytorchr8   <models.xlnet.convert_xlnet_original_tf_checkpoint_to_pytorchr:   r,   =models.xlm.convert_xlm_original_pytorch_checkpoint_to_pytorchr<   >models.lxmert.convert_lxmert_original_tf_checkpoint_to_pytorchr>   7models.rembert.convert_rembert_tf_checkpoint_to_pytorchr@   
ValueError)r-   r1   r6   r8   r:   r<   r>   r@   s           r   runzConvertCommand.runU   s   x''8        8 8 8!"67778 -,T-@$,PTPijjjjj''8        8 8 8!"67778 -,T-@$,PTPijjjjj))8        8 8 8!"67778 -,T-@$,PTPijjjjj%%8uuuuuuu 8 8 8!"67778 -,T-@$,PTPijjjjj&&      101DdlTXTmnnnnn''8        8 8 8!"67778 /.t/BDLRVRklllll((8        8 8 8!"67778 0/#T\43LdNh     &&      .-d.A4C\]]]]]))      101DdF_`````**      54T5H$,X\XqrrrrrtuuusD    3 A' 'B3B: :CD D,F F.G" "HN)	__name__
__module____qualname__staticmethodr   r#   r    r.   rN    r   r   r   r   &   s        @N @ @ @ \@6:: : !	:
 : ": : : :$Pv Pv Pv Pv Pvr   r   N)
argparser   r   utilsr   r   r   r   rC   r   rS   r   r   <module>rV      s    / . . . . . . .       ( ( ( ( ( ()     v v v v v/ v v v v vr   