def predict(self):
    '\n        this function runs the prediction over the sets\n        :return: \n        '
    if (self.model is None):
        self.load_model()
    if (self.model is None):
        return None
    i = 0
    X_train = np.load(os.path.join(self.images_dir, (('X_' + str(i)) + '.npy')))
    X1_train = np.load(os.path.join(self.clustering_dir, (('train_X_' + str(i)) + '.npy')))
    X2_train = np.load(os.path.join(self.classification_dir, (('train_X_' + str(i)) + '.npy')))
    predicted = self.model.predict([X_train, X1_train, X2_train], batch_size=20)
    return predicted
this function runs the prediction over the sets
:return:
def predict(self):
    '\n        this function runs the prediction over the sets\n        :return: \n        '
    if (self.model is None):
        self.load_model()
    if (self.model is None):
        return None
    i = 0
    X_train = np.load(os.path.join(self.images_dir, (('X_' + str(i)) + '.npy')))
    X1_train = np.load(os.path.join(self.clustering_dir, (('train_X_' + str(i)) + '.npy')))
    X2_train = np.load(os.path.join(self.classification_dir, (('train_X_' + str(i)) + '.npy')))
    predicted = self.model.predict([X_train, X1_train, X2_train], batch_size=20)
    return predicted