для вашего случая, вам нужно изменить функцию preprocessing_function, которая считывает ваше изображение 3 ранга в качестве входных данных. что бы вы ни делали, чтобы сделать его 6-канальным изображением, сделайте это внутри этой функции. см. пример (я передаю 3-канальное изображение в ImageGenerator).
см. ниже, arr - это 3-канальное изображение. Я пишу preProsFun c и присваиваю его preprocessing_function ImageGenerator. Я просто конкатенирую, чтобы сделать 6-канальное изображение. Точно так же вы можете написать свою логику c внутри proprocessing_function
import tensorflow as tf
import numpy as np
arr = np.zeros((4,4,3))
arr = np.expand_dims(arr, axis=0)
def preProsFunc(arr):
arr1 = np.zeros((4,4,3))
arr1 = np.expand_dims(arr1, axis=0)
return np.concatenate((arr, arr1), axis=2)
datagen = tf.keras.preprocessing.image.ImageDataGenerator(
featurewise_center=True,
featurewise_std_normalization=True,
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True,
preprocessing_function=preProsFunc
)
datagen.fit(arr)
Дайте мне знать, что угодно.