#python #image-processing #keras #data-augmentation
Вопрос:
Я пытаюсь обучить модель, которая выполняет увеличение данных, после чего я сохраню дополненные изображения на своем диске: я загрузил изображения с помощью ImageDataGenerator и flow_from_directory
def my_preprocessing_func(img):
image = np.array(img)
return image / 255
datagen=ImageDataGenerator(rotation_range=90,preprocessing_function=my_preprocessing_func)
dataset=datagen.flow_from_directory(directory=data_path,target_size=(224,224),batch_size=2)
model=Sequential([
preprocessing.Resizing(224,244),
preprocessing.RandomRotation(0.3)
])
model.compile(optimizer=Adam(learning_rate=0.005),loss=categorical_crossentropy,metrics=['accuracy'])
Я получаю ошибку при обучении модели
model.fit_generator(dataset)
ValueError: in user code:
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkerasenginetraining.py:855 train_function *
return step_function(self, iterator)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkerasenginetraining.py:845 step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythondistributedistribute_lib.py:1285 run
return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythondistributedistribute_lib.py:2833 call_for_each_replica
return self._call_for_each_replica(fn, args, kwargs)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythondistributedistribute_lib.py:3608 _call_for_each_replica
return fn(*args, **kwargs)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkerasenginetraining.py:838 run_step **
outputs = model.train_step(data)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkerasenginetraining.py:796 train_step
loss = self.compiled_loss(
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkerasenginecompile_utils.py:204 __call__
loss_value = loss_obj(y_t, y_p, sample_weight=sw)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkeraslosses.py:155 __call__
losses = call_fn(y_true, y_pred)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkeraslosses.py:259 call **
return ag_fn(y_true, y_pred, **self._fn_kwargs)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonutildispatch.py:206 wrapper
return target(*args, **kwargs)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkeraslosses.py:1643 categorical_crossentropy
return backend.categorical_crossentropy(
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonutildispatch.py:206 wrapper
return target(*args, **kwargs)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonkerasbackend.py:4862 categorical_crossentropy
target.shape.assert_is_compatible_with(output.shape)
C:UsersMedRiAppDataRoamingPythonPython38site-packagestensorflowpythonframeworktensor_shape.py:1161 assert_is_compatible_with
raise ValueError("Shapes %s and %s are incompatible" % (self, other))
ValueError: Shapes (None, None) and (None, 224, 244, None) are incompatible