paddle_quantum.qml.qnnqd

QNNQD 模型。

class QNNQD(num_qubits, num_depths, observables)

基类:paddle.nn.Layer

基于量子神经网络进行质量检测。

参数:
  • num_qubits (List[int]) – 每层量子电路的比特数。

  • num_depths (List[int]) – 每层参数化部分的电路深度。

  • observables (List) – 每层电路的测量算子。

forward(batch_input)
参数:

batch_input (List[paddle.Tensor]) – 模型的输入,其形状为 \((\text{batch_size}, -1)\)

返回:

返回模型的输出,其形状为 \((\text{batch_size}, \text{num_classes})\)

返回类型:

paddle.Tensor

train(model_name, num_qubits, num_depths, observables, batch_size: int = 20, num_epochs: int = 4, learning_rate: float = 0.1, dataset: str = 'SurfaceCrack', saved_dir: str = './', using_validation: bool = False, num_train: int = -1, num_val: int = -1, num_test: int = -1)

训练 QNNQD 模型。

参数:
  • model_name (str) – 模型的名字,用于保存模型。

  • num_qubits (List[int]) – 每层量子电路的比特数。

  • num_depths (List[int]) – 每层参数化部分的电路深度。

  • observables (List) – 每层电路的测量算子。

  • batch_size (Optional[int]) – 数据的批大小,默认为 20

  • num_epochs – 训练的轮数,默认为 4

  • learning_rate (Optional[float]) – 更新参数的学习率,默认为 0.1

  • dataset (str) – 需要使用的数据集,默认为 SurfaceCrack

  • saved_dir (str) – 日志文件保存的路径,默认为 ./

  • using_validation (bool) – 是否使用验证集,默认为 False

  • num_train (Optional[int]) – 训练集的数据量。默认为 -1 ,即使用所有的训练数据。

  • num_val (Optional[int]) – 验证集的数据量。默认为 -1 ,即使用所有的训练数据。

  • num_test (Optional[int]) – 测试集的数据量。默认为 -1 ,即使用所有的训练数据。

inference(image_path: str, num_samples: int, model_path: str, num_qubits: List, num_depths: List, observables: List)

使用 QNNQD 模型进行推理。

参数:
  • image_path (str) – 需要推理的数据集。

  • num_samples (Optional[int]) – 需要推理数据集中图片的数量。

  • model_path (str) – 推理使用的模型。

  • num_qubits (List[int]) – 每层量子电路的比特数。

  • num_depths (List[int]) – 每层参数化部分的电路深度。

  • observables (List) – 每层电路的测量算子。