我这样的简单模型:
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表示法计算它?
答案 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。