对多幅图像应用相同的Keras-Tensorflow预处理变换

对多幅图像应用相同的Keras-Tensorflow预处理变换,tensorflow,keras,preprocessor,Tensorflow,Keras,Preprocessor,我目前正在使用数据扩充构建自己的自定义生成器。我必须对两个图像应用相同的变换,一个是训练图像,一个是目标图像,但函数只能一个接一个地工作。你知道如何在两幅图像中应用精确变换吗? 这是我正在尝试的一个功能: tf.keras.preprocessing.image.random_zoom 发电机的代码: def generator(data, batch_size = 32, data_augmentation = False): batch_number = 0 while True:

我目前正在使用数据扩充构建自己的自定义生成器。我必须对两个图像应用相同的变换,一个是训练图像,一个是目标图像,但函数只能一个接一个地工作。你知道如何在两幅图像中应用精确变换吗? 这是我正在尝试的一个功能:

tf.keras.preprocessing.image.random_zoom

发电机的代码:

def generator(data, batch_size = 32, data_augmentation = False):
batch_number = 0
while True:
    original_train = []
    original_target = []
    train = []
    target = []
    if batch_number * batch_size >= data.shape[0]:
            batch_number = 0        
    for x in train_pd.values[batch_number * batch_size: (batch_number + 1) * batch_size ]:
        train_image = load_image_as_array(train_path+'images/'+x[0]+'.png').reshape(101,101,1)
        target_image = load_image_as_array(train_path+'masks/'+x[0]+'.png').reshape(101,101,1)
        original_train.append(train_image)
        original_target.append(target_image)
        if data_augmentation:
            train_image = random_zoom(train_image, (.25,.25))
            target_image = random_zoom(target_image, (.25,.25))
        train.append(train_image)
        target.append(target_image)            
    batch_number += 1
    yield np.array(train), np.array(target), np.array(original_train), np.array(original_target)

嗯。除了调用函数两次之外,它似乎还应用了精确的变换