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)
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)))
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)
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))
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))
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)