Trasorflow占位符在Keras自定义目标函数中

时间:2017-04-29 07:13:04

标签: python tensorflow keras keras-layer

我需要为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占位符,因为它的输入掩码对于输入数据的每一行都是不同的。)

1 个答案:

答案 0 :(得分:0)

使用keras后端:

import keras.backend as K

张量的大多数功能都在那里,例如:

input_mask_R = K.placeholder(shape=(yourshape))

但也许,因为你想要一个预定义的面具,你需要的是:

input_mask_R = K.constant(arrayWithValues, shape=(yourshape))

您实际上也可以与K.multiplyK.square相乘和平方。这样,如果你想到改变后端,一切都会好的。 (另外我不确定Keras是否会处理对tensorflow函数的直接调用.....)

请参阅文档:https://keras.io/backend/