Skip to main content

Table 6 Python code for HQCNN model

From: Medical image diagnosis based on adaptive Hybrid Quantum CNN

def MyModel(num_circuit_layers):

# input shape

input_shape = (IMG_SIZE, IMG_SIZE, 4)

# circuit parameters

num_qubits = 4

filters = [4] * num_circuit_layers # Same number of filters for each circuit layer

kernel_sizes = [3] * num_circuit_layers # Same kernel size for each circuit layer

strides = [1] * num_circuit_layers # Same stride for each circuit layer

# quantum circuit layers

circuit_layers = []

for f, k, s in zip(filters, kernel_sizes, strides):

circuit_layers.append(Convolution2D(filters = f, kernel_size = k, strides = s, padding = "same", activation = "tanh"))

circuit_layers.append(MaxPooling2D(pool_size = (2, 2), strides = (2, 2)))

# classical layers

dense_layers = [

keras.layers.Flatten(),

keras.layers.Dense(128, activation = "relu"),

keras.layers.Dense(64, activation = "relu"),

keras.layers.Dense(4, activation = "softmax")

]

# Combine circuit and dense layers

model = keras.models.Sequential([

keras.layers.Input(shape = input_shape),

*circuit_layers,

*dense_layers

])

opt = keras.optimizers.SGD(lr = 0.01)

model.compile(

optimizer = opt,

loss = "sparse_categorical_crossentropy",

metrics = ["accuracy"],

)

return model