gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:14:20 24 4
gpt4 key购买 nike

精简版:

使用数据集时 map操作,是否可以指定任何“行”,其中 map导致错误的调用被悄悄过滤掉,而不是让错误冒泡并杀死整个 session ?

规范:

我有一个输入管道设置(或多或少)执行以下操作:

  • 读取一组本地存储的图像文件路径(不同尺寸的图像)
  • 从 csv
  • 读取一组建议的“边界框”
  • 生成所有图像路径到边界框组合的集合
  • 读取和解码图像,然后使用 tf.image.crop_to_bounding_box 为这些组合中的每一个生成一组“裁剪”图像。

  • 我的问题是,在(非常罕见的)情况下,我建议的边界框超出了给定图像的边界,因此(可以理解) tf.image.crop_to_bounding_box抛出这样的错误:
    tensorflow.python.framework.errors_impl.InvalidArgumentError: assertion failed: [width must be >= target + offset.]

    这会杀死 session 。

    如果这些错误被简单地忽略并且管道移动到下一个组合,我更喜欢它。

    (我知道 正确的 针对此特定问题的修复将投入时间检查每个边界框和图像尺寸大小是否可能在之前的步骤中使用 filter 操作将其过滤掉,然后才能到达 map 带有裁剪操作。我想知道是否有一种简单的方法可以忽略错误并转到下一个案例,以便在这种特定情况下和更一般的情况下易于实现)

    最佳答案

    tf.contrib.data.ignore_errors .我自己从未尝试过,但根据 the docs用法很简单

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

    它应该简单地传递输入(即返回相同的数据集)但忽略任何抛出错误的内容。

    关于TensorFlow 数据集 `.map` - 是否可以忽略错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51966969/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com