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_init_layer()

Freeze the initial convolutional layer

freeze_top()

Freeze the classification block

get_feature_extraction_base()

Retrive the feature extraction base (initial convolutional layer + dense blocks)

unfreeze_block(block_ids)

Unfreeze specific dense blocks

unfreeze_init_layer()

Unfreeze the initial convolutional layer

unfreeze_top()

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)

freeze_init_layer()[source]

Freeze the initial convolutional layer

freeze_top()[source]

Freeze the classification block

get_feature_extraction_base()[source]

Retrive the feature extraction base (initial convolutional layer + dense blocks)

Returns:

list containing the feature extraction layers

unfreeze_block(block_ids)[source]

Unfreeze specific dense blocks

Args:
blocks_ids: list of ints

The block numbers to be freezed (starting from zero)

unfreeze_init_layer()[source]

Unfreeze the initial convolutional layer

unfreeze_top()[source]

Unfreeze the classification block