
'''simple docstring'''




from ..utils import DummyObject, requires_backends







class       __lowercase					(metaclass=_lowerCamelCase    ):
	_lowerCamelCase              =  ['''transformers''', '''torch''', '''note_seq''']

	def __init__(      self   :						List[Any]  ,					*UpperCAmelCase_   :						int  ,					**UpperCAmelCase_   :						Optional[Any]):
			requires_backends(self  ,					['transformers', 'torch', 'note_seq'])

	@classmethod
	def      __UpperCamelCase							(      cls   :						Tuple  ,					*UpperCAmelCase_   :						Tuple  ,					**UpperCAmelCase_   :						Union[str, Any]):
			requires_backends(cls  ,					['transformers', 'torch', 'note_seq'])





	@classmethod
	def      __UpperCamelCase							(      cls   :						List[Any]  ,					*UpperCAmelCase_   :						Any  ,					**UpperCAmelCase_   :						Tuple):
			requires_backends(cls  ,					['transformers', 'torch', 'note_seq'])












'''simple docstring'''




from typing import Union

import fire
import torch
from tqdm import tqdm







def       __UpperCAmelCase						(  lowerCamelCase_     ,      lowerCamelCase_ = "cpu"     ,      lowerCamelCase_ = None)							->     None:
		UpperCamelCase__				:					List[Any]					=					torch.load(lowerCamelCase_     ,      map_location=lowerCamelCase_)
		for k, v in tqdm(state_dict.items()):
				if not isinstance(lowerCamelCase_     ,      torch.Tensor):
						raise TypeError('FP16 conversion only works on paths that are saved state dicts, like pytorch_model.bin')
				UpperCamelCase__				:					int					=					v.half()
		if save_path is None:  # overwrite src_path
				UpperCamelCase__				:					List[Any]					=					src_path
		torch.save(lowerCamelCase_     ,      lowerCamelCase_)


if __name__ == "__main__":
		fire.Fire(convert)




