class IdcQnn(): """ IdcQnn IdcQnn is a wrapper class that creates the Invasive Ductal Carcinoma Tensorflow QNN (Quantum Neural Network). """ def __init__(self): """ Initializes the class. """ self.Helpers = Helpers("Core") self.QModel = QModel() self.Helpers.logger.info("IdcQnn QNN initialization complete.") def do_data(self): """ Sorts the training data """ self.Data = Data() self.Data.get_paths_n_labels() self.Data.process_data() def do_train(self): """ Creates & trains the QNN. CREDIT: https://www.tensorflow.org/quantum/tutorials/mnist CREDIT: https://arxiv.org/pdf/1802.06002.pdf """ self.QMNIST = QMNIST() # "Quantumize" the training data X_train_bin, X_test_bin = self.QMNIST.encode_data_as_binary( self.Data.X_train, self.Data.X_test) X_train_circ, X_test_circ = self.QMNIST.do_circuit_conversion( X_train_bin, X_test_bin) x_train_tfcirc, x_test_tfcirc = self.QMNIST.convert_to_tensors( X_train_circ, X_test_circ) # Create the Quantum Neural Network model_circuit, model_readout = self.QModel.create_quantum_model() self.QModel.create_keras_model(model_circuit, model_readout) # Train the Quantum Neural Network self.QModel.train_model(x_train_tfcirc, x_test_tfcirc, self.Data.y_train, self.Data.y_test) self.QModel.do_evaluate(x_train_tfcirc, x_test_tfcirc, self.Data.y_test)
class QMNISTCOVID19(): """ QMNISTCOVID19 QMNISTCOVID19 is a wrapper class that creates the COVID-19 Tensorflow QNN (Quantum Neural Network). """ def __init__(self): """ Initializes the class. """ self.Helpers = Helpers("Core") self.Helpers.logger.info("QMNISTCOVID19 QNN initialization complete.") def do_data(self): """ Sorts the training data """ self.Data = Data() self.Data.get_paths_n_labels() self.Data.process_data() def do_train(self): """ Creates & trains the QNN. """ self.QMNIST = QMNIST() X_train_bin, X_test_bin = self.QMNIST.encode_as_binary( self.Data.X_train, self.Data.X_test) X_train_circ, X__test_circ = self.QMNIST.do_circuit_conversion( X_train_bin, X_test_bin) x_train_tfcirc, x_test_tfcirc = self.QMNIST.convert_to_tensors( X_train_circ, X__test_circ) def do_load_model(self): """ Loads the trained model """ print("TODO") def do_classify(self): """ Classifies the test data """ print("TODO")