'Load grayscale images into a keras model [in R] #Error in py_call_impl(callable, dots$args, dots$keywords)

I have been trying for ages now to import grayscale images into a keras model. Where I want to differentiate two different clones. For the start I adapted the simple model from: https://shirinsplayground.netlify.app/2018/06/keras_fruits/ to use for my data. I have the different clones save in folder named "CR1" and "CR6" in the seperate directions.

np_list <- c("CR1","CR6")

output_n <- length(np_list)
img_width <- 100;img_height <- 100

target_size <- c(img_width, img_height)

channels <- 1
implementig images
 train_data_gen <- image_data_generator(rescale = 1/255);valid_data_gen <- image_data_generator(rescale = 1/255)  

train_image_array_gen <- flow_images_from_directory(train_dir,
    train_data_gen ,
    target_size = target_size,
    class_mode = "binary",
    classes=np_list,
    color_mode = "grayscale")

valid_image_array_gen <- flow_images_from_directory(valid_dir,
   valid_data_gen,
   target_size =target_size,
   class_mode = "binary",
   classes=np_list,
   color_mode = "grayscale")

valid_image_array_gen$image_shape

[[1]] [1] 100 [[2]] [1] 100 [[3]] [1] 1

initialize model
model <- keras_model_sequential()

model %>%
  layer_conv_2d(filter = 32, kernel_size = c(3,3), padding = "same", input_shape = c(img_width, img_height,channels)) %>%
  layer_activation("relu") %>%

layer_conv_2d(filter = 16, kernel_size = c(3,3), padding = "same") %>%
    layer_activation_leaky_relu(0.5) %>%

layer_batch_normalization() %>%  
    layer_max_pooling_2d() %>%
    layer_dropout(0.25) %>%

layer_flatten() %>%
    layer_dense(100) %>%
    layer_activation("relu") %>%

layer_dropout(0.5) %>%
    layer_dense(output_n) %>% 
    layer_activation("sigmoid")


model %>% compile(
    loss = "binary_crossentropy",
    optimizer = optimizer_rmsprop(learning_rate = 0.0001),
    metrics = "accuracy")

hist <- model %>% fit_generator(
train_image_array_gen,
steps_per_epoch = 10, 
epochs =50, 
validation_data = valid_image_array_gen,
validation_steps = 10
)

Error in py_call_impl(callable, dots$args, dots$keywords) : ValueError: in user code: File "C:\Users\Ruben\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py", line 1021, in train_function * return step_function(self, iterator) File "C:\Users\Ruben\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py", line 1010, in step_function ** outputs = model.distribute_strategy.run(run_step, args=(data,)) File "C:\Users\Ruben\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py", line 1000, in run_step ** outputs = model.train_step(data) File "C:\Users\Ruben\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py", line 860, in train_step loss = self.compute_loss(x, y, y_pred, sample_weight) File "C:\Users\Ruben\AppData\Local\R-MINI~1\envs\R-RETI~1\lib\site-packages\keras\engine\training.py", line 918, in compute_loss return self.compiled_loss( File "C:\Users\Ruben\AppData
In addition: Warning message: In fit_generator(., train_image_array_gen, steps_per_epoch = 10,

As far as I know it is an issue with the format but I don't know where it could be. Any idea or hint what it could be would be very much appreciated, because I am pretty lost now. Thanks!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source