全局禁用Tensorflow断言吗?

时间:2019-01-23 22:49:51

标签: python tensorflow testing

Tensorflow中是否有一个选项可以设置为忽略我添加到Assert的所有Graph操作?

我正在考虑的用例是使用tf.contrib.framework.with_shape添加一堆Asserts,然后在我的配置文件config.fast中切换一个标志,以决定在培训期间是否应跳过这些Asserts。

通常我会首先根据是否设置了Asserts选择是否首先生成config.fast,但是使用with_shape时,将此选项链接到我的位置似乎更方便张量而不看我的config.fast

1 个答案:

答案 0 :(得分:0)

我最终使用了与@jdehesa的注释建议类似的东西,但使用了分支工厂函数而不是tf.cond

def make_maybe_with_shape(skip_asserts):
    if skip_asserts:  # identity
        return lambda expected_shape, tensor: tensor
    else:
        return lambda expected_shape, tensor: tf.contrib.framework.with_shape(
                expected_shape, tensor)