量子电路训练结果可视化:目标分布与训练分布对比
上述代码主要用于绘制训练后的分布与目标分布之间的对比图。首先,我们通过计算给定量子比特数和参数范围,得到一组离散的值。然后,我们使用给定的参数对不确定性模型进行参数化,并计算其幅度。接下来,我们生成了一个服从对数正态分布的样本,并将样本分为8个区间。最后,我们使用条形图表示训练后的分布,并使用折线图表示目标分布。/n/n其中,x轴表示到期时的标的价格'S_T',y轴表示概率。蓝色的条形图表示训练后的分布,深天蓝色的折线图表示目标分布。/n/n代码示例:/npython/nvalues = [/n bounds[0] + (bounds[1] - bounds[0]) * x / (2**num_qubits - 1) for x in range(2**num_qubits)/n]/nuncertainty_model = g_circuit.assign_parameters(dict(zip(theta, g_params)))/namplitudes = Statevector.from_instruction(uncertainty_model).data/n/nx = np.array(values)/ny = np.abs(amplitudes) ** 2/n/nN = 100000/nlog_normal = np.random.lognormal(mean=1, sigma=1, size=N)/nlog_normal = np.round(log_normal)/nlog_normal = log_normal[log_normal <= 7]/nlog_normal_samples = []/nfor i in range(8):/n log_normal_samples += [np.sum(log_normal == i)]/nlog_normal_samples = np.array(log_normal_samples / sum(log_normal_samples))/n/nplt.bar(x, y, width=0.2, label='trained distribution', color='royalblue')/nplt.xticks(x, size=15, rotation=90)/nplt.yticks(size=15)/nplt.grid()/nplt.xlabel('Spot Price at Maturity $S_T$ (/$)', size=15)/nplt.ylabel('Probability (%)', size=15)/nplt.plot(/n log_normal_samples,/n '-o',/n color='deepskyblue',/n label='target distribution',/n linewidth=4,/n markersize=12,/n)/nplt.legend(loc='best')/nplt.show()/n/n/n该代码示例展示了如何使用 Python 绘制训练后的分布与目标分布之间的对比图,并对代码进行了详细的解释。
原文地址: https://www.cveoy.top/t/topic/qAlK 著作权归作者所有。请勿转载和采集!