raw_dimensions = (48, 48) target_dimensions = (64, 64) channels = 1 verbose = True print('--------------- Convolutional LSTM Model -------------------') print('Loading data...') directory_path = "image_data/sample_image_series_directory" data_loader = DirectoryDataLoader(datapath=directory_path, validation_split=validation_split, time_delay=2) dataset = data_loader.load_data() if verbose: dataset.print_data_details() print('Preparing training/testing data...') train_images, train_labels = dataset.get_training_data() train_gen = DataGenerator(time_delay=dataset.get_time_delay()).fit(train_images, train_labels) test_images, test_labels = dataset.get_test_data() test_gen = DataGenerator(time_delay=dataset.get_time_delay()).fit(test_images, test_labels) print('Training net...') model = ConvolutionalLstmNN(target_dimensions, channels, dataset.get_emotion_index_map(), time_delay=dataset.get_time_delay()) model.fit_generator(train_gen.generate(target_dimensions, batch_size=5), test_gen.generate(target_dimensions, batch_size=5), epochs=5) ## if you want to save a graph of your model layers. model.save_model_graph() # Save model configuration # model.export_model('output/conv_lstm_model.json','output/conv_lstm_weights.h5',"output/conv_lstm_emotion_map.json", emotion_map)
image_dimensions=raw_dimensions, csv_label_col=0, csv_image_col=1, out_channels=3) images, labels, emotion_map = data_loader.get_data() if verbose: print('raw image shape: ' + str(images.shape)) print('Creating training/testing data...') validation_split = 0.15 X_train, X_test, y_train, y_test = train_test_split(images, labels, test_size=validation_split, random_state=42, stratify=labels) train_gen = DataGenerator().fit(X_train, y_train) test_gen = DataGenerator().fit(X_test, y_test) print('--------------- Inception-V3 Model -------------------') print('Initializing neural network with InceptionV3 base model...') model = TransferLearningNN(model_name=model_name, emotion_map=emotion_map) print('Training model...') print('numLayers: ' + str(len(model.model.layers))) model.fit_generator(train_gen.generate(target_dimensions, 10), test_gen.generate(target_dimensions, 10), epochs=10) # Save model configuration # model.export_model('output/transfer_learning_model.json','output/transfer_learning_weights.h5',"output/transfer_learning_emotion_map.json", emotion_map)