如何在tensorflow train API中使用我自己的激活函数?

时间:2017-11-09 09:14:41

标签: machine-learning tensorflow neural-network deep-learning activation-function

我可以定义自己的激活功能并在TensorFlow Train API中使用它,即具有预定义估算器的高级API,如 DNNClassifier

例如,我想使用此代码,但用我自己的代码替换激活函数 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)

1 个答案:

答案 0 :(得分:1)

如果您的自定义函数可以用内置的tensorflow操作表示,那么它相当简单。例如:

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

通常,activation_fn可以是一个可调用的,它接受任意形状的张量(因为它将在每一层之后应用)。 Tensorflow可以通过这个表达式反向传播而没有任何问题。

但是,如果您想要一个全新的自定义操作系统,而不是现有的自定义操作系统,您必须注册并手动计算其渐变。有关详细信息,请参阅runtime.txt