Мне кажется, что это имеет смысл. Методы flow
или flow_from_*
и random_transform()
преобразуют данные по-разному.
Методы flow()
будут принимать конфигурацию / преобразования, предоставленные ImageDataGenerator, и выплевывать данные в соответствии с этими параметрами
random_transform()
предлагает конфигурацию случайного преобразования (основанную на параметрах, которые вы установили в __init__
вашего ImageDataGenerator
, и примените это к данным. Это означает, что ваш rescale
параметр может быть переопределен по умолчанию.
Более подробная информация о random_transform()
Я сам раньше не использовал random_tranform()
. Но, похоже, это как это работает.
Допустим, мы определили следующее ImageDataGenerator
img_gen = tf.keras.preprocessing.image.ImageDataGenerator(
rescale=1./255, vertical_flip=True, brightness_range=(-0.1,0.1)
)
Теперь вы можете увидеть, какие виды случайных преобразований доступны, используя,
print(img_gen.get_random_transform((1,224,224,3)))
который даст разные случайные значения для vertical_flip
и brightness
. Как вы видите, rescale
, по-видимому, не случайный параметр, который они рассматривают. Это объясняет, почему вы не получили ожидаемый результат.