Muestreador
class Sampler(mode=None, options=None)
Bases: BaseSamplerV2
Primitiva «Sampler» del lado del cliente para IBM Quantum Compute (antes Qiskit Runtime ).
Se trata de una implementación de Sampler basada en la primitiva Executor, que permite un procesamiento transparente por parte del cliente con ciclos de retroalimentación más rápidos y un mayor control por parte del usuario.
Limitaciones:
- Cuando la función «twirling» está desactivada, los circuitos no deben contener instrucciones
BoxOp. - El desacoplamiento dinámico es incompatible con los circuitos dinámicos.
Ejemplo
from qiskit import QuantumCircuit
from qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime.executor_sampler import Sampler
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
# Create a simple circuit
circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure_all()
# Run the sampler with options
sampler = Sampler(mode=backend)
sampler.options.default_shots = 2048
sampler.options.execution.init_qubits = True
job = sampler.run([circuit])
result = job.result()Parámetros
-
mode (BackendV2 | Session |Batch | None) –
El modo de ejecución utilizado para realizar la consulta primitiva. Puede ser:
- A
BackendV2si estás utilizando el modo de trabajo. - A
Sessionsi estás utilizando el modo de ejecución de sesión. - A
Batchsi estás utilizando el modo de ejecución por lotes.
Consulta la documentación de IBM Quantum Compute para obtener más información sobre los modos de ejecución.
- A
-
options (SamplerOptions) – Opciones del muestreador. Consulta
SamplerOptionsaquí todas las opciones disponibles.
Atributos
mode
Devuelve el modo de ejecución utilizado por esta primitiva.
Devuelve
Modo utilizado por esta primitiva, o bien si None no se utiliza ningún modo de ejecución.
options
Tipo: SamplerOptions
Las opciones de este Sampler.
Métodos
backend
backend()
Devuelve el backend en el que se ejecutará la consulta primitiva.
Tipo de retorno
BackendV2
finalize_options
finalize_options()
Configurar y ultimar las opciones del Sampler.
Este método genera la SamplerOptions instancia final que se utiliza en una llamada a mediante run() la resolución de None en las opciones de twirling, tal y como se describe en TwirlingOptions.
Devuelve
El objeto SamplerOptions finalizado.
Tipo de retorno
find_unique_layers
find_unique_layers(pubs, types='gates')
Devuelve las capas empaquetadas únicas que se encuentran en los PUB indicados de un tipo determinado.
El número de types capas puede ser o "gates" "all", lo que corresponde únicamente a las capas de puerta o a todas las capas, respectivamente. La lista resultante contiene entonces una instancia de cada capa encajonada distinta (representada como un CircuitInstruction) que aparece en los PUB de entrada.
Parámetros
- pubs (Iterable[SamplerPubLike]) – La lista de PUB para los que se debe devolver una lista de casillas únicas.
- types (Literal['gates', 'all']) – Los tipos de capas que se van a devolver. Puede ser o
"gates""all".
Devuelve
Las capas en forma de caja características de un tipo concreto que se encuentran en los PUB indicados.
Tipo de retorno
list de[CircuitInstruction]
run
run(pubs, *, shots=None, dry_run=False)
Envía una solicitud a la primitiva de muestreo.
En el caso de cargas de trabajo moderadas y complejas, el procesamiento del lado del cliente que se lleva a cabo para asignar las entradas del muestreador a las del ejecutor puede requerir muchos recursos y provocar un retraso entre la invocación de la función y el job envío de la misma. Para comprobar el progreso de la llamada, se recomienda configurar el registro (con un nivel INFO de registro); consulta la información sobre el registro de IBM Quantum Compute para obtener más detalles.
Parámetros
- pubs (Iterable[SamplerPubLike]) – Un iterable de objetos similares a «pub». Por ejemplo, una lista de circuitos o tuplas
(circuit, parameter_values). - shots (int | None) – El número total de chupitos que hay que degustar en cada bar de la selección que no especifique su propio número de chupitos. Si
None,options.default_shotsse utilizará el valor de. - dry_run (bool) – Si
True, realiza una simulación sin ejecutar el trabajo en una QPU. Este modo se puede utilizar para validar el trabajo, calcular el consumo y obtener metadatos sobre la sincronización de los circuitos. Los resultados devueltos conservan el esquema esperado, pero contienen datos ficticios aleatorios en lugar de resultados de medición reales o simulados. A diferencia de los backends ficticios, el procesamiento de esta simulación se lleva a cabo en el lado del servidor, por lo que es posible que la tarea no finalice de inmediato y que el acceso a esta función esté restringido.
Devuelve
El trabajo enviado.
Tipo de retorno
RuntimeJobV2 | LocalRuntimeJob