购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 安装API密钥并访问提供服务的量子计算机

在安装好Qiskit之后,读者即可开始创建自己的量子程序,并在本地模拟器中运行这些程序。如果读者有时想在IBM Quantum的实体硬件上运行自己的量子程序,必须在本地环境中安装自己的API密钥,每个API密钥都是独一无二的。

IBM Quantum Experience的API密钥

如果读者在IBM Quantum Experience的Notebook环境中运行自己的Qiskit程序,系统会自动注册一个API密钥。

1.5.1 准备工作

在安装API密钥之前,读者必须先创建一个IBM Quantum Experience的账号。如果读者还没有创建账号,可以回到1.2节,按照操作步骤进行创建。

1.5.2 操作步骤

下面,本书将介绍如何在本地环境中安装API密钥。

(1)通过IBM Quantum官方网站的登录页面登录到IBM Quantum Experience。

(2)在IBM Quantum Experience主页面的右上角,找到用户图标,点击该图标,选择“ My account ”。

(3)在账号页面中找到“ Qiskit in local environment ”选项,点击“ Copy token ”。

(4)读者可以将复制的令牌粘贴到一个临时的位置,或者将其保留在剪切板中。

(5)在本地设备上访问自己的Qiskit环境。之前的步骤中已经包含这一步,但是如果读者使用的是Anaconda,需要再次进行本操作。

(6)激活虚拟环境。

$ conda activate environment_name

(7)打开Python。

$(environment_name) … $ python3

检查屏幕上显示的Python版本信息,确保正在运行的Python版本是正确的:

Python 3.7.6 (default, Jan 8 2020, 13:42:34)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

(8)获取所需的 IBMQ 类型。

>>> from qiskit import IBMQ

(9)在本地环境中安装API令牌。

>>> IBMQ.save_account('MY_API_TOKEN')

在这一步中,读者需要将刚才从IBM Quantum Experience里复制的API令牌粘贴到该命令中 MY_API_TOKEN 的位置。要保留单引号,因为该命令需要使用单引号。

(10)登录自己的账号。

API令牌就位后,读者需要验证API密钥是否都设置好了,自己的账号权限是否正常:

>>> IBMQ.load_account()

执行上述命令后,系统会显示如下输出结果:

<AccountProvider for IBMQ(hub='ibm-q', group='open', project='main')>

这就是为账号提供服务的量子计算机的信息,其中包含 hub (集线器)、 group (群组)和 project (项目)信息。

1.5.3 运行原理

在上述示例中,读者导入的主要的类是 IBMQ ,它是一种用于使用IBM在云上提供的量子硬件和软件的工具箱。

本章使用 save_account() 在本地存储账号。随着学习的深入,在将要访问IBM Quantum机器的操作配方中,本书将在量子程序中使用 IBMQ.load_account() IBMQ.get_provider() 类,以确保读者能够获取正确的访问权限。

更新API密钥

如果出于某些原因,读者需要在IBM Quantum Experience中创建一个新的API令牌,并更新本地保存的API令牌,可以使用如下命令:

>>> IBMQ.save_account('NEW_API_TOKEN', overwrite=True)

1.5.4 知识拓展

在本书后续操作配方的代码中,会使用如下命令设置一个 provider 变量,以保存为读者账号提供服务的量子计算机的信息:

>>> provider = IBMQ.get_provider()

之后,读者就可以使用 provider 信息选择IBM Quantum计算机或后端来运行自己的量子程序。在后续示例中,本书将选择一个名为“ IBM Q 5 Yorktown ”(内部名称为 ibmqx2 )的量子计算机作为后端: dN37KRHFtsb9UqYHNwlLQn35XpnASoXaKn4BTOeUvAWjMmhOa6x0yt+ibRt7zaSt

>>> backend = provider.get_backend('ibmqx2')
点击中间区域
呼出菜单
上一章
目录
下一章
×