def _preprocess_image(self, input_image): input_image = cv2.resize(input_image, (self._input_shape[0], self._input_shape[1])) input_image = np.expand_dims(input_image, axis=0) preprocessor_prediction = DataPreprocessor(input_image) preprocessor_prediction.restore_preprocessing_parameters( file_name=self._parameter_file) input_image = preprocessor_prediction.get_reprocessed_data() return input_image
def main(): DATASET_PATH = "./CIFAR10_Serving/dataset/" DATASET_URL = "https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz" MODEL_PATH = "./CIFAR10_Serving/model_weights/model.ckpt" PARAMETER_FILE_PATH = "./CIFAR10_Serving/parameters/parameters.npy" cifar10 = CIFAR10Downloader(URL=DATASET_URL, path=DATASET_PATH) cifar10.extract_downloaded_dataset() dataset = CIFAR10Dataset(path=DATASET_PATH) train_data, train_labels, test_data, test_labels = dataset.create_dataset_format( ) preprocessor = DataPreprocessor(data=train_data, labels=train_labels) preprocessor.store_preprocessing_parameters(file_name=PARAMETER_FILE_PATH) train_data = preprocessor.get_reprocessed_data() train_labels = preprocessor.one_hot_encode_labels() preprocessor_test = DataPreprocessor(data=test_data, labels=test_labels) preprocessor_test.restore_preprocessing_parameters( file_name=PARAMETER_FILE_PATH) test_data = preprocessor_test.get_reprocessed_data() test_labels = preprocessor_test.one_hot_encode_labels() train_data, validation_data, train_labels, validation_labels = train_test_split( train_data, train_labels, test_size=0.2) print("train_data shape: ", train_data.shape) print("train_labels shape: ", train_labels.shape) print("validation_data shape: ", validation_data.shape) print("validation_labels shape: ", validation_labels.shape) print("test_data shape: ", test_data.shape) print("test_labels shape: ", test_labels.shape) model_trainer = CIFAR10ModelTrainer( train_data=train_data, train_labels=train_labels, validation_data=validation_data, validation_labels=validation_labels, test_data=test_data, test_labels=test_labels, ) model_trainer.train_model(epochs=10, batch_size=32) model_trainer.save_model(model_path=MODEL_PATH)