genQC logo genQC logo genQC
  • Overview
  • Get Started
  • Tutorials
  • API Reference
  • Research
  • Code Repository
  1. Inference
  2. Evaluation metrics

API Reference

  • Modules Overview
  • Release notes

  • Benchmark
    • Compilation benchmark
  • Dataset
    • Dataset balancing
    • Cached dataset
    • Quantum circuit dataset
    • Config dataset
    • Dataset helper functions
    • Mixed cached dataset
  • Inference
    • Evaluation metrics
    • Evaluation helper
    • Sampling functions
  • Models
    • Config model
    • Frozen OpenCLIP
    • Layers
    • Position encodings
    • Conditional qc-UNet
    • Encoder for unitaries
    • Clip
      • Frozen OpenCLIP
      • Unitary CLIP
    • Embedding
      • Base embedder
      • Rotational preset embedder
    • Transformers
      • Transformers and attention
      • CirDiT - Circuit Diffusion Transformer
      • Transformers
  • Pipeline
    • Callbacks
    • Compilation Diffusion Pipeline
    • Diffusion Pipeline
    • Diffusion Pipeline Special
    • Metrics
    • Multimodal Diffusion Pipeline
    • Pipeline
    • Unitary CLIP Pipeline
  • Platform
    • Circuits dataset generation functions
    • Circuits instructions
    • Simulation backend
    • Backends
      • Base backend
      • CUDA-Q circuits backend
      • Pennylane circuits backend
      • Qiskit circuits backend
    • Tokenizer
      • Base tokenizer
      • Circuits tokenizer
      • Tensor tokenizer
  • Scheduler
    • Scheduler
    • DDIM Scheduler
    • DDPM Scheduler
    • DPM Scheduler
  • Utils
    • Async functions
    • Config loader
    • Math and algorithms
    • Miscellaneous util

On this page

  • Base norm
    • BaseNorm
  • Unitary distances
    • UnitaryFrobeniusNorm
    • UnitaryInfidelityNorm
  • Report an issue
  • View source
  1. Inference
  2. Evaluation metrics

Evaluation metrics

Different metrics used for evaluation.

Base norm


source

BaseNorm


def BaseNorm(
    args:VAR_POSITIONAL, kwargs:VAR_KEYWORD
):

Base class for norms.

Unitary distances


source

UnitaryFrobeniusNorm


def UnitaryFrobeniusNorm(
    args:VAR_POSITIONAL, kwargs:VAR_KEYWORD
):

The Frobenius-Norm for unitaries: defined in https://arxiv.org/pdf/2106.05649.pdf.


source

UnitaryInfidelityNorm


def UnitaryInfidelityNorm(
    args:VAR_POSITIONAL, kwargs:VAR_KEYWORD
):

The Infidelity-Norm for unitaries: defined in https://link.aps.org/accepted/10.1103/PhysRevA.95.042318, TABLE I: 1.

Test the metrics on random unitaries:

approx_U = torch.tensor(unitary_group.rvs(8))
target_U = torch.tensor(unitary_group.rvs(8))
print(UnitaryFrobeniusNorm.name())
UnitaryFrobeniusNorm.distance(target_U, target_U), UnitaryFrobeniusNorm.distance(approx_U, target_U)
Frobenius-Norm
(tensor(0., dtype=torch.float64), tensor(8.5523, dtype=torch.float64))
print(UnitaryInfidelityNorm.name())
UnitaryInfidelityNorm.distance(target_U, target_U), UnitaryInfidelityNorm.distance(approx_U, target_U)
Unitary-Infidelity
(tensor(4.4409e-16, dtype=torch.float64), tensor(0.9895, dtype=torch.float64))
Back to top
Mixed cached dataset
Evaluation helper
 

Copyright 2025, Florian Fürrutter

  • Report an issue
  • View source