OriginBIS 转换
用于在量子程序和变分线路与 OriginBIS 二进制字符串之间进行转换的 API 参考。OriginBIS 使用基于 Protocol Buffers 的序列化,用于高效存储和网络传输。
QProg 转换
convert_qprog_to_originbis
将量子程序转换为 OriginBIS 二进制字符串。
签名
python
convert_qprog_to_originbis(
qprog: QProg,
) -> bytes参数
| 参数 | 类型 | 描述 |
|---|---|---|
| qprog | QProg | 要序列化的量子程序。 |
返回值
bytes -- OriginBIS 二进制字符串。
示例
python
from pyqpanda3.utils import convert_qprog_to_originbis
from pyqpanda3.core import QProg, H, CNOT
prog = QProg() << H(0) << CNOT(0, 1)
originbis = convert_qprog_to_originbis(prog)convert_originbis_to_qprog
将 OriginBIS 二进制字符串反序列化为量子程序。
签名
python
convert_originbis_to_qprog(
originbis: bytes,
) -> QProg参数
| 参数 | 类型 | 描述 |
|---|---|---|
| originbis | bytes | 之前由 convert_qprog_to_originbis 生成的 OriginBIS 二进制字符串。 |
返回值
反序列化后的 QProg 对象。
示例
python
from pyqpanda3.utils import convert_originbis_to_qprog
prog = convert_originbis_to_qprog(originbis)VQCircuit 转换
convert_vqcircuit_to_originbis
将变分量子线路转换为 OriginBIS 二进制字符串。
签名
python
convert_vqcircuit_to_originbis(
vqcircuit: VQCircuit,
) -> bytes参数
| 参数 | 类型 | 描述 |
|---|---|---|
| vqcircuit | VQCircuit | 要序列化的变分量子线路。 |
返回值
bytes -- OriginBIS 二进制字符串。
示例
python
from pyqpanda3.utils import convert_vqcircuit_to_originbis
# from pyqpanda3.vqcircuit import VQCircuit
originbis = convert_vqcircuit_to_originbis(vqc)convert_originbis_to_vqcircuit
将 OriginBIS 二进制字符串反序列化为变分量子线路。
签名
python
convert_originbis_to_vqcircuit(
originbis: bytes,
) -> VQCircuit参数
| 参数 | 类型 | 描述 |
|---|---|---|
| originbis | bytes | 之前由 convert_vqcircuit_to_originbis 生成的 OriginBIS 二进制字符串。 |
返回值
反序列化后的 VQCircuit 对象。
示例
python
from pyqpanda3.utils import convert_originbis_to_vqcircuit
vqc = convert_originbis_to_vqcircuit(originbis)变分线路与运行配置
以下函数序列化和反序列化捆绑了 CommProtocolConfig 的 VQCircuit。当线路及其执行配置需要作为单个单元传输时,这非常有用。
convert_vqcircuit_with_run_config_to_bytes
将变分量子线路及其执行配置转换为二进制字节串。
签名
python
convert_vqcircuit_with_run_config_to_bytes(
vqcircuit: VQCircuit,
config: CommProtocolConfig,
) -> bytes参数
| 参数 | 类型 | 描述 |
|---|---|---|
| vqcircuit | VQCircuit | 要序列化的变分量子线路。 |
| config | CommProtocolConfig | 要与线路捆绑的执行配置。 |
返回值
bytes -- 组合后的二进制数据。
示例
python
from pyqpanda3.utils import (
CommProtocolConfig,
convert_vqcircuit_with_run_config_to_bytes,
)
config = CommProtocolConfig()
config.shots = 4096
data = convert_vqcircuit_with_run_config_to_bytes(vqc, config)convert_vqc_with_run_config_bytes_to_vqcircuit
从组合二进制字符串中提取 VQCircuit。
签名
python
convert_vqc_with_run_config_bytes_to_vqcircuit(
vqc_with_run_config_bytes: bytes,
) -> VQCircuit参数
| 参数 | 类型 | 描述 |
|---|---|---|
| vqc_with_run_config_bytes | bytes | 由 convert_vqcircuit_with_run_config_to_bytes 生成的二进制数据。 |
返回值
反序列化后的 VQCircuit 对象。
示例
python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_vqcircuit
vqc = convert_vqc_with_run_config_bytes_to_vqcircuit(data)convert_vqc_with_run_config_bytes_to_config
从组合二进制字符串中提取 CommProtocolConfig。
签名
python
convert_vqc_with_run_config_bytes_to_config(
vqc_with_run_config_bytes: bytes,
) -> CommProtocolConfig参数
| 参数 | 类型 | 描述 |
|---|---|---|
| vqc_with_run_config_bytes | bytes | 由 convert_vqcircuit_with_run_config_to_bytes 生成的二进制数据。 |
返回值
反序列化后的 CommProtocolConfig 对象。
示例
python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_config
config = convert_vqc_with_run_config_bytes_to_config(data)
print(f"shots={config.shots}, optimization_level={config.optimization_level}")另见
- 协议 --
CommProtocolConfig类和comm_protocol_encode/comm_protocol_decode