Conditional qc-UNet
Quantum circuit U-Net architecture predicting the noise for noisy quantum circuits.
Blocks
UNet_block
def UNet_block(
ch_in, ch_out, t_emb_size, cond_emb_size, num_heads:int=8, num_res_blocks:int=1, transformer_depth:int=1
):
The basic block of the U-Net. Is conditioned via cross-attention in SpatialTransformer and addition of the time ebedding in ResBlock2D_Conditional.
Encoder
def Encoder(
model_features, t_emb_size, cond_emb_size, num_heads, num_res_blocks, transformer_depths
):
Encoder definition of the U-Net.
Decoder
def Decoder(
model_features, t_emb_size, cond_emb_size, num_heads, num_res_blocks, transformer_depths
):
Decoder definition of the U-Net.
Model definition
QC_Cond_UNet_config
def QC_Cond_UNet_config(
model_features:list, clr_dim:int, num_clrs:int, t_emb_size:int, cond_emb_size:int, num_heads:list,
num_res_blocks:list, transformer_depths:list
)->None:
QC_Cond_UNet
def QC_Cond_UNet(
model_features:list=[32, 32, 64], clr_dim:int=8, num_clrs:int=8, t_emb_size:int=128, cond_emb_size:int=512,
num_heads:list=[8, 8, 2], num_res_blocks:list=[2, 2, 4], transformer_depths:list=[1, 2, 1]
):
Conditional U-Net model for quantum circuits. Implemets embedd_clrs and invert_clr functions to embed and decode color-tensors.
Unitary compilation extension
QC_Compilation_UNet_config
def QC_Compilation_UNet_config(
model_features:list, clr_dim:int, num_clrs:int, t_emb_size:int, cond_emb_size:int, num_heads:list,
num_res_blocks:list, transformer_depths:list, unitary_encoder_config:Unitary_encoder_config
)->None:
QC_Compilation_UNet
def QC_Compilation_UNet(
model_features:list=[32, 32, 64], clr_dim:int=8, num_clrs:int=8, t_emb_size:int=128, cond_emb_size:int=512,
num_heads:list=[8, 8, 2], num_res_blocks:list=[2, 2, 4], transformer_depths:list=[1, 2, 1],
unitary_encoder_config:NoneType=None
):
Extension of the QC_Cond_UNet to accept unitary conditions.