2017-09-09 180 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。