如何训练输出状态向量的 TensorFlow Quantum 模型?
How can I train a TensorFlow Quantum model that outputs a state vector?
我想使用顺序模型在 TFQ 中训练一个简单的电路,如下所示:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Input(shape=(), dtype=tf.dtypes.string))
model.add(
tfq.layers.PQC(
model_circuit=circuit,
operators=readout_op))
但是我希望模型输出状态向量而不是执行读出操作,这样我可以在将其输入损失函数之前对其进行一些 post 处理。
原则上,tfq.layers.State 看起来很适合这项任务,但从示例中我不清楚我将如何在模型上下文中使用状态层,而不是仅将其用于 生成 文档中所示的状态向量:
state_layer = tfq.layers.State()
alphas = tf.reshape(tf.range(0, 1.1, delta=0.5), (3, 1)) # FIXME: #805
state_layer(parametrized_bell_circuit,
symbol_names=[alpha], symbol_values=alphas)
所以我的问题是:
- 我可以强制PQC层输出状态向量而不是执行读出操作吗?
- 我可以将状态层用作顺序模型中的参数化层(或以任何其他方式训练它吗?)
- 或者我的模型是否有任何替代方法输出状态向量?
can I force the PQC layer to output the state vector instead of performing a readout operation?
PQC 层将为您创建和管理 tf.Variable
。从那里它将通过 tfq.layers.Expectation
层发送您的电路。不幸的是,无法从该层生成完整的状态向量。
can I use the State layer as a parameterized layer in a Sequential model (or train it in any other way?)
是的,您可以使用 tfq.layers.State
层 (https://www.tensorflow.org/quantum/api_docs/python/tfq/layers/State) 将输入电路的状态向量合并到您的模型中。请注意,生成的状态向量将不可微。在创建 TFQ 时,我们希望鼓励用户进行任何复杂的建模,以尝试使用在真实芯片和模拟之间具有 1:1 转换的功能(即非常容易将 tfq.layers.Expectation
逻辑部署到一个真正的筹码,因为我们没有违反任何规则,但是 tfq.layers.State
我们在作弊并提取完整的状态向量)。
我想使用顺序模型在 TFQ 中训练一个简单的电路,如下所示:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Input(shape=(), dtype=tf.dtypes.string))
model.add(
tfq.layers.PQC(
model_circuit=circuit,
operators=readout_op))
但是我希望模型输出状态向量而不是执行读出操作,这样我可以在将其输入损失函数之前对其进行一些 post 处理。
原则上,tfq.layers.State 看起来很适合这项任务,但从示例中我不清楚我将如何在模型上下文中使用状态层,而不是仅将其用于 生成 文档中所示的状态向量:
state_layer = tfq.layers.State()
alphas = tf.reshape(tf.range(0, 1.1, delta=0.5), (3, 1)) # FIXME: #805
state_layer(parametrized_bell_circuit,
symbol_names=[alpha], symbol_values=alphas)
所以我的问题是:
- 我可以强制PQC层输出状态向量而不是执行读出操作吗?
- 我可以将状态层用作顺序模型中的参数化层(或以任何其他方式训练它吗?)
- 或者我的模型是否有任何替代方法输出状态向量?
can I force the PQC layer to output the state vector instead of performing a readout operation?
PQC 层将为您创建和管理 tf.Variable
。从那里它将通过 tfq.layers.Expectation
层发送您的电路。不幸的是,无法从该层生成完整的状态向量。
can I use the State layer as a parameterized layer in a Sequential model (or train it in any other way?)
是的,您可以使用 tfq.layers.State
层 (https://www.tensorflow.org/quantum/api_docs/python/tfq/layers/State) 将输入电路的状态向量合并到您的模型中。请注意,生成的状态向量将不可微。在创建 TFQ 时,我们希望鼓励用户进行任何复杂的建模,以尝试使用在真实芯片和模拟之间具有 1:1 转换的功能(即非常容易将 tfq.layers.Expectation
逻辑部署到一个真正的筹码,因为我们没有违反任何规则,但是 tfq.layers.State
我们在作弊并提取完整的状态向量)。