我想针对输入计算深度神经网络的积分并将其用于我的损失函数。
我尝试了两种不同的方案。 首先,我使用tf.gradients解决了这个问题。 (此方法导致噪声函数近似) 其次,我使用了tf.integral,但这不是我想要的。
x_ph = tf.placeholder(tf.float32, [None,1])
y_ph = tf.placeholder(tf.float32, [None,1])
y_pred = mlp(x_ph)
def multilayer_perceptron(x,weights, biases):
# *********************** Hidden layer 1 ***********************#
layer_1 = tf.add(tf.matmul(x, weights['h1']), biases['b1'])
return tf.reshape(tf.convert_to_tensor(tf.gradients(layer_1, y)),(-1,1)), layer_1
# I want to have my ouput as return layer_1, integral(layer_1,x)
def cost(x, y, z):
jx, fx = multilayer_perceptron(x,weights, biases, kp)
fx = tf.reshape(fx, (-1,1))
jx = tf.reshape(jx, (-1,1))
cost_ = tf.reduce_mean(tf.abs(fx-y)) + tf.reduce_mean(tf.abs(jx-z))
return cost_
答案 0 :(得分:0)
这是我的解决方案。我定义了一个额外的占位符t,并用它来计算x处的积分值。