(self, config, budget, working_directory, *args, **kwargs)
return ({
			'loss': 1-val_score[1], # remember: HpBandSter always minimizes!
			'info': {	'test accuracy': test_score[1],
						'train accuracy': train_score[1],
						'validation accuracy': val_score[1],
						'number of parameters': model.count_params(),
					}
						
		})
Simple example for a compute function using a feed forward network.
		It is trained on the MNIST dataset.
		The input parameter "config" (dictionary) contains the sampled configurations passed by the bohb optimizer
Simple example for a compute function using a feed forward network.
		It is trained on the MNIST dataset.
		The input parameter "config" (dictionary) contains the sampled configurations passed by the bohb optimizer
Simple example for a compute function using a feed forward network . It is trained on the MNIST dataset . The input parameter config ( dictionary ) contains the sampled configurations passed by the bohb optimizer
def compute(self, config, budget, working_directory, *args, **kwargs):
		"""
		Simple example for a compute function using a feed forward network.
		It is trained on the MNIST dataset.
		The input parameter "config" (dictionary) contains the sampled configurations passed by the bohb optimizer
		"""

		model = Sequential()
		
		model.add(Conv2D(config['num_filters_1'], kernel_size=(3,3),
						 activation='relu',
						 input_shape=self.input_shape))
		model.add(MaxPooling2D(pool_size=(2, 2)))

		if config['num_conv_layers'] > 1:
			model.add(Conv2D(config['num_filters_2'], kernel_size=(3, 3),
							 activation='relu',
							 input_shape=self.input_shape))
			model.add(MaxPooling2D(pool_size=(2, 2)))	
		
		if config['num_conv_layers'] > 2:
			model.add(Conv2D(config['num_filters_3'], kernel_size=(3, 3),
						 activation='relu',
						 input_shape=self.input_shape))
			model.add(MaxPooling2D(pool_size=(2, 2)))
			
		model.add(Dropout(config['dropout_rate']))
		model.add(Flatten())
		model.add(Dense(config['num_fc_units'], activation='relu'))
		model.add(Dropout(config['dropout_rate']))
		model.add(Dense(self.num_classes, activation='softmax'))


		if config['optimizer'] == 'Adam':
			optimizer = keras.optimizers.Adam(lr=config['lr'])
		else:
			optimizer = keras.optimizers.SGD(lr=config['lr'], momentum=config['sgd_momentum'])

		model.compile(loss=keras.losses.categorical_crossentropy,
					  optimizer=optimizer,
					  metrics=['accuracy'])

		model.fit(self.x_train, self.y_train,
				  batch_size=self.batch_size,
				  epochs=int(budget),
				  verbose=0,
				  validation_data=(self.x_test, self.y_test))
		
		train_score = model.evaluate(self.x_train, self.y_train, verbose=0)
		val_score = model.evaluate(self.x_validation, self.y_validation, verbose=0)
		test_score = model.evaluate(self.x_test, self.y_test, verbose=0)

		#import IPython; IPython.embed()
		return ({
			'loss': 1-val_score[1], # remember: HpBandSter always minimizes!
			'info': {	'test accuracy': test_score[1],
						'train accuracy': train_score[1],
						'validation accuracy': val_score[1],
						'number of parameters': model.count_params(),
					}
						
		})
def compute ( self , config , budget , working_directory , * args , * * kwargs ) : model = Sequential ( ) model . add ( Conv2D ( config [ 'num_filters_1' ] , kernel_size = ( 3 , 3 ) , activation = 'relu' , input_shape = self . input_shape ) ) model . add ( MaxPooling2D ( pool_size = ( 2 , 2 ) ) ) if config [ 'num_conv_layers' ] > 1 : model . add ( Conv2D ( config [ 'num_filters_2' ] , kernel_size = ( 3 , 3 ) , activation = 'relu' , input_shape = self . input_shape ) ) model . add ( MaxPooling2D ( pool_size = ( 2 , 2 ) ) ) if config [ 'num_conv_layers' ] > 2 : model . add ( Conv2D ( config [ 'num_filters_3' ] , kernel_size = ( 3 , 3 ) , activation = 'relu' , input_shape = self . input_shape ) ) model . add ( MaxPooling2D ( pool_size = ( 2 , 2 ) ) ) model . add ( Dropout ( config [ 'dropout_rate' ] ) ) model . add ( Flatten ( ) ) model . add ( Dense ( config [ 'num_fc_units' ] , activation = 'relu' ) ) model . add ( Dropout ( config [ 'dropout_rate' ] ) ) model . add ( Dense ( self . num_classes , activation = 'softmax' ) ) if config [ 'optimizer' ] == 'Adam' : optimizer = keras . optimizers . Adam ( lr = config [ 'lr' ] ) else : optimizer = keras . optimizers . SGD ( lr = config [ 'lr' ] , momentum = config [ 'sgd_momentum' ] ) model . compile ( loss = keras . losses . categorical_crossentropy , optimizer = optimizer , metrics = [ 'accuracy' ] ) model . fit ( self . x_train , self . y_train , batch_size = self . batch_size , epochs = int ( budget ) , verbose = 0 , validation_data = ( self . x_test , self . y_test ) ) train_score = model . evaluate ( self . x_train , self . y_train , verbose = 0 ) val_score = model . evaluate ( self . x_validation , self . y_validation , verbose = 0 ) test_score = model . evaluate ( self . x_test , self . y_test , verbose = 0 ) #import IPython; IPython.embed() return ( { 'loss' : 1 - val_score [ 1 ] , # remember: HpBandSter always minimizes! 'info' : { 'test accuracy' : test_score [ 1 ] , 'train accuracy' : train_score [ 1 ] , 'validation accuracy' : val_score [ 1 ] , 'number of parameters' : model . count_params ( ) , } } )