1

私自身のアクティベーション機能を定義し、TensorFlow Train API、すなわちのような事前定義された見積もりを持つ高水準APIで使用できますか?テンソルフロートレインAPIで独自のアクティベーション機能を使用するにはどうすればよいですか?

例えば、私はこのコードを使用しますが、私自身の何かを tf.nn.tanh活性化機能を交換したい:カスタム関数の構築で表すことができる場合

tf.estimator.DNNClassifier(
    feature_columns=feature_columns, 
    hidden_units=[5,10,5 
    n_classes=3, 
    optimizer=tf.train.ProximalAdagradOptimizer(learning_rate=0.01, 
               l1_regularization_strength=0.0001), 
    activation_fn=tf.nn.tanh) 
+0

コンストラクタの 'activation_fn'パラメータは何が問題になりますか?どのカスタム機能を使用したいですか? – Maxim

+0

このパラメータに問題はありません。しかし、tf.nnで利用可能なもの以外のいくつかの関数の拡大または修正されたバージョンを使用したい場合はどうすればよいでしょうか。 リスト?この世界には多くの種類の有界関数があります:) – Tirtha

答えて

1

テンソルフローでは、それはかなり簡単です。例えば:(それはそれぞれの層の後に適用されますので)

一般に
DNNClassifier(feature_columns=feature_columns, 
       ..., 
       activation_fn=lambda x: 2*tf.nn.tanh(x)+3*tf.nn.relu(x)+1) 

activation_fnは、任意の形状のテンソルを受け付ける呼び出し可能であることができます。 Tensorflowは問題なくこの式を逆伝播できます。

ただし、完全に新しいカスタムオペレーションを既存のオペレーションでは表現できないようにするには、それを登録し、そのグラデーションを手動で計算する必要があります。詳細については、this questionを参照してください。

関連する問題