我正在尝试通过使用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
在我的情况下,裁剪已经调整大小的图像会产生错误的结果。因此,我正在寻找一种方法,以防止调整大小完全发生或仅在应用自定义预处理功能后才发生。无需编写整个自定义数据生成器就可以实现吗?
答案 0 :(得分:0)
使用ImageDataGenerator的当前实现是不可能的。在loading image期间进行图像调整大小,而在later的几个步骤standardize
中调用预处理功能。
在加载过程中不调整大小也不是一种选择,因为迭代器pre-allocates批处理数组并需要知道其形状。