SIG-Addons が管理する TensorFlow の追加機能。

import tensorflow as tf
import tensorflow_addons as tfa
train,test = tf.keras.datasets.mnist.load_data()
x_train, y_train = train
x_train = x_train[..., tf.newaxis] / 255.0

# TFA layers and activations
model = tf.keras.Sequential([
  tf.keras.layers.Conv2D(filters=10, kernel_size=(3,3),
                         activation=tfa.activations.gelu),
  tfa.layers.GroupNormalization(groups=5, axis=3),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(10, activation='softmax')
])

# TFA optimizers, losses and metrics
model.compile(
    optimizer=tfa.optimizers.RectifiedAdam(0.001),
    loss=tfa.losses.TripletSemiHardLoss(),
    metrics=[tfa.metrics.MultiLabelConfusionMatrix(num_classes=10)])

history = model.fit(x_train, y_train, epochs=10)

TensorFlow SIG Addons は、コミュニティの貢献によるリポジトリで、確立された API パターンに準拠しています。ただし、コア TensorFlow では利用できない新しい機能を実装しています。

TensorFlow では、多数の演算子、レイヤ、指標、損失、オプティマイザーなどがネイティブにサポートされています。しかし、機械学習のような変化の急激な分野では、広く適用できるか明らかでなかったり、コミュニティの一部で使用されることがほとんどであったりすることから、興味深いものでありながらもコア TensorFlow に統合できない新しい開発事項が多数あります。