code: 
  
  
  
  
  
  import argparse
  import json
  from pathlib import Path
  
  import requests
  import torch
  from huggingface_hub import hf_hub_download
  from PIL import Image
  
  from transformers import ConvNextConfig, ConvNextForImageClassification, ConvNextImageProcessor
  from transformers.utils import logging
  
  
  logging.set_verbosity_info()
  _lowercase		:     Tuple 					=logging.get_logger(__name__)
  
  
  def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__	):
  		lowerCamelCase_  :    Dict   	=			ConvNextConfig()
  
  		if "tiny" in checkpoint_url:
  				lowerCamelCase_  :    Tuple   	=			[3, 3, 9, 3]
  				lowerCamelCase_  :    List[Any]   	=			[96, 1_92, 3_84, 7_68]
  		if "small" in checkpoint_url:
  				lowerCamelCase_  :    List[Any]   	=			[3, 3, 27, 3]
  				lowerCamelCase_  :    Tuple   	=			[96, 1_92, 3_84, 7_68]
  		if "base" in checkpoint_url:
  				lowerCamelCase_  :    Any   	=			[3, 3, 27, 3]
  				lowerCamelCase_  :    Union[str, Any]   	=			[1_28, 2_56, 5_12, 10_24]
  		if "large" in checkpoint_url:
  				lowerCamelCase_  :    Optional[Any]   	=			[3, 3, 27, 3]
  				lowerCamelCase_  :    Union[str, Any]   	=			[1_92, 3_84, 7_68, 15_36]
  		if "xlarge" in checkpoint_url:
  				lowerCamelCase_  :    List[str]   	=			[3, 3, 27, 3]
  				lowerCamelCase_  :    str   	=			[2_56, 5_12, 10_24, 20_48]
  
  		if "1k" in checkpoint_url:
  				lowerCamelCase_  :    Optional[Any]   	=			10_00
  				lowerCamelCase_  :    Union[str, Any]   	=			'imagenet-1k-id2label.json'
  				lowerCamelCase_  :    Optional[Any]   	=			(1, 10_00)
  		else:
  				lowerCamelCase_  :    Optional[int]   	=			2_18_41
  				lowerCamelCase_  :    Optional[Any]   	=			'imagenet-22k-id2label.json'
  				lowerCamelCase_  :    Tuple   	=			(1, 2_18_41)
  
  		lowerCamelCase_  :    int   	=			'huggingface/label-files'
  		lowerCamelCase_  :    Optional[int]   	=			num_labels
  		lowerCamelCase_  :    List[Any]   	=			json.load(open(hf_hub_download(lowerCAmelCase__       ,lowerCAmelCase__       ,repo_type='dataset'	)       ,'r'	)	)
  		lowerCamelCase_  :    List[Any]   	=			{int(lowerCAmelCase__	): v for k, v in idalabel.items()}
  		if "1k" not in checkpoint_url:
  				# this dataset contains 21843 labels but the model only has 21841
  				# we delete the classes as mentioned in https://github.com/google-research/big_transfer/issues/18
  				del idalabel[92_05]
  				del idalabel[1_50_27]
  		lowerCamelCase_  :    Dict   	=			idalabel
  		lowerCamelCase_  :    int   	=			{v: k for k, v in idalabel.items()}
  		lowerCamelCase_  :    Union[str, Any]   	=			hidden_sizes
  		lowerCamelCase_  :    List[Any]   	=			depths
  
  		return config, expected_shape
  
  
  def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__	):
  		if "downsample_layers.0.0" in name:
  				lowerCamelCase_  :    int   	=			name.replace('downsample_layers.0.0'       ,'embeddings.patch_embeddings'	)
  		if "downsample_layers.0.1" in name:
  				lowerCamelCase_  :    List[Any]   	=			name.replace('downsample_layers.0.1'       ,'embeddings.norm'	)  # we rename to layernorm later on
  		if "downsample_layers.1.0" in name:
  				lowerCamelCase_  :    List[str]   	=			name.replace('downsample_layers.1.0'       ,'stages.1.downsampling_layer.0'	)
  		if "downsample_layers.1.1" in name:
  				lowerCamelCase_  :    Tuple   	=			name.replace('downsample_layers.1.1'       ,'stages.1.downsampling_layer.1'	)
  		if "downsample_layers.2.0" in name:
  				lowerCamelCase_  :    Optional[int]   	=			name.replace('downsample_layers.2.0'       ,'stages.2.downsampling_layer.0'	)
  		if "downsample_layers.2.1" in name:
  				lowerCamelCase_  :    str   	=			name.replace('downsample_layers.2.1'       ,'stages.2.downsampling_layer.1'	)
  		if "downsample_layers.3.0" in name:
  				lowerCamelCase_  :    Dict   	=			name.replace('downsample_layers.3.0'       ,'stages.3.downsampling_layer.0'	)
  		if "downsample_layers.3.1" in name:
  				lowerCamelCase_  :    List[Any]   	=			name.replace('downsample_layers.3.1'       ,'stages.3.downsampling_layer.1'	)
  		if "stages" in name and "downsampling_layer" not in name:
  				# stages.0.0. for instance should be renamed to stages.0.layers.0.
  				lowerCamelCase_  :    Any   	=			name[: len('stages.0'	)] + '.layers' + name[len('stages.0'	) :]
  		if "stages" in name:
  				lowerCamelCase_  :    Dict   	=			name.replace('stages'       ,'encoder.stages'	)
  		if "norm" in name:
  				lowerCamelCase_  :    Tuple   	=			name.replace('norm'       ,'layernorm'	)
  		if "gamma" in name:
  				lowerCamelCase_  :    Optional[Any]   	=			name.replace('gamma'       ,'layer_scale_parameter'	)
  		if "head" in name:
  				lowerCamelCase_  :    Optional[int]   	=			name.replace('head'       ,'classifier'	)
  
  		return name
  
  
  def 		_SCREAMING_SNAKE_CASE    (   ):
  		lowerCamelCase_  :    Union[str, Any]   	=			'http://images.cocodataset.org/val2017/000000039769.jpg'
  		lowerCamelCase_  :    Optional[int]   	=			Image.open(requests.get(lowerCAmelCase__       ,stream=lowerCAmelCase__	).raw	)
  		return im
  
  
  @torch.no_grad()
  def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__       ,lowerCAmelCase__	):
  		lowerCamelCase_	,			lowerCamelCase_  :    int   	=			get_convnext_config(lowerCAmelCase__	)
  		# load original state_dict from URL
  		lowerCamelCase_  :    Optional[int]   	=			torch.hub.load_state_dict_from_url(lowerCAmelCase__	)['model']
  		# rename keys
  		for key in state_dict.copy().keys():
  				lowerCamelCase_  :    List[Any]   	=			state_dict.pop(lowerCAmelCase__	)
  				lowerCamelCase_  :    List[str]   	=			val
  		# add prefix to all keys expect classifier head
  		for key in state_dict.copy().keys():
  				lowerCamelCase_  :    Optional[int]   	=			state_dict.pop(lowerCAmelCase__	)
  				if not key.startswith('classifier'	):
  						lowerCamelCase_  :    Union[str, Any]   	=			'convnext.' + key
  				lowerCamelCase_  :    List[Any]   	=			val
  
  		# load HuggingFace model
  		lowerCamelCase_  :    List[Any]   	=			ConvNextForImageClassification(lowerCAmelCase__	)
  		model.load_state_dict(lowerCAmelCase__	)
  		model.eval()
  
  		# Check outputs on an image, prepared by ConvNextImageProcessor
  		lowerCamelCase_  :    Dict   	=			2_24 if '224' in checkpoint_url else 3_84
  		lowerCamelCase_  :    Union[str, Any]   	=			ConvNextImageProcessor(size=lowerCAmelCase__	)
  		lowerCamelCase_  :    Dict   	=			image_processor(images=prepare_img()       ,return_tensors='pt'	).pixel_values
  
  		lowerCamelCase_  :    List[Any]   	=			model(lowerCAmelCase__	).logits
  
  		# note: the logits below were obtained without center cropping
  		if checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_tiny_1k_224_ema.pth":
  				lowerCamelCase_  :    List[str]   	=			torch.tensor([-0.1_210, -0.6_605, 0.1_918]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_small_1k_224_ema.pth":
  				lowerCamelCase_  :    Dict   	=			torch.tensor([-0.4_473, -0.1_847, -0.6_365]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_1k_224_ema.pth":
  				lowerCamelCase_  :    Any   	=			torch.tensor([0.4_525, 0.7_539, 0.0_308]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_1k_384.pth":
  				lowerCamelCase_  :    List[str]   	=			torch.tensor([0.3_561, 0.6_350, -0.0_384]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_1k_224_ema.pth":
  				lowerCamelCase_  :    Dict   	=			torch.tensor([0.4_174, -0.0_989, 0.1_489]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_1k_384.pth":
  				lowerCamelCase_  :    Optional[Any]   	=			torch.tensor([0.2_513, -0.1_349, -0.1_613]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_224.pth":
  				lowerCamelCase_  :    List[Any]   	=			torch.tensor([1.2_980, 0.3_631, -0.1_198]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_22k_224.pth":
  				lowerCamelCase_  :    Optional[int]   	=			torch.tensor([1.2_963, 0.1_227, 0.1_723]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_xlarge_22k_224.pth":
  				lowerCamelCase_  :    str   	=			torch.tensor([1.7_956, 0.8_390, 0.2_820]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_1k_224.pth":
  				lowerCamelCase_  :    Tuple   	=			torch.tensor([-0.2_822, -0.0_502, -0.0_878]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_1k_384.pth":
  				lowerCamelCase_  :    Union[str, Any]   	=			torch.tensor([-0.5_672, -0.0_730, -0.4_348]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_22k_1k_224.pth":
  				lowerCamelCase_  :    Optional[Any]   	=			torch.tensor([0.2_681, 0.2_365, 0.6_246]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_22k_1k_384.pth":
  				lowerCamelCase_  :    Optional[int]   	=			torch.tensor([-0.2_642, 0.3_931, 0.5_116]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_xlarge_22k_1k_224_ema.pth":
  				lowerCamelCase_  :    Optional[int]   	=			torch.tensor([-0.6_677, -0.1_873, -0.8_379]	)
  		elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_xlarge_22k_1k_384_ema.pth":
  				lowerCamelCase_  :    Optional[int]   	=			torch.tensor([-0.7_749, -0.2_967, -0.6_444]	)
  		else:
  				raise ValueError(F"Unknown URL: {checkpoint_url}"	)
  
  		assert torch.allclose(logits[0, :3]       ,lowerCAmelCase__       ,atol=1e-3	)
  		assert logits.shape == expected_shape
  
  		Path(lowerCAmelCase__	).mkdir(exist_ok=lowerCAmelCase__	)
  		print(F"Saving model to {pytorch_dump_folder_path}"	)
  		model.save_pretrained(lowerCAmelCase__	)
  		print(F"Saving image processor to {pytorch_dump_folder_path}"	)
  		image_processor.save_pretrained(lowerCAmelCase__	)
  
  		print('Pushing model to the hub...'	)
  		lowerCamelCase_  :    int   	=			'convnext'
  		if "tiny" in checkpoint_url:
  				model_name += "-tiny"
  		elif "small" in checkpoint_url:
  				model_name += "-small"
  		elif "base" in checkpoint_url:
  				model_name += "-base"
  		elif "xlarge" in checkpoint_url:
  				model_name += "-xlarge"
  		elif "large" in checkpoint_url:
  				model_name += "-large"
  		if "224" in checkpoint_url:
  				model_name += "-224"
  		elif "384" in checkpoint_url:
  				model_name += "-384"
  		if "22k" in checkpoint_url and "1k" not in checkpoint_url:
  				model_name += "-22k"
  		if "22k" in checkpoint_url and "1k" in checkpoint_url:
  				model_name += "-22k-1k"
  
  		model.push_to_hub(
  		    repo_path_or_name=Path(lowerCAmelCase__       ,lowerCAmelCase__	)       ,organization='nielsr'       ,commit_message='Add model'       ,)
  
  
  if __name__ == "__main__":
  		_lowercase		:     int 					=argparse.ArgumentParser()
  		# Required parameters
  		parser.add_argument(
  		    """--checkpoint_url""",
  		    default="""https://dl.fbaipublicfiles.com/convnext/convnext_tiny_1k_224_ema.pth""",
  		    type=str,
  		    help="""URL of the original ConvNeXT checkpoint you'd like to convert.""",
  		)
  		parser.add_argument(
  		    """--pytorch_dump_folder_path""",
  		    default=None,
  		    type=str,
  		    required=True,
  		    help="""Path to the output PyTorch model directory.""",
  		)
  
  		_lowercase		:     List[Any] 					=parser.parse_args()
  		convert_convnext_checkpoint(args.checkpoint_url, args.pytorch_dump_folder_path)
  
style_context: 
  
  
  
  
  
  from typing import TYPE_CHECKING
  
  from ...utils import (
      OptionalDependencyNotAvailable,
      _LazyModule,
      is_flax_available,
      is_sentencepiece_available,
      is_tf_available,
      is_tokenizers_available,
      is_torch_available,
  )
  
  
  _lowercase		:     int 					={
      """configuration_marian""": ["""MARIAN_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MarianConfig""", """MarianOnnxConfig"""],
  }
  
  try:
  		if not is_sentencepiece_available():
  				raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
  		pass
  else:
  		_lowercase		:     Any 					=["""MarianTokenizer"""]
  
  try:
  		if not is_torch_available():
  				raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
  		pass
  else:
  		_lowercase		:     Any 					=[
  		    """MARIAN_PRETRAINED_MODEL_ARCHIVE_LIST""",
  		    """MarianForCausalLM""",
  		    """MarianModel""",
  		    """MarianMTModel""",
  		    """MarianPreTrainedModel""",
  		]
  
  try:
  		if not is_tf_available():
  				raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
  		pass
  else:
  		_lowercase		:     Dict 					=["""TFMarianModel""", """TFMarianMTModel""", """TFMarianPreTrainedModel"""]
  
  try:
  		if not is_flax_available():
  				raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
  		pass
  else:
  		_lowercase		:     Optional[Any] 					=["""FlaxMarianModel""", """FlaxMarianMTModel""", """FlaxMarianPreTrainedModel"""]
  
  if TYPE_CHECKING:
  		from .configuration_marian import MARIAN_PRETRAINED_CONFIG_ARCHIVE_MAP, MarianConfig, MarianOnnxConfig
  
  		try:
  				if not is_sentencepiece_available():
  						raise OptionalDependencyNotAvailable()
  		except OptionalDependencyNotAvailable:
  				pass
  		else:
  				from .tokenization_marian import MarianTokenizer
  
  		try:
  				if not is_torch_available():
  						raise OptionalDependencyNotAvailable()
  		except OptionalDependencyNotAvailable:
  				pass
  		else:
  				from .modeling_marian import (
  				    MARIAN_PRETRAINED_MODEL_ARCHIVE_LIST,
  				    MarianForCausalLM,
  				    MarianModel,
  				    MarianMTModel,
  				    MarianPreTrainedModel,
  				)
  
  		try:
  				if not is_tf_available():
  						raise OptionalDependencyNotAvailable()
  		except OptionalDependencyNotAvailable:
  				pass
  		else:
  				from .modeling_tf_marian import TFMarianModel, TFMarianMTModel, TFMarianPreTrainedModel
  
  		try:
  				if not is_flax_available():
  						raise OptionalDependencyNotAvailable()
  		except OptionalDependencyNotAvailable:
  				pass
  		else:
  				from .modeling_flax_marian import FlaxMarianModel, FlaxMarianMTModel, FlaxMarianPreTrainedModel
  
  else:
  		import sys
  
  		_lowercase		:     List[str] 					=_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)
  