这段代码构建了三个OpflowQNN对象,分别用于生成器、伪造器和真实器的训练。

gen_opqnn 用于生成器的训练。它接受生成器和伪造器共同作用的OpflowCircuit对象 (gendisc_op) 作为输入,并使用生成器的权重参数 (gen_disc_circuit.parameters[:N_DPARAMS]) 和可微分权重参数 (gen_disc_circuit.parameters[N_DPARAMS:]) 作为输入。它还接受期望值函数 (expval)、梯度函数 (gradient) 和量子实例 (qi_sv) 作为输入。生成器希望最小化这个期望值。

disc_fake_opqnn 用于伪造器的训练。它接受相同的OpflowCircuit对象 (gendisc_op) 作为输入,但使用伪造器的可微分权重参数 (gen_disc_circuit.parameters[N_DPARAMS:]) 和权重参数 (gen_disc_circuit.parameters[:N_DPARAMS]) 作为输入。它也接受相同的期望值函数、梯度函数和量子实例。伪造器希望最大化这个期望值。

disc_real_opqnn 用于真实器的训练。它接受真实器的OpflowCircuit对象 (realdisc_op) 作为输入,没有输入参数,并使用真实器的可微分权重参数 (gen_disc_circuit.parameters[:N_DPARAMS]) 作为输入。它也接受相同的期望值函数、梯度函数和量子实例。真实器希望最小化这个期望值。

这些OpflowQNN对象通过将量子电路与经典模型(期望值函数和梯度函数)结合在一起,定义了带有可微分权重的量子电路,用于训练和优化生成对抗网络。

代码中用到的符号:

  • gendisc_op: 生成器和伪造器共同作用的OpflowCircuit对象
  • gen_disc_circuit: 包含生成器和伪造器权重的OpflowCircuit对象
  • N_DPARAMS: 生成器权重的数量
  • expval: 期望值函数
  • gradient: 梯度函数
  • qi_sv: 量子实例
构建OpflowQNN以进行生成对抗网络训练

原文地址: https://www.cveoy.top/t/topic/qkP8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录