scikit_quri.backend package#
Submodules#
scikit_quri.backend.base_estimator module#
- class scikit_quri.backend.base_estimator.BaseEstimator[source]#
Bases:
objectEstimatorを実行する際の基底クラス estimateメソッドに対するinterfaceを定義
- abstract estimate(operators, states)[source]#
operatorsとstatesの組み合わせに対して期待値を計算する operatorsまたはstatesのどちらかが1つの場合、もう一方の数に合わせて繰り返す もしくは、両方の数が同じ場合、1対1で対応させる それ以外の場合、ValueErrorを投げる
- Parameters:
operators (Sequence[Union[Operator, PauliLabel]]) – 期待値を計算する演算子のリスト
states (Sequence[Union[CircuitQuantumState, QuantumStateVector]]) – 期待値を計算する状態のリスト
- Returns:
operatorsとstatesの組み合わせに対する期待値のリスト
- Return type:
scikit_quri.backend.base_gradient_estimator module#
- class scikit_quri.backend.base_gradient_estimator.BaseGradientEstimator[source]#
Bases:
objectGradient Estimatorを実行する際の基底クラス estimate_gradientメソッドに対するinterfaceを定義
- abstract estimate_gradient(operators, state, params)[source]#
operatorsとstatesの組み合わせに対して勾配を計算する operatorsまたはstatesのどちらかが1つの場合、もう一方の数に合わせて繰り返す もしくは、両方の数が同じ場合、1対1で対応させる それ以外の場合、ValueErrorを投げる
- abstract estimate_learning_param_gradient(operators, circuit, params)[source]#
学習パラメータに対する勾配を計算する operatorsまたはstatesのどちらかが1つの場合、もう一方の数に合わせて繰り返す もしくは、両方の数が同じ場合、1対1で対応させる それ以外の場合、ValueErrorを投げる
- Parameters:
operators (Union[Operator, PauliLabel]) – 勾配を計算する演算子のリスト
states – 勾配を計算する状態のリスト
circuit (LearningCircuit) –
- Returns:
operatorsとstatesの組み合わせに対する学習パラメータの勾配のリスト
- Return type:
scikit_quri.backend.oqtopus_estimator module#
- class scikit_quri.backend.oqtopus_estimator.OqtopusEstimator(device_id, shots=1000, config=None)[source]#
Bases:
BaseEstimatorEstimator class that computes expectation values on real quantum hardware via quri-parts-oqtopus. Requires an OQTOPUS configuration file at
~/.oqtopus. See: https://quri-parts-oqtopus.readthedocs.io/en/stable/usage/getting_started/#prepare-oqtopus-configuration-file- Parameters:
device_id (str) – ID of the device to run on.
shots (int) – Number of shots per circuit execution. Defaults to 1000.
config (Optional[OqtopusConfig]) – OQTOPUS configuration. Defaults to None.
- estimate(operators, states)[source]#
Compute expectation values for combinations of operators and states. If either operators or states contains a single element, it is broadcast to match the length of the other. If both contain multiple elements, they must have the same length and are paired one-to-one.
- Parameters:
operators – List of operators for which to compute expectation values.
states – List of quantum states.
- Returns:
List of expectation values for each (operator, state) pair.
- Raises:
ValueError – If operators or states is empty, or if both have multiple elements with mismatched lengths.
BackendError – If execution on OQTOPUS fails.
scikit_quri.backend.oqtopus_gradient_estimator module#
- class scikit_quri.backend.oqtopus_gradient_estimator.LearningCircuitParameter(input_param, learning_param)[source]#
Bases:
object学習回路のパラメータを保持するデータクラス。
- Parameters:
- input_param#
入力データに対応するパラメータ。
- Type:
numpy.ndarray[tuple[int, …], numpy.dtype[numpy.float64]]
- learning_param#
最適化対象の学習パラメータ。
- Type:
numpy.ndarray[tuple[int, …], numpy.dtype[numpy.float64]]
- scikit_quri.backend.oqtopus_gradient_estimator.numerical_gradient_estimates(op, circuit, params, delta)[source]#
数値微分により勾配を計算する。
中心差分法を用いて各学習パラメータに対する勾配を計算する。 grad[i] = (f(θ_i + δ/2) - f(θ_i - δ/2)) / δ
- Parameters:
op (Union[Operator, PauliLabel]) – 期待値を計算する演算子。
circuit (LearningCircuit) – 学習回路。
params (LearningCircuitParameter) – 入力パラメータと学習パラメータ。
delta (float) – 数値微分の刻み幅。
- Returns:
各学習パラメータに対する勾配のシーケンス。
- Return type:
- class scikit_quri.backend.oqtopus_gradient_estimator.OqtopusGradientEstimator[source]#
Bases:
BaseGradientEstimatorOqtopusを用いて勾配を計算するGradient Estimator Class。
OqtopusEstimatorを内部で使用し、数値微分により勾配を計算する。
- estimate_gradient(operators, state, params)[source]#
全パラメータに対する勾配を計算する。
Note
現在未実装。
- Raises:
NotImplementedError – このメソッドは未実装。
scikit_quri.backend.oqtopus_sampler module#
- class scikit_quri.backend.oqtopus_sampler.OqtopusSampler(device_id, config)[source]#
Bases:
object- Parameters:
device_id (str) –
config (Optional[OqtopusConfig]) –
- get_device_qubit_count()[source]#
Oqtopusのデバイスの量子ビット数を取得する関数
- Returns:
Oqtopusのデバイスの量子ビット数
- Return type:
- Raises:
BackendError – Oqtopusでの実行に失敗した場合
- scikit_quri.backend.oqtopus_sampler.create_oqtopus_sampler(device_id, config=None)[source]#
Oqtopus用のSamplerを生成する関数 quri-partsのSamplerとして動作
- Returns:
Oqtopus用のSampler
- Return type:
Sampler
- Parameters:
device_id (str) –
config (Optional[OqtopusConfig]) –
- scikit_quri.backend.oqtopus_sampler.create_oqtopus_concurrent_sampler(device_id, config=None)[source]#
Oqtopus用のConcurrentSamplerを生成する関数 quri-partsのConcurrentSamplerとして動作 :returns: Oqtopus用のConcurrentSampler :rtype: ConcurrentSampler
- Parameters:
device_id (str) –
config (Optional[OqtopusConfig]) –
scikit_quri.backend.sim_estimator module#
- class scikit_quri.backend.sim_estimator.SimEstimator[source]#
Bases:
BaseEstimatorquri-parts-qulacsを用いて期待値を計算するSimulation用Estimator Class
scikit_quri.backend.sim_gradient_estimator module#
- class scikit_quri.backend.sim_gradient_estimator.SimGradientEstimator(method='parameter_shift', delta=1e-05)[source]#
Bases:
BaseGradientEstimatorquri-parts-qulacsを用いて勾配を計算するSimulation用Gradient Estimator Class
- Parameters:
- Raises:
ValueError – 不正なmethod名が指定された場合に発生
- estimate_gradient(operators, state, params)[source]#
operatorsとstatesの組み合わせに対して勾配を計算する operatorsまたはstatesのどちらかが1つの場合、もう一方の数に合わせて繰り返す もしくは、両方の数が同じ場合、1対1で対応させる それ以外の場合、ValueErrorを投げる
- estimate_learning_param_gradient(operators, circuit, params)[source]#
学習パラメータに対する勾配を計算する
- Parameters:
operators (Union[Operator, PauliLabel]) –
circuit (LearningCircuit) –
- Return type:
Module contents#
- class scikit_quri.backend.BaseEstimator[source]#
Bases:
objectEstimatorを実行する際の基底クラス estimateメソッドに対するinterfaceを定義
- abstract estimate(operators, states)[source]#
operatorsとstatesの組み合わせに対して期待値を計算する operatorsまたはstatesのどちらかが1つの場合、もう一方の数に合わせて繰り返す もしくは、両方の数が同じ場合、1対1で対応させる それ以外の場合、ValueErrorを投げる
- Parameters:
operators (Sequence[Union[Operator, PauliLabel]]) – 期待値を計算する演算子のリスト
states (Sequence[Union[CircuitQuantumState, QuantumStateVector]]) – 期待値を計算する状態のリスト
- Returns:
operatorsとstatesの組み合わせに対する期待値のリスト
- Return type:
- class scikit_quri.backend.OqtopusEstimator(device_id, shots=1000, config=None)[source]#
Bases:
BaseEstimatorEstimator class that computes expectation values on real quantum hardware via quri-parts-oqtopus. Requires an OQTOPUS configuration file at
~/.oqtopus. See: https://quri-parts-oqtopus.readthedocs.io/en/stable/usage/getting_started/#prepare-oqtopus-configuration-file- Parameters:
device_id (str) – ID of the device to run on.
shots (int) – Number of shots per circuit execution. Defaults to 1000.
config (Optional[OqtopusConfig]) – OQTOPUS configuration. Defaults to None.
- estimate(operators, states)[source]#
Compute expectation values for combinations of operators and states. If either operators or states contains a single element, it is broadcast to match the length of the other. If both contain multiple elements, they must have the same length and are paired one-to-one.
- Parameters:
operators – List of operators for which to compute expectation values.
states – List of quantum states.
- Returns:
List of expectation values for each (operator, state) pair.
- Raises:
ValueError – If operators or states is empty, or if both have multiple elements with mismatched lengths.
BackendError – If execution on OQTOPUS fails.
- class scikit_quri.backend.SimEstimator[source]#
Bases:
BaseEstimatorquri-parts-qulacsを用いて期待値を計算するSimulation用Estimator Class
- scikit_quri.backend.create_oqtopus_sampler(device_id, config=None)[source]#
Oqtopus用のSamplerを生成する関数 quri-partsのSamplerとして動作
- Returns:
Oqtopus用のSampler
- Return type:
Sampler
- Parameters:
device_id (str) –
config (Optional[OqtopusConfig]) –
- class scikit_quri.backend.SimGradientEstimator(method='parameter_shift', delta=1e-05)[source]#
Bases:
BaseGradientEstimatorquri-parts-qulacsを用いて勾配を計算するSimulation用Gradient Estimator Class
- Parameters:
- Raises:
ValueError – 不正なmethod名が指定された場合に発生
- estimate_gradient(operators, state, params)[source]#
operatorsとstatesの組み合わせに対して勾配を計算する operatorsまたはstatesのどちらかが1つの場合、もう一方の数に合わせて繰り返す もしくは、両方の数が同じ場合、1対1で対応させる それ以外の場合、ValueErrorを投げる
- estimate_learning_param_gradient(operators, circuit, params)[source]#
学習パラメータに対する勾配を計算する
- Parameters:
operators (Union[Operator, PauliLabel]) –
circuit (LearningCircuit) –
- Return type:
- class scikit_quri.backend.OqtopusGradientEstimator[source]#
Bases:
BaseGradientEstimatorOqtopusを用いて勾配を計算するGradient Estimator Class。
OqtopusEstimatorを内部で使用し、数値微分により勾配を計算する。
- estimate_gradient(operators, state, params)[source]#
全パラメータに対する勾配を計算する。
Note
現在未実装。
- Raises:
NotImplementedError – このメソッドは未実装。