




"""simple docstring"""


import argparse

import torch

from transformers import FunnelBaseModel, FunnelConfig, FunnelModel, load_tf_weights_in_funnel
from transformers.utils import logging


logging.set_verbosity_info()


def  UpperCAmelCase__	(snake_case__							: Dict		,       snake_case__							: str		,       snake_case__							: Tuple		,       snake_case__							: List[Any]   ):
  """simple docstring"""

  _snake_case							:		Tuple								=  FunnelConfig.from_json_file(snake_case__   )
  print(F"Building PyTorch model from configuration: {config}"   )
  _snake_case							:		Dict								=  FunnelBaseModel(snake_case__   ) if base_model else FunnelModel(snake_case__   )

  # Load weights from tf checkpoint
  load_tf_weights_in_funnel(snake_case__		,       snake_case__		,       snake_case__   )

  # Save pytorch-model
  print(F"Save PyTorch model to {pytorch_dump_path}"   )
  torch.save(model.state_dict()		,       snake_case__   )


if __name__ == "__main__":
     A_      =    argparse.ArgumentParser()
     # Required parameters
     parser.add_argument(
         '''--tf_checkpoint_path''', default=None, type=str, required=True, help='''Path to the TensorFlow checkpoint path.'''
     )
     parser.add_argument(
         '''--config_file''',
         default=None,
         type=str,
         required=True,
         help='''The config json file corresponding to the pre-trained model. \nThis specifies the model architecture.''',
     )
     parser.add_argument(
         '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
     )
     parser.add_argument(
         '''--base_model''', action='''store_true''', help='''Whether you want just the base model (no decoder) or not.'''
     )
     A_      =    parser.parse_args()
     convert_tf_checkpoint_to_pytorch(
         args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.base_model
     )








"""simple docstring"""


import math

import numpy as np
import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute


def  UpperCAmelCase__	(snake_case__							: int = 3   ):
  """simple docstring"""

  if isinstance(snake_case__		,       snake_case__   ):
    raise TypeError("""number of qubits must be a integer."""   )
  if number_of_qubits <= 0:
    raise ValueError("""number of qubits must be > 0."""   )
  if math.floor(snake_case__   ) != number_of_qubits:
    raise ValueError("""number of qubits must be exact integer."""   )
  if number_of_qubits > 10:
    raise ValueError("""number of qubits too large to simulate(>10)."""   )

  _snake_case							:		Optional[int]								=  QuantumRegister(snake_case__		,       """qr"""   )
  _snake_case							:		List[Any]								=  ClassicalRegister(snake_case__		,       """cr"""   )

  _snake_case							:		Optional[int]								=  QuantumCircuit(snake_case__		,       snake_case__   )

  _snake_case							:		Dict								=  number_of_qubits

  for i in range(snake_case__   ):
    quantum_circuit.h(number_of_qubits - i - 1   )
    counter -= 1
    for j in range(snake_case__   ):
      quantum_circuit.cp(np.pi / 2 ** (counter - j)		,       snake_case__		,       snake_case__   )

  for k in range(number_of_qubits // 2   ):
    quantum_circuit.swap(snake_case__		,       number_of_qubits - k - 1   )

  # measure all the qubits
  quantum_circuit.measure(snake_case__		,       snake_case__   )
  # simulate with 10000 shots
  _snake_case							:		Optional[int]								=  Aer.get_backend("""qasm_simulator"""   )
  _snake_case							:		Optional[int]								=  execute(snake_case__		,       snake_case__		,       shots=1_00_00   )

  return job.result().get_counts(snake_case__   )


if __name__ == "__main__":
     print(
         F'''Total count for quantum fourier transform state is: \
    {quantum_fourier_transform(3)}'''
     )


