

'''simple docstring'''





import argparse

import pytorch_lightning as pl
import torch
from torch import nn

from transformers import LongformerForQuestionAnswering, LongformerModel


class  UpperCAmelCase (							pl.LightningModule    ):

		'''simple docstring'''






		def __init__(					self   ,			SCREAMING_SNAKE_CASE_		)  ->     int:






							'''simple docstring'''



							super().__init__()
							lowerCamelCase_  				=      model
							lowerCamelCase_  				=      2
							lowerCamelCase_  				=      nn.Linear(self.model.config.hidden_size   ,			self.num_labels		)






		def 			UpperCamelCase(					self		)  ->     Dict:






							'''simple docstring'''



							pass







def   _UpperCamelCase	(		__UpperCamelCase    ,__UpperCamelCase    ,__UpperCamelCase	)       ->			int:
					# load longformer model from model identifier
					lowerCamelCase_  				=      LongformerModel.from_pretrained(__UpperCamelCase	)
					lowerCamelCase_  				=      LightningModel(__UpperCamelCase	)

					lowerCamelCase_  				=      torch.load(__UpperCamelCase    ,map_location=torch.device('cpu'	)	)
					lightning_model.load_state_dict(ckpt['state_dict']	)

					# init longformer question answering model
					lowerCamelCase_  				=      LongformerForQuestionAnswering.from_pretrained(__UpperCamelCase	)

					# 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(__UpperCamelCase	)

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


if __name__ == "__main__":
				A_	= 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."
				)
				A_	= 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 :     str      )     ->	list:

					"""simple docstring"""

					if n_term == "":
										return []
					_a      :       list   =						[]
					for temp in range(int(__a      )      ):
										series.append(F"""1/{temp + 1}""" if series else '''1'''      )
					return series


if __name__ == "__main__":
			a__												=						input('''Enter the last number (nth term) of the Harmonic Series''')
			print('''Formula of Harmonic Series => 1+1/2+1/3 ..... 1/n''')
			print(harmonic_series(nth_term))



