paddle_quantum.gate.base
量子门的基类的功能实现。
- class Gate(matrix=None, qubits_idx=None, depth=1, gate_info=None, num_qubits=None, check_legality=True, num_acted_qubits=None, backend=None, dtype=None, name_scope=None)
- 基类: - paddle_quantum.channel.base.Channel- 量子门的基类。 - 参数:
- matrix (paddle.Tensor) – 量子门的矩阵 
- qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。 
- depth (int, optional) – 层数,默认为 - 1。
- gate_info (dict, optional) – 量子门的信息,用于信息追溯或者画图。 
- check_legality (bool) – 表示的完整性校验,默认为 - True。
- num_acted_qubits (int) – 量子门作用的量子比特的数量,默认为 - None。
- backend (paddle_quantum.Backend, optional) – 执行门的后端,默认为 - None。
- dtype (str, optional) – 数据的类型,默认为 - None。
- name_scope (str, optional) – 为 Layer 内部参数命名而采用的名称前缀。如果前缀为 “mylayer”,在一个类名为MyLayer的Layer中,参数名为”mylayer_0.w_n”,其中 “w” 是参数的名称,”n” 为自动生成的具有唯一性的后缀。如果为 - None,前缀名将为小写的类名。默认为- None。
 
 - property matrix
- 此门的酉矩阵 - 抛出:
- ValueError – 需要在门的实例给出矩阵。 
 
 - gate_history_generation()
- 生成量子门的历史记录 
 - set_gate_info(**kwargs)
- 设置 gate_info 的接口 - 参数:
- kwargs (Any) – 用于设置 gate_info 的参数。 
 
 - display_in_circuit(ax, x)
- 画出量子电路图,在 Circuit 类中被调用。 - 参数:
- ax (matplotlib.axes.Axes) – - matplotlib.axes.Axes的实例.
- x (float) – 开始的水平位置。 
 
- 返回:
- 占用的总宽度。 
- 返回类型:
- float 
 
 - 备注 - 使用者可以覆写此函数,从而自定义显示方式。 
- class ParamGate(generator, param=None, depth=1, num_acted_param=1, param_sharing=False, qubits_idx=None, gate_info=None, num_qubits=None, check_legality=True, num_acted_qubits=None, backend=None, dtype=None, name_scope=None)
- 基类: - paddle_quantum.gate.base.Gate- 可参数化量子门的基类。 - 参数:
- generator (Callable[[Tensor],Tensor]) – 用于产生量子门酉矩阵的函数。 
- param (Union[Tensor,float,List[float]]) – 输入参数,默认为 - Nonei.e. 随机。
- qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。默认为 - Nonei.e. list(range(num_acted_qubits))。
- depth (int, optional) – 层数,默认为 - 1。
- num_acted_param (int, optional) – 单次操作需要的参数数量。 
- param_sharing (bool) – 所有操作是否共享相同的一组参数。 
- gate_info (dict, optional) – 量子门的信息,用于信息追溯或者画图。 
- num_qubits (int) – 量子比特总数,默认为 - None
- check_legality (bool) – 表示的完整性校验,默认为 - True。
- num_acted_qubits (int) – 量子门作用的量子比特的数量,默认为 - None。
- backend (paddle_quantum.Backend, optional) – 执行门的后端,默认为 - None。
- dtype (str, optional) – 数据的类型,默认为 - None。
- name_scope (str, optional) – 为 Layer 内部参数命名而采用的名称前缀。如果前缀为 “mylayer”,在一个类名为MyLayer的Layer中,参数名为”mylayer_0.w_n”,其中 “w” 是参数的名称,”n” 为自动生成的具有唯一性的后缀。如果为 - None,前缀名将为小写的类名。默认为- None。
 
 - theta_generation(param, param_shape)
- 规范可参数化量子门的输入,并根据输入决定是否要管理或者生成参数 - 参数:
- param (Union[paddle.Tensor, float, List[float]]) – 可参数化量子门的输入 
- param_shape (List[int]) – 输入的形状 
 
 
 - 备注 - 在以下情况 param会被转为一个参数
- param是- None
 
- 在以下情况 param会被记录为一个参数
- param是 ParamBase
 
- 在以下情况 param会保持不变
- param是一个 paddle.Tensor 但不是 ParamBase
- param是一个 float 或者 List[float]
 
 - gate_history_generation()
- 生成量子门的历史记录 
 - display_in_circuit(ax, x)
- 画出量子电路图,在 Circuit 类中被调用。 - 参数:
- ax (matplotlib.axes.Axes) – - matplotlib.axes.Axes的实例.
- x (float) – 开始的水平位置。 
 
- 返回:
- 占用的总宽度。 
- 返回类型:
- float