DenseNetArch
- class ketos.neural_networks.densenet.DenseNetArch(*args, **kwargs)[source]
Implements a DenseNet architecture, building on top of Dense and tansition blocks
- Args:
- block_sets: list of ints
A list specifying the block sets and how many blocks each set contains. Example: [6, 12, 24, 16] will create a DenseNet with 4 block sets containing 6, 12, 24 and 16 dense blocks, with a total of 58 blocks.
- growth_rate:int
The factor by which the number of filters (i.e.: channels) within each dense block grows.
- compression_factor: float
The factor by which transition blocks reduce the number of filters (i.e.: channels) between dense blocks (between 0 and 1).
- dropout_rate: float
The droput rate (between 0 and 1) used in each transition block. Use 0 for no dropout.
- n_classes:int
The number of classes. The output layer uses a Softmax activation and will contain this number of nodes, resulting in model outputs with this many values summing to 1.0.
- pre_trained_base: instance of DenseNetArch
A pre-trained densenet model from which the residual blocks will be taken. Use by the the clone_with_new_top method when creating a clone for transfer learning
Methods
call
(inputs[, training])Calls the model on new inputs.
clone_with_new_top
([n_classes, freeze_base])Clone this instance but replace the original classification top with a new (untrained) one
freeze_block
(block_ids)Freeze specific dense blocks
Freeze the initial convolutional layer
Freeze the classification block
Retrive the feature extraction base (initial convolutional layer + dense blocks)
unfreeze_block
(block_ids)Unfreeze specific dense blocks
Unfreeze the initial convolutional layer
Unfreeze the classification block
Attributes
activity_regularizer
Optional regularizer function for the output of this layer.
compute_dtype
The dtype of the layer's computations.
distribute_strategy
The tf.distribute.Strategy this model was created under.
dtype
The dtype of the layer weights.
dtype_policy
The dtype policy associated with this layer.
dynamic
Whether the layer is dynamic (eager-only); set in the constructor.
inbound_nodes
Deprecated, do NOT use! Only for compatibility with external Keras.
input
Retrieves the input tensor(s) of a layer.
input_mask
Retrieves the input mask tensor(s) of a layer.
input_shape
Retrieves the input shape(s) of a layer.
input_spec
InputSpec instance(s) describing the input format for this layer.
layers
losses
List of losses added using the add_loss() API.
metrics
Returns the model's metrics added using compile(), add_metric() APIs.
metrics_names
Returns the model's display labels for all outputs.
name
Name of the layer (string), set in the constructor.
name_scope
Returns a tf.name_scope instance for this class.
non_trainable_variables
Sequence of non-trainable variables owned by this module and its submodules.
non_trainable_weights
List of all non-trainable weights tracked by this layer.
outbound_nodes
Deprecated, do NOT use! Only for compatibility with external Keras.
output
Retrieves the output tensor(s) of a layer.
output_mask
Retrieves the output mask tensor(s) of a layer.
output_shape
Retrieves the output shape(s) of a layer.
run_eagerly
Settable attribute indicating whether the model should run eagerly.
state_updates
Deprecated, do NOT use!
stateful
submodules
Sequence of all sub-modules.
supports_masking
Whether this layer supports computing a mask using compute_mask.
trainable
trainable_variables
Sequence of trainable variables owned by this module and its submodules.
trainable_weights
List of all trainable weights tracked by this layer.
updates
variable_dtype
Alias of Layer.dtype, the dtype of the weights.
variables
Returns the list of all layer variables/weights.
weights
Returns the list of all layer variables/weights.
- call(inputs, training=False)[source]
Calls the model on new inputs.
In this case call just reapplies all ops in the graph to the new inputs (e.g. build a new computational graph from the provided inputs).
- Args:
- inputs: Tensor or list of tensors
A tensor or list of tensors
- training: Bool
Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
- Returns:
A tensor if there is a single output, or a list of tensors if there are more than one outputs.
- clone_with_new_top(n_classes=None, freeze_base=True)[source]
Clone this instance but replace the original classification top with a new (untrained) one
- Args:
- n_classes:int
The number of classes the new classification top should output. If None(default), the original number of classes will be used.
- freeze_base:bool
If True, the weights of the feature extraction base will be froze (untrainable) in the new model.
- Returns:
- cloned_model: instance of DenseNetArch
The new model with the old feature extraction base and new classification top.
- freeze_block(block_ids)[source]
Freeze specific dense blocks
- Args:
- blocks_ids: list of ints
The block numbers to be freezed (starting from zero)
- get_feature_extraction_base()[source]
Retrive the feature extraction base (initial convolutional layer + dense blocks)
- Returns:
list containing the feature extraction layers