def build(self, hp, inputs=None): if self.identity: return IdentityLayer(name=self.name)(inputs) if self.num_classes: expected = self.num_classes if self.num_classes > 2 else 1 if self.output_shape[-1] != expected: raise ValueError('The data doesn\'t match the expected shape. ' 'Expecting {} but got {}'.format( expected, self.output_shape[-1])) inputs = nest.flatten(inputs) utils.validate_num_inputs(inputs, 1) input_node = inputs[0] output_node = input_node dropout_rate = self.dropout_rate or hp.Choice( 'dropout_rate', [0.0, 0.25, 0.5], default=0) if dropout_rate > 0: output_node = tf.keras.layers.Dropout(dropout_rate)(output_node) output_node = block_module.Flatten().build(hp, output_node) output_node = tf.keras.layers.Dense(self.output_shape[-1])(output_node) if self.loss == 'binary_crossentropy': output_node = Sigmoid(name=self.name)(output_node) else: output_node = tf.keras.layers.Softmax(name=self.name)(output_node) return output_node
def build(self, hp, inputs=None): if self.output_dim and self.output_shape[-1] != self.output_dim: raise ValueError('The data doesn\'t match the output_dim. ' 'Expecting {} but got {}'.format( self.output_dim, self.output_shape[-1])) inputs = nest.flatten(inputs) utils.validate_num_inputs(inputs, 1) input_node = inputs[0] output_node = input_node dropout_rate = self.dropout_rate or hp.Choice( 'dropout_rate', [0.0, 0.25, 0.5], default=0) if dropout_rate > 0: output_node = tf.keras.layers.Dropout(dropout_rate)(output_node) output_node = block.Flatten().build(hp, output_node) output_node = tf.keras.layers.Dense(self.output_shape[-1])(output_node) return output_node
def build(self, hp, inputs=None): if self.num_classes and self.output_shape[-1] != self.num_classes: raise ValueError('The data doesn\'t match the num_classes. ' 'Expecting {} but got {}'.format( self.num_classes, self.output_shape[-1])) inputs = nest.flatten(inputs) utils.validate_num_inputs(inputs, 1) input_node = inputs[0] output_node = input_node dropout_rate = self.dropout_rate or hp.Choice( 'dropout_rate', [0.0, 0.25, 0.5], default=0) if dropout_rate > 0: output_node = tf.keras.layers.Dropout(dropout_rate)(output_node) output_node = block.Flatten().build(hp, output_node) output_node = tf.keras.layers.Dense(self.output_shape[-1])(output_node) if self.loss == 'binary_crossentropy': output_node = tf.keras.activations.sigmoid(output_node) else: output_node = tf.keras.layers.Softmax()(output_node) return output_node