Creates a NAS-FPN model.

This implements the paper: Golnaz Ghiasi, Tsung-Yi Lin, Ruoming Pang, Quoc V. Le. NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection. (

input_specs A dict of input specifications. A dictionary consists of {level: TensorShape} from a backbone.
min_level An int of minimum level in FPN output feature maps.
max_level An int of maximum level in FPN output feature maps.
block_specs a list of BlockSpec objects that specifies the NAS-FPN network topology. By default, the previously discovered architecture is used.
num_filters An int number of filters in FPN layers.
num_repeats number of repeats for feature pyramid network.
use_separable_conv A bool. If True use separable convolution for convolution in FPN layers.
activation A str name of the activation function.
use_sync_bn A bool. If True, use synchronized batch normalization.
norm_momentum A float of normalization momentum for the moving average.
norm_epsilon A float added to variance to avoid dividing by zero.
kernel_initializer A str name of kernel_initializer for convolutional layers.
kernel_regularizer A tf.keras.regularizers.Regularizer object for Conv2D. Default is None.
bias_regularizer A tf.keras.regularizers.Regularizer object for Conv2D.
**kwargs Additional keyword arguments to be passed.

output_specs A dict of {level: TensorShape} pairs for the model output.



Calls the model on new inputs and returns the outputs as tensors.

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).

inputs Input tensor, or dict/list/tuple of input tensors.
training Boolean or boolean scalar tensor, indicating whether to run the Network in training mode or inference mode.
mask A mask or list of masks. A mask can be either a boolean tensor or None (no mask). For more details, check the guide here.

A tensor if there is a single output, or a list of tensors if there are more than one outputs.