Exemple #1
0
 def test_should_produce_augmented_samples_given_batch_size(self):
     images = np.random.rand(20, 64, 64, 1)
     labels = np.random.rand(20)
     generator = DataGenerator().fit(images, labels)
     batch_size = 10
     batch, _ = generator.get_next_batch(batch_size)
     self.assertEqual(batch.shape[0], batch_size)
     self.assertEqual(images.shape[1:], batch.shape[1:])
Exemple #2
0
    def test_should_raise_error_if_model_not_fit_to_data_yet(self):
        with self.assertRaises(ValueError) as a:
            DataGenerator(time_delay=5).get_next_batch()
        with self.assertRaises(ValueError) as b:
            DataGenerator(time_delay=5).generate()

        self.assertEqual("Model is not fit to any data set yet", str(a.exception))
        self.assertEqual("Model is not fit to any data set yet", str(b.exception))
 def test_should_raise_error_if_time_delay_is_not_matching_input_time_axis(
         self):
     images = np.random.rand(10, 4, 64, 64, 3)
     labels = np.random.rand(10)
     with self.assertRaises(ValueError) as e:
         DataGenerator(time_delay=5).fit(images, labels)
     self.assertEqual(
         "Images have time axis length 4 but time_delay parameter was set to 5",
         str(e.exception))
 def test_should_raise_error_when_time_delay_was_not_set_and_input_is_time_series(
         self):
     images = np.random.rand(10, 2, 64, 64, 3)
     labels = np.random.rand(10)
     with self.assertRaises(ValueError) as e:
         DataGenerator().fit(images, labels)
     self.assertEqual(
         "Images have time axis length 2 but time_delay parameter was set to None",
         str(e.exception))
 def test_should_raise_error_when_time_delay_parameter_is_set_and_input_is_simple_images(
         self):
     images = np.random.rand(10, 64, 64, 3)
     labels = np.random.rand(10)
     with self.assertRaises(ValueError) as e:
         DataGenerator(time_delay=4).fit(images, labels)
     self.assertEqual(
         "Time_delay parameter was set but Images say otherwise",
         str(e.exception))
target_dimensions = (128, 128)
target_dimensions2 = (490, 640)

#directory_path = r'C:\Users\localadmin\Desktop\final_proj\cohn-kanade-images2'
directory_path = r'D:\Degree\Final project\cohn-kanade-formated2'

data_loader = DirectoryDataLoader(datapath=directory_path,
                                  validation_split=validation_split,
                                  target_dimension=target_dimensions2,
                                  out_channels=3)
dataset = data_loader.load_data()

if verbose:
    dataset.print_data_details()

print('Creating training/testing data...')
train_images, train_labels = dataset.get_training_data()
train_gen = DataGenerator().fit(train_images, train_labels)
test_images, test_labels = dataset.get_test_data()
test_gen = DataGenerator().fit(test_images, test_labels)

print('Initializing neural network with InceptionV3 base model...')
model = TransferLearningNN(model_name=model_name,
                           emotion_map=dataset.get_emotion_index_map())

print('Training model...')
model.fit_generator(train_gen.generate(target_dimensions, 10),
                    test_gen.generate(target_dimensions, 10),
                    epochs=10)
Exemple #7
0
print('--------------- Convolutional Model -------------------')
print('Loading data...')
# directory_path = resource_filename('EmoPy.examples','image_data/sample_image_directory')
directory_path = r'D:\Degree\Final project\cohn-kanade-formated2'

data_loader = DirectoryDataLoader(datapath=directory_path,
                                  validation_split=validation_split,
                                  target_dimension=target_dimensions2)
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().fit(train_images, train_labels)
test_images, test_labels = dataset.get_test_data()
test_gen = DataGenerator().fit(test_images, test_labels)

print('Training net...')
model = ConvolutionalNN(target_dimensions,
                        channels,
                        dataset.get_emotion_index_map(),
                        verbose=True)
model.fit_generator(train_gen.generate(target_dimensions, batch_size=5),
                    test_gen.generate(target_dimensions, batch_size=5),
                    epochs=5)

# Save model configuration
# model.export_model('output/conv2d_model.json','output/conv2d_weights.h5',"output/conv2d_emotion_map.json", emotion_map)
Exemple #8
0
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()
Exemple #9
0
 def test_should_raise_error_when_channel_axis_is_not_present(self):
     images = np.random.rand(20, 64, 64)
     labels = np.random.rand(20)
     with self.assertRaises(ValueError) as e:
         DataGenerator().fit(images, labels)
     self.assertEqual("Channel Axis should have value", str(e.exception))
Exemple #10
0
 def test_should_raise_error_when_labels_and_samples_are_mis_matched(self):
     images = np.random.rand(20, 64, 64)
     with self.assertRaises(ValueError) as e:
         DataGenerator().fit(images, [1])
     self.assertEqual("Samples are not labeled properly", str(e.exception))
Exemple #11
0
 def test_should_resize_images_to_given_target_dimension(self):
     images = np.random.rand(20, 64, 64, 3)
     labels = np.random.rand(20)
     generator = DataGenerator().fit(images, labels)
     batch, _ = generator.get_next_batch(10, target_dimensions=(28, 28))
     self.assertEqual(batch.shape, (10, 28, 28, 3))