Ошибка "Error in eval(expr, envir, enclos): ValueError: Asked to retrieve element 0, but the Sequence has length 0" при обучении модели нейронной сети

Возникает ошибка при запуске модели обучения нейронной сети для апскейла изображений из 1280x720 в 1920x1080, не могу понять ее причину. Нейросеть написана на R, используется библиотека Keras.

Ошибка:

Warning message in fit_generator(., train_generator, steps_per_epoch = 315, epochs = 20, :
“`fit_generator` is deprecated. Use `fit` instead, it now accept generators.”
Error in eval(expr, envir, enclos): ValueError: Asked to retrieve element 0, but the Sequence has length 0

Traceback:

1. model %>% fit_generator(train_generator, steps_per_epoch = 315, 
 .     epochs = 20, validation_data = valid_generator, validation_steps = 315)
2. fit_generator(., train_generator, steps_per_epoch = 315, epochs = 20, 
 .     validation_data = valid_generator, validation_steps = 315)
3. do.call(fit, args)
4. (function (object, ...) 
 . {
 .     UseMethod("fit")
 . })(object = structure(function (object, ...) 
 . {
 .     compose_layer(object, x, ...)
 . }, class = c("keras.engine.sequential.Sequential", "keras.engine.functional.Functional", 
 . "keras.engine.training.Model", "keras.engine.base_layer.Layer", 
 . "tensorflow.python.module.module.Module", "tensorflow.python.trackable.autotrackable.AutoTrackable", 
 . "tensorflow.python.trackable.base.Trackable", "keras.utils.version_utils.LayerVersionSelector", 
 . "keras.utils.version_utils.ModelVersionSelector", "python.builtin.object"
 . ), py_object = <environment>), x = <environment>, steps_per_epoch = 315, 
 .     epochs = 20, verbose = 1, callbacks = NULL, validation_data = <environment>, 
 .     validation_steps = 315, class_weight = NULL, max_queue_size = 10, 
 .     workers = 1, initial_epoch = 0)
5. fit.keras.engine.training.Model(object = structure(function (object, 
 .     ...) 
 . {
 .     compose_layer(object, x, ...)
 . }, class = c("keras.engine.sequential.Sequential", "keras.engine.functional.Functional", 
 . "keras.engine.training.Model", "keras.engine.base_layer.Layer", 
 . "tensorflow.python.module.module.Module", "tensorflow.python.trackable.autotrackable.AutoTrackable", 
 . "tensorflow.python.trackable.base.Trackable", "keras.utils.version_utils.LayerVersionSelector", 
 . "keras.utils.version_utils.ModelVersionSelector", "python.builtin.object"
 . ), py_object = <environment>), x = <environment>, steps_per_epoch = 315, 
 .     epochs = 20, verbose = 1, callbacks = NULL, validation_data = <environment>, 
 .     validation_steps = 315, class_weight = NULL, max_queue_size = 10, 
 .     workers = 1, initial_epoch = 0)
6. do.call(object$fit, args)
7. (structure(function (...) 
 . {
 .     dots <- py_resolve_dots(list(...))
 .     result <- py_call_impl(callable, dots$args, dots$keywords)
 .     if (convert) 
 .         result <- py_to_r(result)
 .     if (is.null(result)) 
 .         invisible(result)
 .     else result
 . }, class = c("python.builtin.method", "python.builtin.object"
 . ), py_object = <environment>))(batch_size = NULL, epochs = 20L, 
 .     verbose = 1L, validation_split = 0, shuffle = TRUE, class_weight = NULL, 
 .     sample_weight = NULL, initial_epoch = 0L, x = <environment>, 
 .     validation_data = <environment>, steps_per_epoch = 315L, 
 .     validation_steps = 315L, callbacks = list(<environment>))
8. py_call_impl(callable, dots$args, dots$keywords)

Код:

 # загрузка библиотеки для машинного обучения Keras
    install.packages("keras")
    library(keras)
    
    # Определение модели
    model <- keras_model_sequential()

# Добавление слоев
model %>% 
  layer_conv_2d(filters = 64, kernel_size = c(3, 3), padding = "same", activation = "relu", input_shape = c(720, 1280, 3)) %>%
  layer_upsampling_2d(size = c(2, 2)) %>%
  layer_conv_2d(filters = 64, kernel_size = c(3, 3), padding = "same", activation = "relu") %>%
  layer_upsampling_2d(size = c(2, 2)) %>%
  layer_conv_2d(filters = 32, kernel_size = c(3, 3), padding = "same", activation = "relu") %>%
  layer_upsampling_2d(size = c(2, 2)) %>%
  layer_conv_2d(filters = 16, kernel_size = c(3, 3), padding = "same", activation = "relu") %>%
  layer_upsampling_2d(size = c(2, 2)) %>%
  layer_conv_2d(filters = 3, kernel_size = c(3, 3), padding = "same", activation = "relu") 
 
# Компиляция модели
model %>% compile(
  loss = "mean_squared_error",
  optimizer = optimizer_adam(lr = 0.0005),
  metrics = c("mean_absolute_error")
)

# Загрузка данных
train_data_gen <- image_data_generator(rescale = 1/255)
train_generator <- flow_images_from_directory(
  "/content/data/dataset_images_hd",
  target_size = c(1280, 720),
  class_mode = NULL,
  batch_size = 32
)

valid_data_gen <- image_data_generator(rescale = 1/255)
valid_generator <- flow_images_from_directory(
  "/content/data/dataset_images_fullhd",
  target_size = c(1920, 1080),
  class_mode = NULL,
  batch_size = 32
)

# Обучение модели
history <- model %>% fit_generator(
  train_generator,
  steps_per_epoch = 315,
  epochs = 20,
  validation_data = valid_generator,
  validation_steps = 315
)

Ответы (0 шт):