NLP C3 W2 Assignment model training failure

When creating a post, please add:


I am passing all the unit tests but getting a failure when training the model.
The provided code for

tf.keras.utils.set_random_seed(33) ## Setting again a random seed to ensure reproducibility

          validation_data = val_dataset.batch(BATCH_SIZE),
          epochs = 2)

The error:

Epoch 1/2
ValueError                                Traceback (most recent call last)
Cell In[114], line 5
      1 tf.keras.utils.set_random_seed(33) ## Setting again a random seed to ensure reproducibility
      3 BATCH_SIZE = 64
----> 5,
      6           validation_data = val_dataset.batch(BATCH_SIZE),
      7           shuffle=True,
      8           epochs = 2)

File /usr/local/lib/python3.8/dist-packages/keras/src/utils/, 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 /tmp/, 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 "/usr/local/lib/python3.8/dist-packages/keras/src/engine/", line 1338, in train_function  *
        return step_function(self, iterator)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/", line 1322, in step_function  **
        outputs =, args=(data,))
    File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/", line 1303, in run_step  **
        outputs = model.train_step(data)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/", line 1085, in train_step
        return self.compute_metrics(x, y, y_pred, sample_weight)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/", line 1179, in compute_metrics
        self.compiled_metrics.update_state(y, y_pred, sample_weight)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/", line 605, in update_state
        metric_obj.update_state(y_t, y_p, sample_weight=mask)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/utils/", line 77, in decorated
        update_op = update_state_fn(*args, **kwargs)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/metrics/", line 140, in update_state_fn
        return ag_update_state(*args, **kwargs)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/metrics/", line 728, in update_state  **
        return super().update_state(matches, sample_weight=sample_weight)
    File "/usr/local/lib/python3.8/dist-packages/keras/src/metrics/", line 504, in update_state
        ) = losses_utils.squeeze_or_expand_dimensions(
    File "/usr/local/lib/python3.8/dist-packages/keras/src/utils/", line 224, in squeeze_or_expand_dimensions
        sample_weight = tf.squeeze(sample_weight, [-1])

    ValueError: Can not squeeze dim[1], expected a dimension of 1, got 104 for '{{node Squeeze}} = Squeeze[T=DT_FLOAT, squeeze_dims=[-1]](Cast_7)' with input shapes: [?,104].

BTW, I’m getting 0/10 points for the masked_accuracy test when submitted the notebook, so maybe I need to fix it? I’m passing all the given unit tests though. If there’s any guidance on this, I would really appreciate it!


I was putting a wrong argument for tf.reduce_sum in the masked_accuracy, and it solved the both model training issue & the masked_accuracy points.