Exercise URL: Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera
Hello. I’m struggling to identify the source of a certain shapes mismatch that is making my notebook crash in the section 4.4 (Training the model).
When I run the cell with the call to model.fit
, I get the following error and stacktrace:
Epoch 1/2
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[35], line 5
1 tf.keras.utils.set_random_seed(33) ## Setting again a random seed to ensure reproducibility
3 BATCH_SIZE = 64
----> 5 model.fit(train_dataset.batch(BATCH_SIZE),
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/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 /tmp/__autograph_generated_file7xungrif.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 "/usr/local/lib/python3.8/dist-packages/keras/src/engine/training.py", line 1338, in train_function *
return step_function(self, iterator)
File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/training.py", line 1322, in step_function **
outputs = model.distribute_strategy.run(run_step, args=(data,))
File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/training.py", line 1303, in run_step **
outputs = model.train_step(data)
File "/usr/local/lib/python3.8/dist-packages/keras/src/engine/training.py", 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/training.py", 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/compile_utils.py", 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/metrics_utils.py", line 77, in decorated
update_op = update_state_fn(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/keras/src/metrics/base_metric.py", line 140, in update_state_fn
return ag_update_state(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/keras/src/metrics/base_metric.py", 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/base_metric.py", line 504, in update_state
) = losses_utils.squeeze_or_expand_dimensions(
File "/usr/local/lib/python3.8/dist-packages/keras/src/utils/losses_utils.py", 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].
All previous cells executed without noticeable/visible problems, including all the unit tests… and so far I was unable to pinpoint where I could have passed the wrong dimensions or axis values so that it would fail “only” at the model.fit
step and not before.
Thank you for your attention.