def multilevel_features_generator(params): """Generator function for various FPN models.""" if params.architecture.multilevel_features == 'fpn': fpn_params = params.fpn fpn_fn = fpn.Fpn( min_level=fpn_params.min_level, max_level=fpn_params.max_level, fpn_feat_dims=fpn_params.fpn_feat_dims, use_separable_conv=fpn_params.use_separable_conv, use_batch_norm=fpn_params.use_batch_norm, batch_norm_relu=batch_norm_relu_generator(fpn_params.batch_norm)) elif params.architecture.multilevel_features == 'nasfpn': nasfpn_params = params.nasfpn fpn_fn = nasfpn.Nasfpn( min_level=nasfpn_params.min_level, max_level=nasfpn_params.max_level, fpn_feat_dims=nasfpn_params.fpn_feat_dims, num_repeats=nasfpn_params.num_repeats, use_separable_conv=nasfpn_params.use_separable_conv, dropblock=dropblock_generator(nasfpn_params.dropblock), block_fn=nasfpn_params.block_fn, activation=nasfpn_params.activation, batch_norm_relu=batch_norm_relu_generator( nasfpn_params.batch_norm, activation=nasfpn_params.activation), init_drop_connect_rate=nasfpn_params.init_drop_connect_rate) elif params.architecture.multilevel_features == 'identity': fpn_fn = identity.Identity() else: raise ValueError('The multi-level feature model %s is not supported.' % params.architecture.multilevel_features) return fpn_fn
def multilevel_features_generator(params): """Generator function for various FPN models.""" if params.architecture.multilevel_features == 'fpn': fpn_params = params.fpn fpn_fn = fpn.Fpn(min_level=fpn_params.min_level, max_level=fpn_params.max_level, fpn_feat_dims=fpn_params.fpn_feat_dims, use_separable_conv=fpn_params.use_separable_conv, use_batch_norm=fpn_params.use_batch_norm, batch_norm_relu=batch_norm_relu_generator( fpn_params.batch_norm)) elif params.architecture.multilevel_features == 'identity': fpn_fn = identity.Identity() else: raise ValueError('The multi-level feature model %s is not supported.' % params.architecture.multilevel_features) return fpn_fn