Now that we have created our Siamese neural network, we can start to train our model. Training a Siamese neural network is slightly different than training a regular CNN. Recall that when training a CNN, the training samples are arrays of images, along with the corresponding class label for each image. In contrast, to train a Siamese neural network we need to use pairs of arrays of images, along with the corresponding class label for the pairs of images (that is, 1 if the pairs of images are from the same subject, and 0 if the pairs of images are from different subjects).
The following diagram illustrates the differences between training a CNN and a Siamese neural network:
So far, we have loaded the raw image into an X_train NumPy array, along with an array with the Y_train class labels. We need to write a function that creates these pairs of arrays of...