У меня возникла очень странная проблема с Keras ImageDataGenerator.
У меня есть альбомное изображение с формой (1056, 2000, 3).
Высота (ось 0): 1056
Ширина (Ось 1): 2000
Когда я использую plt.imshow(), оси отображаются правильно: ось Y доходит до 1056, а ось X до 2000. В моем Keras image_data_format установлено значение "channels_last". Проблема: Когда я устанавливаю width_shift_range=0.4, изображение смещается по вертикали (вверх и вниз), а не по горизонтали. И наоборот, когда я устанавливаю height_shift_range=0.4, изображение смещается по горизонтали (влево и вправо).
Похоже, что Keras неправильно сопоставляет ширину с осью 0 и высоту с осью 1, хотя входной массив соответствует стандартному формату (H, W, C), и imshow отображает его правильно.
Вот мой фрагмент кода:
введите описание изображения здесь
Окружающая среда:
версия tensorflow: 2.20.0
версия Keras: 3.13.2
версия Python: 3.12.9
ОС: окно 11
Я уже проверил tf.keras.backend.image_data_format() и подтверждается как «channels_last». Почему ImageDataGenerator меняет поведение сдвигов ширины и высоты? Это известная ошибка для изображений с широким соотношением сторон?
Будем благодарны за любую помощь.
У меня возникла очень странная проблема с Keras ImageDataGenerator. У меня есть альбомное изображение с формой [b](1056, 2000, 3)[/b]. [list] [*][b]Высота (ось 0):[/b] 1056
[*][b]Ширина (Ось 1):[/b] 2000
[/list] Когда я использую plt.imshow(), оси отображаются правильно: ось Y доходит до 1056, а ось X до 2000. В моем Keras image_data_format установлено значение "channels_last". [b]Проблема:[/b] Когда я устанавливаю width_shift_range=0.4, изображение [b]смещается по вертикали (вверх и вниз)[/b], а не по горизонтали. И наоборот, когда я устанавливаю height_shift_range=0.4, изображение [b]смещается по горизонтали (влево и вправо)[/b]. Похоже, что Keras неправильно сопоставляет ширину с осью 0 и высоту с осью 1, хотя входной массив соответствует стандартному формату (H, W, C), и imshow отображает его правильно. Вот мой фрагмент кода: [code]import cv2 import numpy as np import matplotlib.pyplot as plt from tensorflow.keras.preprocessing.image import ImageDataGenerator
for i in range(n_img): aug_batch = next(gen_iter) print(aug_batch.shape) aug = np.squeeze(aug_batch) print(aug.shape) aug = aug.astype('int') axes[i].imshow(aug)
print(img_batch.shape)
# This shifts the image UP/DOWN (Vertically) gen = ImageDataGenerator(width_shift_range=0.4, fill_mode='constant', cval=0) show_aug_image(img, gen)
введите описание изображения здесь Окружающая среда: версия tensorflow: 2.20.0 версия Keras: 3.13.2 версия Python: 3.12.9 ОС: окно 11 Я уже проверил tf.keras.backend.image_data_format() и подтверждается как «channels_last». Почему ImageDataGenerator меняет поведение сдвигов ширины и высоты? Это известная ошибка для изображений с широким соотношением сторон? Будем благодарны за любую помощь.