ValueError: Shapes (None, 8) and (None, 7) are incompatible for Eye Disease Recognition System

23 Views Asked by At

I am working on a Eye Disease Recognition system using Deep Learning Models and facing some errors I am using the Kaggle ODIR Challenge 2019 Dataset for my project

I am getting athe ValueError for Shapes not being compatible Error is as follows

ValueError                                Traceback (most recent call last)
Cell In[10], line 2
      1 # Training
----> 2 history = model.fit(
      3     training_generator,
      4     steps_per_epoch=1,
      5     epochs=EPOCHS,
      6     validation_data=validation_generator,
      7     validation_steps=1,
      8     verbose=1,
      9     callbacks = [early_stopping])

File ~\anaconda3\Lib\site-packages\keras\src\utils\traceback_utils.py:70, in filter_traceback.<locals>.error_handler(*args, **kwargs)
     67     filtered_tb = _process_traceback_frames(e.__traceback__)
     68     # To get the full stack trace, call:
     69     # `tf.debugging.disable_traceback_filtering()`
---> 70     raise e.with_traceback(filtered_tb) from None
     71 finally:
     72     del filtered_tb

File ~\AppData\Local\Temp\__autograph_generated_filephnikqi7.py:15, in outer_factory.<locals>.inner_factory.<locals>.tf__train_function(iterator)
     13 try:
     14     do_return = True
---> 15     retval_ = ag__.converted_call(ag__.ld(step_function), (ag__.ld(self), ag__.ld(iterator)), None, fscope)
     16 except:
     17     do_return = False

ValueError: in user code:

    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\engine\training.py", line 1401, in train_function  *
        return step_function(self, iterator)
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\engine\training.py", line 1384, in step_function  **
        outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\engine\training.py", line 1373, in run_step  **
        outputs = model.train_step(data)
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\engine\training.py", line 1151, in train_step
        loss = self.compute_loss(x, y, y_pred, sample_weight)
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\engine\training.py", line 1209, in compute_loss
        return self.compiled_loss(
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\engine\compile_utils.py", line 277, in __call__
        loss_value = loss_obj(y_t, y_p, sample_weight=sw)
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\losses.py", line 143, in __call__
        losses = call_fn(y_true, y_pred)
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\losses.py", line 270, in call  **
        return ag_fn(y_true, y_pred, **self._fn_kwargs)
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\losses.py", line 2221, in categorical_crossentropy
        return backend.categorical_crossentropy(
    File "C:\Users\sarth\anaconda3\Lib\site-packages\keras\src\backend.py", line 5573, in categorical_crossentropy
        target.shape.assert_is_compatible_with(output.shape)

    ValueError: Shapes (None, 8) and (None, 7) are incompatible

The relevant code is

model = Sequential()

model.add(Rescaling(1./255, input_shape=input_shape))

model.add(pretrained)

model.add(Flatten())
model.add(Dense(256, activation='relu'))

model.add(Dense(256, activation='relu'))
#model.add(Dropout(0.2))

model.add(Dense(7))
model.add(Activation('softmax'))

model.summary()

Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 rescaling (Rescaling)       (None, 264, 264, 3)       0         
                                                                 
 resnet50 (Functional)       (None, None, None, 2048   23587712  
                             )                                   
                                                                 
 flatten (Flatten)           (None, 165888)            0         
                                                                 
 dense (Dense)               (None, 256)               42467584  
                                                                 
 dense_1 (Dense)             (None, 256)               65792     
                                                                 
 dense_2 (Dense)             (None, 7)                 1799      
                                                                 
 activation (Activation)     (None, 7)                 0         
                                                                 
=================================================================
Total params: 66122887 (252.24 MB)
Trainable params: 66069767 (252.04 MB)
Non-trainable params: 53120 (207.50 KB)

patience = 50

early_stopping = EarlyStopping(monitor='loss', patience=patience, restore_best_weights=True)
pretrained.trainable = False

model.compile(loss='categorical_crossentropy', loss_weights=weights,
            optimizer=Adam(learning_rate=0.001),
            metrics=['accuracy'])
history = model.fit(
    training_generator,
    steps_per_epoch=1,
    epochs=EPOCHS,
    validation_data=validation_generator,
    validation_steps=1,
    verbose=1,
    callbacks = [early_stopping])

Expected output is Epochs for Training and Validation process

0

There are 0 best solutions below