CVQNN Module#

Some tools for simulating CVQNN (Continuous-Variable Quantum Neural Networks) are also available in Piquasso.

generate_random_cvqnn_weights(layer_count: int, d: int, active_var: float = 0.01, passive_var: float = 0.1) ndarray#

Generates random CVQNN weights for create_program().

Parameters:
  • layer_count (int) – The number of layers.

  • d (int) – Number of modes.

  • active_var (float, optional) – Active gate variance. Defaults to 0.01.

  • passive_var (float, optional) – Passive gate variance. Defaults to 0.1.

Returns:

An array of weights.

Return type:

np.ndarray

create_layers(weights: ndarray) Program#

Creates a subprogram from the specified weights.

Example usage:

import piquasso as pq

weights = pq.cvqnn.generate_random_cvqnn_weights(layer_count=10, d=5)

cvnn_layers = pq.cvqnn.create_program(weights)

with pq.Program() as program:
    for i in range(d):
        pq.Q(i) | pq.Displacement(r=0.1)

    pq.Q() | cvnn_layers
Parameters:

weights (np.ndarray) – The CVQNN circuit weights.

Returns:

The program of the CVQNN circuit, ready to be executed.

Return type:

Program

create_program(weights: ndarray) Program#

Creates a Program from the specified weights, with vacuum initial state.

Parameters:

weights (np.ndarray) – The CVQNN circuit weights.

Returns:

The program of the CVQNN circuit, ready to be executed.

Return type:

Program

get_number_of_modes(number_of_parameters: int) int#

Returns the number of modes given the number of parameters in a CVQNN layer.

Parameters:

number_of_parameters (int) – The number of CVQNN parameters per layer.

Raises:

CVQNNException – If the number of parameters does not correspond to any number of modes

Returns:

The number of modes.

Return type:

int