# TensorFlow Addons Codeowners

# Submodule Owners
# These will not always trigger a GitHub review because submodule owners do not
# always have write access. However, a bot will notify them of the needed review.

/tensorflow_addons/activations/gelu.py @aakashkumarnain @windqaq
/tensorflow_addons/activations/tests/gelu_test.py @aakashkumarnain @windqaq
/tensorflow_addons/activations/hardshrink.py @windqaq
/tensorflow_addons/activations/tests/hardshrink_test.py @windqaq
/tensorflow_addons/activations/lisht.py @windqaq
/tensorflow_addons/activations/tests/lisht_test.py @windqaq
/tensorflow_addons/activations/mish.py @windqaq @digantamisra98
/tensorflow_addons/activations/tests/mish_test.py @windqaq @digantamisra98
/tensorflow_addons/activations/rrelu.py @fsx950223
/tensorflow_addons/activations/tests/rrelu_test.py @fsx950223
/tensorflow_addons/activations/softshrink.py @windqaq
/tensorflow_addons/activations/tests/softshrink_test.py @windqaq
/tensorflow_addons/activations/sparsemax.py @andreasmadsen
/tensorflow_addons/activations/tests/sparsemax_test.py @andreasmadsen
/tensorflow_addons/activations/tanhshrink.py @fsx950223
/tensorflow_addons/activations/tests/tanhshrink_test.py @fsx950223
/tensorflow_addons/activations/snake.py @failure-to-thrive
/tensorflow_addons/activations/tests/snake_test.py @failure-to-thrive

/tensorflow_addons/callbacks/average_model_checkpoint.py @squadrick
/tensorflow_addons/callbacks/time_stopping.py @shun-lin
/tensorflow_addons/callbacks/tests/time_stopping_test.py @shun-lin
/tensorflow_addons/callbacks/tqdm_progress_bar.py @shun-lin
/tensorflow_addons/callbacks/tests/tqdm_progress_bar_test.py @shun-lin

/tensorflow_addons/image/color_ops.py @abhichou4
/tensorflow_addons/image/tests/color_ops_test.py @abhichou4
/tensorflow_addons/image/connected_components.py @sayoojbk
/tensorflow_addons/image/tests/connected_components_test.py @sayoojbk
/tensorflow_addons/image/cutout_ops.py @fsx950223
/tensorflow_addons/image/tests/cutout_ops_test.py @fsx950223
/tensorflow_addons/image/dense_image_warp.py @windQAQ
/tensorflow_addons/image/tests/dense_image_warp_test.py @windQAQ
/tensorflow_addons/image/distance_transform.py @mels630
/tensorflow_addons/image/tests/distance_transform_test.py @mels630
/tensorflow_addons/image/distort_image_ops.py @windqaq
/tensorflow_addons/image/tests/distort_image_ops_test.py @windqaq
/tensorflow_addons/image/filters.py @mainak431 @ghosalsattam
/tensorflow_addons/image/tests/filters_test.py @mainak431 @ghosalsattam
/tensorflow_addons/image/interpolate_spline.py
/tensorflow_addons/image/tests/interpolate_spline_test.py
/tensorflow_addons/image/resampler_ops.py @autoih
/tensorflow_addons/image/tests/resampler_ops_test.py @autoih
/tensorflow_addons/image/sparse_image_warp.py
/tensorflow_addons/image/tests/sparse_image_warp_test.py
/tensorflow_addons/image/transform_ops.py @mels630
/tensorflow_addons/image/tests/transform_ops_test.py @mels630
/tensorflow_addons/image/translate_ops.py @sayoojbk
/tensorflow_addons/image/tests/translate_ops_test.py @sayoojbk

/tensorflow_addons/layers/adaptive_pooling.py @Susmit-A
/tensorflow_addons/layers/tests/adaptive_pooling_test.py @Susmit-A
/tensorflow_addons/layers/gelu.py @aakashkumarnain
/tensorflow_addons/layers/tests/gelu_test.py @aakashkumarnain
/tensorflow_addons/layers/maxout.py @failure-to-thrive
/tensorflow_addons/layers/tests/maxout_test.py @failure-to-thrive
/tensorflow_addons/layers/multihead_attention.py @cgarciae
/tensorflow_addons/layers/tests/multihead_attention_test.py @cgarciae
/tensorflow_addons/layers/netvlad.py @joel-shor
/tensorflow_addons/layers/tests/netvlad_test.py @joel-shor
/tensorflow_addons/layers/normalizations.py @smokrow
/tensorflow_addons/layers/tests/normalizations_test.py @smokrow
/tensorflow_addons/layers/optical_flow.py @failure-to-thrive
/tensorflow_addons/layers/tests/optical_flow_test.py @failure-to-thrive
/tensorflow_addons/layers/poincare.py @rahulunair
/tensorflow_addons/layers/tests/poincare_test.py @rahulunair
/tensorflow_addons/layers/polynomial.py @tanzhenyu
/tensorflow_addons/layers/tests/polynomial_test.py @tanzhenyu
/tensorflow_addons/layers/sparsemax.py @andreasmadsen
/tensorflow_addons/layers/tests/sparsemax_test.py @andreasmadsen
/tensorflow_addons/layers/spectral_normalization.py @charlielito
/tensorflow_addons/layers/tests/spectral_normalization_test.py @charlielito
/tensorflow_addons/layers/spatial_pyramid_pooling.py @Susmit-A
/tensorflow_addons/layers/tests/spatial_pyramid_pooling_test.py @Susmit-A
/tensorflow_addons/layers/tlu.py @aakashkumarnain
/tensorflow_addons/layers/tests/tlu_test.py @aakashkumarnain
/tensorflow_addons/layers/wrappers.py @seanpmorgan
/tensorflow_addons/layers/tests/wrappers_test.py @seanpmorgan
/tensorflow_addons/layers/esn.py @pedrolarben
/tensorflow_addons/layers/tests/esn_test.py @pedrolarben
/tensorflow_addons/layers/snake.py @failure-to-thrive
/tensorflow_addons/layers/tests/snake_test.py @failure-to-thrive
/tensorflow_addons/layers/stochastic_depth.py @mhstadler @windqaq
/tensorflow_addons/layers/tests/stochastic_depth_test.py @mhstadler @windqaq
/tensorflow_addons/layers/noisy_dense.py @leonshams
/tensorflow_addons/layers/tests/noisy_dense_test.py @leonshams
/tensorflow_addons/layers/max_unpooling_2d.py @thaink
/tensorflow_addons/layers/tests/max_unpooling_2d_test.py @thaink

/tensorflow_addons/losses/contrastive.py @windqaq
/tensorflow_addons/losses/tests/contrastive_test.py @windqaq
/tensorflow_addons/losses/focal_loss.py @aakashkumarnain @ssaishruthi
/tensorflow_addons/losses/tests/focal_loss_test.py @aakashkumarnain @ssaishruthi
/tensorflow_addons/losses/giou_loss.py @fsx950223
/tensorflow_addons/losses/tests/giou_loss_test.py @fsx950223
/tensorflow_addons/losses/lifted.py @rahulunair
/tensorflow_addons/losses/tests/lifted_test.py @rahulunair
/tensorflow_addons/losses/metric_learning.py
/tensorflow_addons/losses/npairs.py @windqaq
/tensorflow_addons/losses/tests/npairs_test.py @windqaq
/tensorflow_addons/losses/quantiles.py @romainbrault
/tensorflow_addons/losses/tests/quantiles_test.py @romainbrault
/tensorflow_addons/losses/sparsemax_loss.py @andreasmadsen
/tensorflow_addons/losses/tests/sparsemax_loss_test.py @andreasmadsen
/tensorflow_addons/losses/triplet.py @lc0
/tensorflow_addons/losses/tests/triplet_test.py @lc0
/tensorflow_addons/losses/kappa_loss.py @wenmin-wu
/tensorflow_addons/losses/tests/kappa_loss_test.py @wenmin-wu

/tensorflow_addons/metrics/cohens_kappa.py @aakashkumarnain
/tensorflow_addons/metrics/tests/cohens_kappa_test.py @aakashkumarnain
/tensorflow_addons/metrics/f_scores.py @ssaishruthi @marload
/tensorflow_addons/metrics/tests/f_scores_test.py @ssaishruthi @marload
/tensorflow_addons/metrics/hamming.py @ssaishruthi
/tensorflow_addons/metrics/tests/hamming_test.py @ssaishruthi
/tensorflow_addons/metrics/matthews_correlation_coefficient.py @autoih @marload
/tensorflow_addons/metrics/tests/matthews_correlation_coefficient_test.py @autoih @marload
/tensorflow_addons/metrics/multilabel_confusion_matrix.py @ssaishruthi
/tensorflow_addons/metrics/tests/multilabel_confusion_matrix_test.py @ssaishruthi
/tensorflow_addons/metrics/r_square.py @ssaishruthi @marload
/tensorflow_addons/metrics/tests/r_square_test.py @ssaishruthi @marload
/tensorflow_addons/metrics/geometric_mean.py @marload
/tensorflow_addons/metrics/tests/geometric_mean_test.py @marload

/tensorflow_addons/optimizers/average_wrapper.py @squadrick
/tensorflow_addons/optimizers/conditional_gradient.py @pkan2 @lokhande-vishnu
/tensorflow_addons/optimizers/tests/conditional_gradient_test.py @pkan2 @lokhande-vishnu
/tensorflow_addons/optimizers/cyclical_learning_rate.py @raphaelmeudec
/tensorflow_addons/optimizers/tests/cyclical_learning_rate_test.py @raphaelmeudec
/tensorflow_addons/optimizers/discriminative_layer_training.py @hyang0129
/tensorflow_addons/optimizers/tests/discriminative_layer_training_test.py @hyang0129
/tensorflow_addons/optimizers/lamb.py @junjiek
/tensorflow_addons/optimizers/tests/lamb_test.py @junjiek
/tensorflow_addons/optimizers/lazy_adam.py @ssaishruthi
/tensorflow_addons/optimizers/tests/lazy_adam_test.py @ssaishruthi
/tensorflow_addons/optimizers/lookahead.py @cyberzhg
/tensorflow_addons/optimizers/tests/lookahead_test.py @cyberzhg
/tensorflow_addons/optimizers/moving_average.py @squadrick
/tensorflow_addons/optimizers/tests/moving_average_test.py @squadrick
/tensorflow_addons/optimizers/novograd.py @shreyashpatodia
/tensorflow_addons/optimizers/tests/novograd_test.py @shreyashpatodia
/tensorflow_addons/optimizers/proximal_adagrad.py @WindQAQ
/tensorflow_addons/optimizers/tests/proximal_adagrad_test.py @WindQAQ
/tensorflow_addons/optimizers/rectified_adam.py @cyberzhg
/tensorflow_addons/optimizers/tests/rectified_adam_test.py @cyberzhg
/tensorflow_addons/optimizers/stochastic_weight_averaging.py @shreyashpatodia
/tensorflow_addons/optimizers/tests/stochastic_weight_averaging_test.py @shreyashpatodia
/tensorflow_addons/optimizers/weight_decay_optimizers.py @philjd
/tensorflow_addons/optimizers/tests/weight_decay_optimizers_test.py @philjd
/tensorflow_addons/optimizers/yogi.py @manzilz
/tensorflow_addons/optimizers/tests/yogi_test.py @manzilz

/tensorflow_addons/rnn/esn_cell.py @pedrolarben
/tensorflow_addons/rnn/tests/esn_cell_test.py @pedrolarben
/tensorflow_addons/rnn/layer_norm_lstm_cell.py @qlzh727
/tensorflow_addons/rnn/tests/layer_norm_lstm_cell_test.py @qlzh727
/tensorflow_addons/rnn/layer_norm_simple_rnn_cell.py @qlzh727
/tensorflow_addons/rnn/tests/layer_norm_simple_rnn_cell_test.py @qlzh727
/tensorflow_addons/rnn/nas_cell.py @qlzh727
/tensorflow_addons/rnn/tests/nas_cell_test.py @qlzh727
/tensorflow_addons/rnn/peephole_lstm_cell.py @qlzh727
/tensorflow_addons/rnn/tests/peephole_lstm_cell_test.py @qlzh727

/tensorflow_addons/seq2seq/ @qlzh727 @guillaumekln

/tensorflow_addons/text/crf.py @squadrick
/tensorflow_addons/text/tests/crf_test.py @squadrick
/tensorflow_addons/text/parse_time_op.py @helinwang
/tensorflow_addons/text/tests/parse_time_op_test.py @helinwang
/tensorflow_addons/text/skip_gram_ops.py @rahulunair
/tensorflow_addons/text/tests/skip_gram_ops_test.py @rahulunair
