是否可以使用ImageDataGenerator
将[0, 255]
范围的图像重塑到[-1, 1]
范围?
我知道可以通过reshape参数乘以一个值来重塑图像,但这只能将图像重塑到[0, 1]
范围。
回答:
你可以使用Keras的ImageDataGenerator类中的preprocessing_function。
preprocessing_function:将在每个输入上应用的函数。该函数会在图像调整大小和增强后运行。该函数应接受一个参数:一个图像(秩为3的Numpy张量),并应输出一个形状相同的Numpy张量。
#预处理函数def changeRange(image): image[:, :, 0] = [(i/128.0)-1 for i in image[:, :, 0]] image[:, :, 1] = [(i/128.0)-1 for i in image[:, :, 1]] image[:, :, 2] = [(i/128.0)-1 for i in image[:, :, 2]] return image#数据增强train_datagen = ImageDataGenerator( rescale = None, preprocessing_function=changeRange)
`