对多幅图像应用相同的Keras-Tensorflow预处理变换
我目前正在使用数据扩充构建自己的自定义生成器。我必须对两个图像应用相同的变换,一个是训练图像,一个是目标图像,但函数只能一个接一个地工作。你知道如何在两幅图像中应用精确变换吗? 这是我正在尝试的一个功能: tf.keras.preprocessing.image.random_zoom 发电机的代码:对多幅图像应用相同的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:
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)
嗯。除了调用函数两次之外,它似乎还应用了精确的变换