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()
  __lowerCamelCase  				=					logging.get_logger(__name__)
  
  
  
  
  def     UpperCAmelCase__ (							__snake_case							)   -> Dict:
    _A           =    ConvNextConfig()
  
    if "tiny" in checkpoint_url:
      _A           =    [3, 3, 9, 3]
      _A           =    [96, 192, 384, 768]
    if "small" in checkpoint_url:
      _A           =    [3, 3, 27, 3]
      _A           =    [96, 192, 384, 768]
    if "base" in checkpoint_url:
      _A           =    [3, 3, 27, 3]
      _A           =    [128, 256, 512, 1_024]
    if "large" in checkpoint_url:
      _A           =    [3, 3, 27, 3]
      _A           =    [192, 384, 768, 1_536]
    if "xlarge" in checkpoint_url:
      _A           =    [3, 3, 27, 3]
      _A           =    [256, 512, 1_024, 2_048]
  
    if "1k" in checkpoint_url:
      _A           =    1_000
      _A           =    '''imagenet-1k-id2label.json'''
      _A           =    (1, 1_000)
    else:
      _A           =    21_841
      _A           =    '''imagenet-22k-id2label.json'''
      _A           =    (1, 21_841)
  
    _A           =    '''huggingface/label-files'''
    _A           =    num_labels
    _A           =    json.load(open(hf_hub_download(__snake_case						,				__snake_case						,				repo_type='''dataset'''							)						,				'''r'''							)							)
    _A           =    {int(__snake_case							): 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[9_205]
      del idalabel[15_027]
    _A           =    idalabel
    _A           =    {v: k for k, v in idalabel.items()}
    _A           =    hidden_sizes
    _A           =    depths
  
    return config, expected_shape
  
  
  
  
  def     UpperCAmelCase__ (							__snake_case							)   -> Optional[int]:
    if "downsample_layers.0.0" in name:
      _A           =    name.replace('''downsample_layers.0.0'''						,				'''embeddings.patch_embeddings'''							)
    if "downsample_layers.0.1" in name:
      _A           =    name.replace('''downsample_layers.0.1'''						,				'''embeddings.norm'''							)  # we rename to layernorm later on
    if "downsample_layers.1.0" in name:
      _A           =    name.replace('''downsample_layers.1.0'''						,				'''stages.1.downsampling_layer.0'''							)
    if "downsample_layers.1.1" in name:
      _A           =    name.replace('''downsample_layers.1.1'''						,				'''stages.1.downsampling_layer.1'''							)
    if "downsample_layers.2.0" in name:
      _A           =    name.replace('''downsample_layers.2.0'''						,				'''stages.2.downsampling_layer.0'''							)
    if "downsample_layers.2.1" in name:
      _A           =    name.replace('''downsample_layers.2.1'''						,				'''stages.2.downsampling_layer.1'''							)
    if "downsample_layers.3.0" in name:
      _A           =    name.replace('''downsample_layers.3.0'''						,				'''stages.3.downsampling_layer.0'''							)
    if "downsample_layers.3.1" in name:
      _A           =    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.
      _A           =    name[: len('''stages.0'''							)] + '''.layers''' + name[len('''stages.0'''							) :]
    if "stages" in name:
      _A           =    name.replace('''stages'''						,				'''encoder.stages'''							)
    if "norm" in name:
      _A           =    name.replace('''norm'''						,				'''layernorm'''							)
    if "gamma" in name:
      _A           =    name.replace('''gamma'''						,				'''layer_scale_parameter'''							)
    if "head" in name:
      _A           =    name.replace('''head'''						,				'''classifier'''							)
  
    return name
  
  
  
  
  def     UpperCAmelCase__ (							)   -> List[str]:
    _A           =    '''http://images.cocodataset.org/val2017/000000039769.jpg'''
    _A           =    Image.open(requests.get(__snake_case						,				stream=__snake_case							).raw							)
    return im
  
  
  
  
  @torch.no_grad()
  def     UpperCAmelCase__ (							__snake_case						,				__snake_case							)   -> Dict:
    _A    ,   _A           =    get_convnext_config(__snake_case							)
    # load original state_dict from URL
    _A           =    torch.hub.load_state_dict_from_url(__snake_case							)['''model''']
    # rename keys
    for key in state_dict.copy().keys():
      _A           =    state_dict.pop(__snake_case							)
      _A           =    val
    # add prefix to all keys expect classifier head
    for key in state_dict.copy().keys():
      _A           =    state_dict.pop(__snake_case							)
      if not key.startswith('''classifier'''							):
        _A           =    '''convnext.''' + key
      _A           =    val
  
    # load HuggingFace model
    _A           =    ConvNextForImageClassification(__snake_case							)
    model.load_state_dict(__snake_case							)
    model.eval()
  
    # Check outputs on an image, prepared by ConvNextImageProcessor
    _A           =    224 if '''224''' in checkpoint_url else 384
    _A           =    ConvNextImageProcessor(size=__snake_case							)
    _A           =    image_processor(images=prepare_img()						,				return_tensors='''pt'''							).pixel_values
  
    _A           =    model(__snake_case							).logits
  
    # note: the logits below were obtained without center cropping
    if checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_tiny_1k_224_ema.pth":
      _A           =    torch.tensor([-0.12_10, -0.66_05, 0.19_18]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_small_1k_224_ema.pth":
      _A           =    torch.tensor([-0.44_73, -0.18_47, -0.63_65]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_1k_224_ema.pth":
      _A           =    torch.tensor([0.45_25, 0.75_39, 0.03_08]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_1k_384.pth":
      _A           =    torch.tensor([0.35_61, 0.63_50, -0.03_84]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_1k_224_ema.pth":
      _A           =    torch.tensor([0.41_74, -0.09_89, 0.14_89]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_1k_384.pth":
      _A           =    torch.tensor([0.25_13, -0.13_49, -0.16_13]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_224.pth":
      _A           =    torch.tensor([1.29_80, 0.36_31, -0.11_98]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_22k_224.pth":
      _A           =    torch.tensor([1.29_63, 0.12_27, 0.17_23]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_xlarge_22k_224.pth":
      _A           =    torch.tensor([1.79_56, 0.83_90, 0.28_20]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_1k_224.pth":
      _A           =    torch.tensor([-0.28_22, -0.05_02, -0.08_78]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_base_22k_1k_384.pth":
      _A           =    torch.tensor([-0.56_72, -0.07_30, -0.43_48]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_22k_1k_224.pth":
      _A           =    torch.tensor([0.26_81, 0.23_65, 0.62_46]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_large_22k_1k_384.pth":
      _A           =    torch.tensor([-0.26_42, 0.39_31, 0.51_16]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_xlarge_22k_1k_224_ema.pth":
      _A           =    torch.tensor([-0.66_77, -0.18_73, -0.83_79]							)
    elif checkpoint_url == "https://dl.fbaipublicfiles.com/convnext/convnext_xlarge_22k_1k_384_ema.pth":
      _A           =    torch.tensor([-0.77_49, -0.29_67, -0.64_44]							)
    else:
      raise ValueError(F'''Unknown URL: {checkpoint_url}'''							)
  
    assert torch.allclose(logits[0, :3]						,				__snake_case						,				atol=1e-3							)
    assert logits.shape == expected_shape
  
    Path(__snake_case							).mkdir(exist_ok=__snake_case							)
    print(F'''Saving model to {pytorch_dump_folder_path}'''							)
    model.save_pretrained(__snake_case							)
    print(F'''Saving image processor to {pytorch_dump_folder_path}'''							)
    image_processor.save_pretrained(__snake_case							)
  
    print('''Pushing model to the hub...'''							)
    _A           =    '''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(__snake_case						,				__snake_case							)						,				organization='''nielsr'''						,				commit_message='''Add model'''						,				)
  
  
  if __name__ == "__main__":
      __lowerCamelCase  				=					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.""",
      )
  
      __lowerCamelCase  				=					parser.parse_args()
      convert_convnext_checkpoint(args.checkpoint_url, args.pytorch_dump_folder_path)
style_context: 
  
  
  
  from sklearn.metrics import accuracy_score
  
  import datasets
  
  
  __lowerCamelCase  				=					"""
  Accuracy is the proportion of correct predictions among the total number of cases processed. It can be computed with:
  Accuracy = (TP + TN) / (TP + TN + FP + FN)
   Where:
  TP: True positive
  TN: True negative
  FP: False positive
  FN: False negative
  """
  
  
  __lowerCamelCase  				=					"""
  Args:
      predictions (`list` of `int`): Predicted labels.
      references (`list` of `int`): Ground truth labels.
      normalize (`boolean`): If set to False, returns the number of correctly classified samples. Otherwise, returns the fraction of correctly classified samples. Defaults to True.
      sample_weight (`list` of `float`): Sample weights Defaults to None.
  
  Returns:
      accuracy (`float` or `int`): Accuracy score. Minimum possible value is 0. Maximum possible value is 1.0, or the number of examples input, if `normalize` is set to `True`.. A higher score means higher accuracy.
  
  Examples:
  
      Example 1-A simple example
          >>> accuracy_metric = datasets.load_metric(\"accuracy\")
          >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0])
          >>> print(results)
          {'accuracy': 0.5}
  
      Example 2-The same as Example 1, except with `normalize` set to `False`.
          >>> accuracy_metric = datasets.load_metric(\"accuracy\")
          >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], normalize=False)
          >>> print(results)
          {'accuracy': 3.0}
  
      Example 3-The same as Example 1, except with `sample_weight` set.
          >>> accuracy_metric = datasets.load_metric(\"accuracy\")
          >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], sample_weight=[0.5, 2, 0.7, 0.5, 9, 0.4])
          >>> print(results)
          {'accuracy': 0.8778625954198473}
  """
  
  
  __lowerCamelCase  				=					"""
  @article{scikit-learn,
    title={Scikit-learn: Machine Learning in {P}ython},
    author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V.
           and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P.
           and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and
           Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.},
    journal={Journal of Machine Learning Research},
    volume={12},
    pages={2825--2830},
    year={2011}
  }
  """
  
  
  
  @datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION					,_KWARGS_DESCRIPTION				)
  class 		_snake_case      (			datasets.Metric				):
  
  
  
  
  
   """simple docstring"""
  
  
  
   def lowercase_		(						self					)	->							Optional[Any]:
  
  
  
  
     """simple docstring"""
  
  
  
  
  
  
  
     return datasets.MetricInfo(
         description=_DESCRIPTION	,    citation=_CITATION	,    inputs_description=_KWARGS_DESCRIPTION	,    features=datasets.Features(
             {
                 '''predictions''': datasets.Sequence(datasets.Value('''int32'''					)					),
                 '''references''': datasets.Sequence(datasets.Value('''int32'''					)					),
             }
             if self.config_name == '''multilabel'''
             else {
                 '''predictions''': datasets.Value('''int32'''					),
                 '''references''': datasets.Value('''int32'''					),
             }					)	,    reference_urls=['''https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html''']	,    )
  
  
  
   def lowercase_		(						self	,    a	,    a	,    a=True	,    a=None					)	->							Dict:
  
  
  
  
     """simple docstring"""
  
  
  
  
  
  
  
     return {
         "accuracy": float(
             accuracy_score(a	,    a	,    normalize=a	,    sample_weight=a					)					)
     }