2017-09-09 274 views
1

我已经简单的模型是这样的:如何计算张量流量损失?

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 

“行” 尺寸为(N,14)和 “out” 尺寸为(N),其中, “出” 与 “行” 运行模型的结果作为“input_tensor”。

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

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

其中“ls”是模型损失。我怎样才能以tensorflow表示法来计算它?

回答

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每次都有1秒out[i]<out[i+1]。所以总结他们相当于每次+1。