我需要为Keras实现一个自定义目标函数,我需要一个额外的tensorflow占位符来进行计算。在tensorflow中,我有如下,
getHiddenTokensToRight()
其中input_mask_R是张量流占位符。 input_R和Decoder分别是对应于Keras损失函数的y_true和y_pred的占位符。我将Keras损失功能实现为,
pre_cost1 = tf.multiply((self.input_R - self.Decoder) , self.input_mask_R)
cost1 = tf.square(self.l2_norm(pre_cost1))
我需要在keras的loss函数中添加输入掩码的附加信息。 (它需要是tensorflow占位符,因为它的输入掩码对于输入数据的每一行都是不同的。)
答案 0 :(得分:0)
使用keras后端:
import keras.backend as K
张量的大多数功能都在那里,例如:
input_mask_R = K.placeholder(shape=(yourshape))
但也许,因为你想要一个预定义的面具,你需要的是:
input_mask_R = K.constant(arrayWithValues, shape=(yourshape))
您实际上也可以与K.multiply
和K.square
相乘和平方。这样,如果你想到改变后端,一切都会好的。 (另外我不确定Keras是否会处理对tensorflow函数的直接调用.....)