如果Tensorflow中的tf.cond检查失败,如何停止图形执行或更改控制流?

如果Tensorflow中的tf.cond检查失败,如何停止图形执行或更改控制流?,tensorflow,tensor,Tensorflow,Tensor,我正在构造一个图,其中我需要检查输入张量的形状。我试图在张量的形状上使用tf.cond。但是我发现tf.cond期望true\u fn和false\u fn返回相同类型的输出。我的问题是如何在输入形状检查失败时停止执行。通常,如何在图形执行阶段更改控制流?我的代码如下所示。谢谢 input_img = tf.image.decode_jpeg(input_str, channels = 3) img_shape = tf.shape(input_img) valid_img = tf.co

我正在构造一个图,其中我需要检查输入张量的形状。我试图在张量的形状上使用tf.cond。但是我发现tf.cond期望true\u fnfalse\u fn返回相同类型的输出。我的问题是如何在输入形状检查失败时停止执行。通常,如何在图形执行阶段更改控制流?我的代码如下所示。谢谢

 input_img = tf.image.decode_jpeg(input_str, channels = 3)
 img_shape = tf.shape(input_img)
 valid_img = tf.cond(tf.not_equal(img_shape[2], 3), STOP, input_img)
也许会合适。您可以选择所需的条件,并在基本情况下使用它

with tf.control_dependencies([tf.assert_equal(a, b)]):
    c = some_func(a, b)
若条件未满足,则抛出
条件x==y未保持元素状态
错误