



import argparse

import pytorch_lightning as pl
import torch
from torch import nn

from transformers import LongformerForQuestionAnswering, LongformerModel






class      UpperCamelCase    (						pl.LightningModule     ):



	def __init__(       self			,	UpperCAmelCase__		):
							super().__init__()
							A__							=       model
							A__							=       2
							A__							=       nn.Linear(self.model.config.hidden_size			,	self.num_labels		)



	def 			__A							(       self		):
							pass





def  UpperCamelCase						(       _A			:				str			,							_A			:				str			,							_A			:				str    )->       str:





						"""simple docstring"""





						A__							=       LongformerModel.from_pretrained(_A    )
						A__							=       LightningModel(_A    )

						A__							=       torch.load(_A			,							map_location=torch.device("cpu"    )    )
						lightning_model.load_state_dict(ckpt["state_dict"]    )

						# init longformer question answering model
						A__							=       LongformerForQuestionAnswering.from_pretrained(_A    )

						# transfer weights
						longformer_for_qa.longformer.load_state_dict(lightning_model.model.state_dict()    )
						longformer_for_qa.qa_outputs.load_state_dict(lightning_model.qa_outputs.state_dict()    )
						longformer_for_qa.eval()

						# save model
						longformer_for_qa.save_pretrained(_A    )

						print(f"""Conversion successful. Model saved under {pytorch_dump_folder_path}"""    )


if __name__ == "__main__":
						UpperCAmelCase_							:      Optional[int]      =  argparse.ArgumentParser()
						# Required parameters
						parser.add_argument(
						    "--longformer_model",
						    default=None,
						    type=str,
						    required=True,
						    help="model identifier of longformer. Should be either `longformer-base-4096` or `longformer-large-4096`.",
						)
						parser.add_argument(
						    "--longformer_question_answering_ckpt_path",
						    default=None,
						    type=str,
						    required=True,
						    help="Path the official PyTorch Lightning Checkpoint.",
						)
						parser.add_argument(
						    "--pytorch_dump_folder_path", default=None, type=str, required=True, help="Path to the output PyTorch model."
						)
						UpperCAmelCase_							:      Any      =  parser.parse_args()
						convert_longformer_qa_checkpoint_to_pytorch(
						    args.longformer_model, args.longformer_question_answering_ckpt_path, args.pytorch_dump_folder_path
						)










def  UpperCamelCase						(       _A			:				int			,							_A			:				int    )->       int:





						"""simple docstring"""





						return int((input_a, input_a).count(0    ) == 0    )
def  UpperCamelCase						(       )->       None:





						"""simple docstring"""





						assert and_gate(0			,							0    ) == 0
						assert and_gate(0			,							1    ) == 0
						assert and_gate(1			,							0    ) == 0
						assert and_gate(1			,							1    ) == 1


if __name__ == "__main__":
						test_and_gate()
						print(and_gate(1, 0))
						print(and_gate(0, 0))
						print(and_gate(0, 1))
						print(and_gate(1, 1))





