예제 #1
0
 def test_sequential_generation(self):
     input_shape = [3, 100, 100]
     layer_list = model_generation.generate_random_model(
         10, (100, 100), AVAILABLE_MODULES, MAX_N_KERNELS,
         MAX_CONV_KERNEL_SIZE, MAX_CONV_STRIDE, MAX_CONV_DILATION,
         MAX_CONV_OUT_CHANNELS, MAX_POOLING_KERNEL_SIZE, MAX_POOLING_STRIDE)
     sequential = generate_sequential(layer_list,
                                      input_shape=input_shape,
                                      output_size=10)
     self.assertEqual(len(sequential), len(layer_list) + 2)
예제 #2
0
 def create_individual(self, data):
     individual = generate_random_model(
         self.model_n_layers, self.X_train.shape[1:],
         self.available_modules, self.max_n_kernels,
         self.max_conv_kernel_size, self.max_conv_stride,
         self.max_conv_dilation, self.max_conv_out_channels,
         self.max_pooling_kernel_size, self.max_pooling_stride)
     return generate_sequential(individual,
                                input_shape=self.X_train.shape[1:],
                                output_size=len(np.unique(self.y_train)))
예제 #3
0
 def test_gen_population(self):
     population = []
     for i in range(100):
         population.append(
             model_generation.generate_random_model(
                 10, (100, 100), AVAILABLE_MODULES, MAX_N_KERNELS,
                 MAX_CONV_KERNEL_SIZE, MAX_CONV_STRIDE, MAX_CONV_DILATION,
                 MAX_CONV_OUT_CHANNELS, MAX_POOLING_KERNEL_SIZE,
                 MAX_POOLING_STRIDE))
         self.assertEqual(len(population[-1]), 10)
     self.assertEqual(len(population), 100)
예제 #4
0
 def test_sequential_to_layer_list(self):
     input_shape = [3, 100, 100]
     layer_list = model_generation.generate_random_model(
         30, (100, 100), AVAILABLE_MODULES, MAX_N_KERNELS,
         MAX_CONV_KERNEL_SIZE, MAX_CONV_STRIDE, MAX_CONV_DILATION,
         MAX_CONV_OUT_CHANNELS, MAX_POOLING_KERNEL_SIZE, MAX_POOLING_STRIDE)
     sequential = generate_sequential(layer_list,
                                      input_shape=input_shape,
                                      output_size=10)
     new_layer_list = sequential_to_layer_list(sequential)
     for new_layer, layer in zip(new_layer_list, layer_list):
         self.assertEqual(type(new_layer), type(layer))
예제 #5
0
 def test_score_model(self):
     input_shape = [1, 20]
     layer_list = model_generation.generate_random_model(
         10, input_shape, AVAILABLE_MODULES, MAX_N_KERNELS,
         MAX_CONV_KERNEL_SIZE, MAX_CONV_STRIDE, MAX_CONV_DILATION,
         MAX_CONV_OUT_CHANNELS, MAX_POOLING_KERNEL_SIZE, MAX_POOLING_STRIDE)
     X, y = make_classification(100)
     X = X[:, None, :, None]
     sequential = generate_sequential(layer_list,
                                      input_shape=input_shape,
                                      output_size=10)
     print(
         get_model_score(sequential, X[:50], y[:50], X[50:], y[50:], 32, 1))
예제 #6
0
 def test_simple_model_gen(self):
     model = model_generation.generate_random_model(
         10, (100, 100), AVAILABLE_MODULES, MAX_N_KERNELS,
         MAX_CONV_KERNEL_SIZE, MAX_CONV_STRIDE, MAX_CONV_DILATION,
         MAX_CONV_OUT_CHANNELS, MAX_POOLING_KERNEL_SIZE, MAX_POOLING_STRIDE)
     self.assertEqual(len(model), 10)