2 回答
TA贡献1784条经验 获得超8个赞
在您的函数上使用@tf.custom_gradient装饰器并在其中定义grad(dy)要返回的函数:
#works only with tensorflow
from keras.backend import tf
@tf.custom_gradient
def custom_activation(x):
#... do things ...
def grad(dy):
#... do things ...
return dy * the_derivative(x)
#... do things ...
return result, grad #return the result and the gradient function
改编自:https ://www.tensorflow.org/api_docs/python/tf/custom_gradient
我从未在 Keras 中使用过它,但如果它不能立即工作,你可以尝试将这个函数放入标准 Keras 函数中:
from keras.layers import Lambda
layer = Lambda(lambda x: custom_activation(x))
TA贡献1880条经验 获得超4个赞
我想你的问题与这个问题非常相似how-to-define-the-derivative-of-a-custom-activation-function-in-keras。该链接中接受的答案是不言自明且有用的信息。
简而言之,您可以检查TF Add New Op。.
添加回答
举报