decoders¶
Collection of Decoders (i.e., GANs’ Generators) models.
Classes
Decoder |
Primitive Model for all decoder (i.e., transpose convolution) based architecture. |
FCNNDecoder |
Fully Convolutional Decoder. |
-
class
ashpy.models.convolutional.decoders.
Decoder
(layer_spec_input_res, layer_spec_target_res, kernel_size, initial_filters, filters_cap, channels, use_dropout=True, dropout_prob=0.3, non_linearity=<class 'tensorflow.python.keras.layers.advanced_activations.LeakyReLU'>)[source]¶ Bases:
ashpy.models.convolutional.interfaces.Conv2DInterface
Primitive Model for all decoder (i.e., transpose convolution) based architecture.
Notes
Default to DCGAN Generator architecture.
Examples
Direct Usage:
dummy_generator = Decoder( layer_spec_input_res=(8, 8), layer_spec_target_res=(64, 64), kernel_size=(5, 5), initial_filters=1024, filters_cap=16, channels=3, )
Subclassing
class DummyGenerator(Decoder): def call(self, input, training=True): print("Dummy Generator!") return input dummy_generator = DummyGenerator( layer_spec_input_res=(8, 8), layer_spec_target_res=(32, 32), kernel_size=(5, 5), initial_filters=1024, filters_cap=16, channels=3, ) dummy_generator(tf.random.normal((1, 100)))
Dummy Generator!
-
__init__
(layer_spec_input_res, layer_spec_target_res, kernel_size, initial_filters, filters_cap, channels, use_dropout=True, dropout_prob=0.3, non_linearity=<class 'tensorflow.python.keras.layers.advanced_activations.LeakyReLU'>)[source]¶ Instantiate the
Decoder
.- Model Assembly:
1.
_add_initial_block()
: Ingest thetf.keras.Model
inputs and prepare them for_add_building_block()
.2.
_add_building_block()
: Core of the model, the layers specified here get added to thetf.keras.Model
multiple times consuming the hyperparameters generated in the_get_layer_spec()
.3.
_add_final_block()
: Final block of ourtf.keras.Model
, take the model after_add_building_block()
and prepare them for the for the final output.
Parameters: - layer_spec_input_res (
tuple
of (int
,int
)) – Shape of the_get_layer_spec()
input tensors. - layer_spec_target_res – (
tuple
of (int
,int
)): Shape of tensor desired as output of_get_layer_spec()
. - kernel_size (
tuple
of (int
,int
)) – Kernel used by the convolution layers. - initial_filters (int) – Numbers of filters at the end of the first block.
- filters_cap (int) – Cap filters to a set amount, in the case of Decoder is a floor value AKA the minimum amount of filters.
- channels (int) – Channels of the output images (1 for Grayscale, 3 for RGB).
Returns: Raises: ValueError
– If filters_cap > initial_filters.
-
_add_building_block
(filters)[source]¶ Construct the core of the
tf.keras.Model
.The layers specified here get added to the
tf.keras.Model
multiple times consuming the hyperparameters generated in the_get_layer_spec()
.Parameters: filters (int) – Number of filters to use for this iteration of the Building Block.
-
_add_final_block
(channels)[source]¶ Prepare results of
_add_building_block()
for the for the final output.Parameters: channels (int) – Channels of the output images (1 for Grayscale, 3 for RGB).
-
_add_initial_block
(initial_filters, input_res)[source]¶ Ingest the
tf.keras.Model
inputs and prepare them for_add_building_block()
.Parameters:
-
class
ashpy.models.convolutional.decoders.
FCNNDecoder
(layer_spec_input_res, layer_spec_target_res, kernel_size, initial_filters, filters_cap, channels, use_dropout=True, dropout_prob=0.3, non_linearity=<class 'tensorflow.python.keras.layers.advanced_activations.LeakyReLU'>)[source]¶ Bases:
ashpy.models.convolutional.decoders.Decoder
Fully Convolutional Decoder. Expected input is a feature map.
Examples
- Direct Usage:
dummy_generator = FCNNDecoder( layer_spec_input_res=(8, 8), layer_spec_target_res=(64, 64), kernel_size=(5, 5), initial_filters=1024, filters_cap=16, channels=3, ) print(dummy_generator(tf.zeros((1, 1, 1, 100))).shape)
(1, 64, 64, 3)