Conv_net Week 3 Assignment 2 CNN Course

pls help me to debug this error.
ValueError Traceback (most recent call last)
in
4 num_channels = 3
5
----> 6 unet = unet_model((img_height, img_width, num_channels))
7 comparator(summary(unet), outputs.unet_model_output)

in unet_model(input_size, n_filters, n_classes)
30 # Use the cblock5[0] as expansive_input and cblock4[1] as contractive_input and n_filters * 8
31 ### START CODE HERE
—> 32 ublock6 = upsampling_block(cblock5[0], cblock4[1], n_filters*8)
33 # Chain the output of the previous block as expansive_input and the corresponding contractive block output.
34 # Note that you must use the second element of the contractive block i.e before the maxpooling layer.

in upsampling_block(expansive_input, contractive_input, n_filters)
21
22 # Merge the previous output and the contractive_input
—> 23 merge = concatenate([up, contractive_input], axis=3)
24 conv = Conv2D(n_filters, # Number of filters
25 3, # Kernel size

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py in concatenate(inputs, axis, **kwargs)
929 A tensor, the concatenation of the inputs alongside axis axis.
930 “”"
→ 931 return Concatenate(axis=axis, **kwargs)(inputs)
932
933

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py in call(self, *args, **kwargs)
924 if _in_functional_construction_mode(self, inputs, args, kwargs, input_list):
925 return self._functional_construction_call(inputs, args, kwargs,
→ 926 input_list)
927
928 # Maintains info about the Layer.call stack.

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py in _functional_construction_call(self, inputs, args, kwargs, input_list)
1096 # Build layer if applicable (if the build method has been
1097 # overridden).
→ 1098 self._maybe_build(inputs)
1099 cast_inputs = self._maybe_cast_inputs(inputs, input_list)
1100

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py in _maybe_build(self, inputs)
2641 # operations.
2642 with tf_utils.maybe_init_scope(self):
→ 2643 self.build(input_shapes) # pylint:disable=not-callable
2644 # We must set also ensure that the layer is marked as built, and the build
2645 # shape is stored since user defined build functions may not be calling

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/utils/tf_utils.py in wrapper(instance, input_shape)
321 if input_shape is not None:
322 input_shape = convert_shapes(input_shape, to_tuples=True)
→ 323 output_shape = fn(instance, input_shape)
324 # Return shapes from fn as TensorShapes.
325 if output_shape is not None:

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py in build(self, input_shape)
517 shape[axis] for shape in shape_set if shape[axis] is not None)
518 if len(unique_dims) > 1:
→ 519 raise ValueError(err_msg)
520
521 def _merge_function(self, inputs):

ValueError: A Concatenate layer requires inputs with matching shapes except for the concat axis. Got inputs shapes: [(None, 24, 32, 256), (None, 12, 16, 256)]

Can you check if you’ve used the correct input for cblock5?

i’ve used this
[code removed] for cblock and ublock.
which is correct for me.
But, there some problem as its showing error for it.

Check with the earlier cblocks and the comment above cblock2 as to what input you’d have to use. your ublock seems fine. (I’ll also be removing the code you posted)

According to me you are indicating towards the use of first element in the cblock and the first element is [0] and I also tried with [1] but its still giving error
cblock2 = conv_block(cblock1[1/0], n_filters*2)

I think all your earlier ones were fine, no need to change them to 1, which are skip connections for the later part of the network. The error you’re having is due to the input you’ve used for cblock5.

it would be really helpful if you point out the correct mistake
i.e. what I have done and what needs to be there instead.