scikit_quri.circuit package

Contents

scikit_quri.circuit package#

Submodules#

scikit_quri.circuit.circuit module#

scikit_quri.circuit.circuit.need_learning_parameter_guard(func, companion_parameter_id)[source]#
Parameters:
Return type:

TypeGuard[Callable[[ndarray[tuple[int, …], dtype[float64]]], float]]

scikit_quri.circuit.circuit.not_needed_learning_parameter_guard(func, companion_parameter_id)[source]#
Parameters:
Return type:

TypeGuard[Callable[[float, ndarray[tuple[int, …], dtype[float64]]], float]]

class scikit_quri.circuit.circuit.LearningCircuit(n_qubits: int)[source]#

Bases: object

Parameters:

n_qubits (int) –

n_qubits: int#
circuit: ParametricQuantumCircuit#
input_functions: dict[int, Callable[[numpy.ndarray[tuple[int, ...], numpy.dtype[numpy.float64]]], float]]#
add_gate(gate)[source]#

Add arbitrary gate.

Parameters:

gate (QuantumGate) – Gate to add.

Return type:

None

add_X_gate(index)[source]#
Parameters:

index (int) – Index of qubit to add X gate.

Return type:

None

add_Y_gate(index)[source]#
Parameters:

index (int) – Index of qubit to add Y gate.

Return type:

None

add_Z_gate(index)[source]#
Parameters:

index (int) – Index of qubit to add Z gate.

Return type:

None

add_RX_gate(index, angle)[source]#
Parameters:
  • index (int) – Index of qubit to add RX gate.

  • angle (float) – Rotation angle.

Return type:

None

add_RY_gate(index, parameter)[source]#
Parameters:
  • index (int) – Index of qubit to add RY gate.

  • angle – Rotation angle.

  • parameter (float) –

Return type:

None

add_RZ_gate(index, parameter)[source]#
Parameters:
  • index (int) – Index of qubit to add RZ gate.

  • angle – Rotation angle.

  • parameter (float) –

Return type:

None

add_CNOT_gate(control_index, target_index)[source]#
Parameters:
  • control_index (int) – Index of control qubit.

  • target_index (int) – Index of target qubit.

Return type:

None

add_H_gate(index)[source]#
Parameters:

index (int) – Index of qubit to put H gate.

Return type:

None

add_input_RX_gate(qubit, input_function)[source]#
Parameters:
Return type:

None

add_input_RY_gate(qubit, input_function)[source]#
Parameters:
Return type:

None

add_input_RZ_gate(qubit, input_function)[source]#
Parameters:
Return type:

None

add_parametric_RX_gate(qubit, share_with=None, share_with_coef=None)[source]#
Parameters:
Return type:

int

add_parametric_RY_gate(qubit, share_with=None, share_with_coef=None)[source]#
Parameters:
Return type:

int

add_parametric_RZ_gate(qubit, share_with=None, share_with_coef=None)[source]#
Parameters:
Return type:

int

add_parametric_multi_Pauli_rotation_gate(targets, pauli_ids)[source]#
Parameters:
Return type:

Parameter

add_parametric_input_RX_gate(index, input_func=<function LearningCircuit.<lambda>>)[source]#
Parameters:
Return type:

None

add_parametric_input_RY_gate(index, input_func=<function LearningCircuit.<lambda>>)[source]#
Parameters:
Return type:

None

add_parametric_input_RZ_gate(index, input_func=<function LearningCircuit.<lambda>>)[source]#
Parameters:
Return type:

None

property parameter_count: int#
property input_params_count: int#
property learning_params_count: int#
get_learning_param_indexes()[source]#
Return type:

List[int]

get_minimum_learning_param_indexes()[source]#

Circuit内のパラメータのうち,Circuitを構成できる最小のパラメータのインデックスを返す

Return type:

List[int]

get_input_params_indexes()[source]#
Return type:

List[int]

bind_input_and_parameters(x, parameters)[source]#
Parameters:
Return type:

ImmutableBoundParametricQuantumCircuit

generate_bound_params(x, parameters)[source]#

x: Input data, theta: Learning parametersから,Circuitにbindするパラーメータを生成する

Parameters:
Return type:

Sequence[float]

backprop_innner_product(x, theta, state)[source]#

backprop(self, x: List[float], state)->List[Float] qulacsに回路を変換しinner_productでbackpropします。

Parameters:
Return type:

ndarray[tuple[int, …], dtype[float64]]

to_batched(data, parameters)[source]#

scaluq(quri-parts-scaluq)に流すためのMethod data: (n_data, n_features) theta: (n_params)

Returns:

(UnboundParametricQuantumCircuit, NDArray[n_data, params])

Return type:

(circuit, batched_params)

Parameters:
scikit_quri.circuit.circuit.preprocess_x(x, i)[source]#
Parameters:
Return type:

float

scikit_quri.circuit.pre_defined module#

scikit_quri.circuit.pre_defined.CZ()#
scikit_quri.circuit.pre_defined.CNOT()#
scikit_quri.circuit.pre_defined.create_qcl_ansatz(n_qubit, c_depth, time_step=0.5, seed=0)[source]#

Create a circuit used in this page: https://dojo.qulacs.org/ja/latest/notebooks/5.2_Quantum_Circuit_Learning.html

Parameters:
  • n_qubit (int) – number of qubits

  • c_depth (int) – circuit depth

  • time_step (float) – the evolution time used for the hamiltonian dynamics

  • seed (Optional[int]) – seed for random numbers. used for determining the interaction strength of the hamiltonian simulation

Return type:

LearningCircuit

Examples

>>> n_qubit = 4
>>> circuit = create_qcl_ansatz(n_qubit, 3, 0.5)
>>> qnn = QNNRegressor(circuit)
>>> qnn.fit(x_train, y_train)
scikit_quri.circuit.pre_defined.preprocess_x(x, i)[source]#
Parameters:
Return type:

float

scikit_quri.circuit.pre_defined.create_farhi_neven_ansatz(n_qubit, c_depth, seed=0)[source]#
Parameters:
Return type:

LearningCircuit

scikit_quri.circuit.pre_defined.create_ibm_embedding_circuit(n_qubit)[source]#

create circuit proposed in https://arxiv.org/abs/1802.06002.

Parameters:
  • n_qubits – number of qubits

  • n_qubit (int) –

Return type:

LearningCircuit

scikit_quri.circuit.pre_defined.create_dqn_cl(n_qubit, c_depth, s_qubit)[source]#
Parameters:
  • n_qubit (int) –

  • c_depth (int) –

  • s_qubit (int) –

Return type:

LearningCircuit

scikit_quri.circuit.pre_defined.create_dqn_cl_no_cz(n_qubit, c_depth)[source]#
Parameters:
  • n_qubit (int) –

  • c_depth (int) –

Return type:

LearningCircuit

scikit_quri.circuit.pre_defined.create_qcnn_ansatz(n_qubit, seed=0)[source]#

Creates circuit used in https://www.tensorflow.org/quantum/tutorials/qcnn?hl=en, Section 1.

Parameters:
  • n_qubit (int) – number of qubits. must be even.

  • seed (Optional[int]) – seed for random numbers. used for determining the interaction strength of the hamiltonian simulation

Return type:

LearningCircuit

Module contents#