Keras:如何在使用带有 flow_from_dataframe / flow_from_directory 的 ImageDataGenerator 时禁用调整图像大小?

Aar*_*nDT 4 python keras tensorflow

我试图通过使用 ImageDataGenerator 并将自定义函数传递给preprocessing_function参数来对我的图像应用一些裁剪操作。但是,根据 Keras 文档,此功能只会在图像已调整大小后运行:

preprocessing_function:将隐含在每个输入上的函数。该函数将在图像调整大小和增强后运行。

现在我想禁用调整大小,但是如果没有提供值,则 target_size 参数默认为 (256,256)。再次来自文档:

target_size:整数元组(高度、宽度),默认值:(256, 256)。找到的所有图像的尺寸将被调整。

我一直在尝试将target_size参数设置为None,但这会导致错误:

TypeError: 'NoneType' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)

在我的情况下,裁剪已经调整大小的图像会产生错误的结果。因此,我正在寻找一种方法,以防止调整大小发生或仅在应用我的自定义预处理功能后发生。如果不编写整个自定义数据生成器,这可能吗?

Dmy*_*pko 5

使用 ImageDataGenerator 的当前实现是不可能的。图像大小在加载图像时发生,而预处理函数在standardize几步之后被调用。

在加载过程中不调整大小也不是一种选择,因为迭代器为一个批次预先分配了数组并且需要知道它的形状。