def build(self, hp, inputs=None): input_node = nest.flatten(inputs)[0] output_node = input_node if self.normalize is None and hp.Boolean(NORMALIZE): with hp.conditional_scope(NORMALIZE, [True]): output_node = preprocessing.Normalization().build(hp, output_node) elif self.normalize: output_node = preprocessing.Normalization().build(hp, output_node) if self.augment is None and hp.Boolean(AUGMENT): with hp.conditional_scope(AUGMENT, [True]): output_node = preprocessing.ImageAugmentation().build( hp, output_node ) elif self.augment: output_node = preprocessing.ImageAugmentation().build(hp, output_node) if self.block_type is None: block_type = hp.Choice(BLOCK_TYPE, [RESNET, XCEPTION, VANILLA]) with hp.conditional_scope(BLOCK_TYPE, [block_type]): output_node = self._build_block(hp, output_node, block_type) else: output_node = self._build_block(hp, output_node, self.block_type) return output_node
def build(self, hp, inputs=None): input_node = nest.flatten(inputs)[0] output_node = input_node block_type = self.block_type or hp.Choice( 'block_type', ['resnet', 'xception', 'vanilla'], default='vanilla') normalize = self.normalize if normalize is None: normalize = hp.Boolean('normalize', default=False) augment = self.augment if augment is None: augment = hp.Boolean('augment', default=False) if normalize: output_node = preprocessing.Normalization().build(hp, output_node) if augment: output_node = preprocessing.ImageAugmentation().build( hp, output_node) if block_type == 'resnet': output_node = basic.ResNetBlock().build(hp, output_node) elif block_type == 'xception': output_node = basic.XceptionBlock().build(hp, output_node) elif block_type == 'vanilla': output_node = basic.ConvBlock().build(hp, output_node) return output_node
def test_image_augmentation(): utils.block_basic_exam( preprocessing.ImageAugmentation(), tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32), ['vertical_flip', 'horizontal_flip'], )