我可以定义自己的激活功能并在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)
答案 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。