InvalidArgumentError with model.fit in Tensorflow

Viewed 1627

Image classification with CNN. When the model.fit() is called, it starts to train the model for a while and is interrupted in the middle of execution and returns an error message.

Error message as below

InvalidArgumentError: 2 root error(s) found.
  (0) Invalid argument:  Input size should match (header_size + row_size * abs_height) but they differ by 2
     [[{{node decode_image/DecodeImage}}]]
     [[IteratorGetNext]]
     [[IteratorGetNext/_4]]
  (1) Invalid argument:  Input size should match (header_size + row_size * abs_height) but they differ by 2
     [[{{node decode_image/DecodeImage}}]]
     [[IteratorGetNext]]
0 successful operations.
0 derived errors ignored. [Op:__inference_train_function_8873]

Function call stack:
train_function -> train_function

Update: My suggestion is to check the metadata of the dataset. It helped to fix my problem.

2 Answers

You have not to specified the parameter label_mode . In order to use SparseCategoricalCrossentropy as the loss function you need to set it to int. If you do not specify it then it is set to None as per the documentation.

You need to also specify the parameter labels to be the inferred based on the structure of the directory that you read the images from.

train_ds = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir,
  labels="inferred",
  label_mode="int",
  validation_split=0.2,
  subset="training",
  seed=123,
  image_size=(img_height, img_width),
  batch_size=batch_size)
  
val_ds = tf.keras.preprocessing.image_dataset_from_directory(
  data_dir,
  labels="inferred",
  label_mode="int",
  validation_split=0.2,
  subset="validation",
  seed=123,
  image_size=(img_height, img_width),
  batch_size=batch_size)

I have just answered a very similar question in another thread. In fact, the underlying issue might be exactly the same. It contains an elaborate explanation of what is going on at least in my case. Long story short, one possible reason that I proved to be correct is corrupted JPEG files.

Related