我想跳过一些具有特定标签的数据(例如if label
> = 7或其他)。我的代码在这里:
true = tf.constant(True)
less_op = tf.less(label, tf.constant(delimiter))
label = tf.cast(
tf.slice(record_bytes, [0], [label_bytes]), tf.int32)
tf.cond(less_op, lambda: true, lambda: true)
并且在第4行我有错误:ValueError: Shapes (1,) and () are not compatible
。我认为它是由less_op引起的(如果我用true
代码替换它的话)。我还调查了label
存在一些问题:代码less_op = tf.less(tf.constant(1), tf.constant(delimiter))
完美无缺。
答案 0 :(得分:2)
Tensorflow期望它的形状为None或[]而不是(1,)。它应该在我的opionion中修复它的奇怪行为,因为tf.less返回一个形状(1,)的张量而不是shape()。
改变这个:
tf.cond(less_op, lambda: true, lambda: true)
到此:
tf.cond(tf.reshape(less_op,[]), lambda: true, lambda: true)