代码之家  ›  专栏  ›  技术社区  ›  Stewart_R

TensorFlow数据集`.map`-是否可以忽略错误?

  •  1
  • Stewart_R  · 技术社区  · 6 年前

    短版本:

    map 操作,是否可以指定 地图 导致错误的调用结果会被悄悄地过滤掉,而不是让错误冒泡并终止整个会话?

    具体内容:

    1. 读取本地存储的图像(不同维度的图像)的一组文件路径
    2. 从csv中读取一组建议的“边界框”
    3. 生成边界框组合的所有图像路径集
    4. tf.image.crop_to_bounding_box

    我的问题是,有些(非常罕见的)情况下,我建议的边界框超出了给定图像的边界,所以(可以理解) tf.image.crop_to_边框 引发如下错误:

    tensorflow.python.framework.errors_impl.InvalidArgumentError: assertion failed: [width must be >= target + offset.]
    

    这就结束了会议。

    我更希望这些错误被简单地忽略,并且管道转移到下一个组合。

    对的 解决这个特定问题的方法是将检查每个边界框的时间提交给前面的步骤,并使用 filter 地图 和修剪手术。我想知道是否有一种简单的方法可以忽略一个错误,然后转到下一个案例,在这个特定的案例和更一般的案例中都很容易实现)

    1 回复  |  直到 6 年前
        1
  •  3
  •   xdurch0    6 年前

    tf.contrib.data.ignore_errors the docs 用法很简单

    dataset = dataset.map(some_map_function)
    dataset = dataset.apply(tf.contrib.data.ignore_errors())
    

    它应该只传递输入(即返回相同的数据集),而忽略任何抛出错误的输入。