如何保持回归输出在一定范围内

2024-04-19 00:50:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在tensorflow中建立一个年龄估计的回归模型。我的数据集由年龄在1到80之间的图像组成。我希望将输出保持在这些值之间。基本上我可以在python中这样做:

if output > 80:
    output = 80
elif output < 1:
    output = 1

但我不能在tensorflow里做。我试过:

one = tf.constant(1, dtype=tf.int32)
eighty = tf.constant(80, dtype=tf.int32)

output = tf.cond(tf.less(output, one), lambda: one, lambda: output)
output = tf.cond(tf.less(eighty, output), lambda: eighty, lambda: output)

它抛出了一个很长的错误,但是,我想,这一部分很重要:

ValueError: Shape must be rank 0 but is rank 2 for 'cond_1/Switch' (op: 'Switch') with input shapes: [?,1], [?,1].

这是有道理的。我试图比较一个常量和一个列表(或者类似列表的东西)。我怎样才能解决这个问题


Tags: lambda列表outputtftensorflowonelessdtype