如何计算张量流量损失?

时间:2017-09-09 20:29:04

标签: tensorflow

我这样的简单模型:

n_input = 14 
n_out   = 1 

weights = {
    'out': tf.Variable(tf.random_normal([n_input, n_out]))
}
biases = {
    'out': tf.Variable(tf.random_normal([n_out]))
}
def perceptron(input_tensor, weights, biases):
    out_layer_multiplication = tf.matmul(input_tensor, weights['out'])
    out_layer_addition = out_layer_multiplication + biases['out']
    return out_layer_addition

input_tensor = rows
model = perceptron

“rows”维度为(N,14),“out”维度为(N),其中“out”是运行模型的结果,其中“rows”为“input_tensor”。

我想计算张量流量的损失。 Algorythm的计算是:

ls = 0
for i in range(len(out)-1):
    if out[i] < out[i+1]:
        ls += 1

“ls”是模型损失的地方。如何用tensorflow表示法计算它?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

l = out.get_shape()[0]
a = out[0:l-1]
b = out[1:l]
c = tf.where(a<b, tf.ones_like(a), tf.zeros_like(a))
return tf.reduce_sum(c)

实际上,a包含out[i]b包含out[i+1]c每次out[i]<out[i+1]都有1次。所以总结它们等于每次+1。