From: Medical image diagnosis based on adaptive Hybrid Quantum CNN
def MyModel(): |
# input shape |
input_shape = (IMG_SIZE, IMG_SIZE, 4) |
# CNN layers |
cnn_layers = [ |
layers.Conv2D(filters = 256, kernel_size = 3, strides = 1, padding = "same", activation = "tanh"), |
layers.MaxPooling2D(pool_size = (2, 2), strides = (2, 2)), |
layers.Conv2D(filters = 128, kernel_size = 3, strides = 1, padding = "same", activation = "tanh"), |
layers.MaxPooling2D(pool_size = (2, 2), strides = (2, 2)), |
layers.Conv2D(filters = 128, kernel_size = 3, strides = 1, padding = "same", activation = "tanh"), |
layers.MaxPooling2D(pool_size = (2, 2), strides = (2, 2)), |
] |
# classical layers |
dense_layers = [ |
layers.Flatten(), |
layers.Dense(128, activation = "relu"), |
layers.Dense(64, activation = "relu"), |
layers.Dense(4, activation = "softmax") |
] |
# Combine CNN and dense layers |
model = models.Sequential([ |
layers.Input(shape = input_shape), |
*cnn_layers, |
*dense_layers |
]) |
# Compile the model |
opt = keras.optimizers.SGD(lr = 0.01) |
model.compile( |
optimizer = opt, |
loss = "sparse_categorical_crossentropy", |
metrics = ["accuracy"], |
) |
return model |