CNN: Assignment 3 :value error

ValueError: Operands could not be broadcast together with shapes (1, 1, 6) (4, 4, 3)


ValueError Traceback (most recent call last)
in
8 X = np.concatenate((X1, X2, X3), axis = 0).astype(np.float32)
9
—> 10 A = convolutional_block(X, f = 2, filters = [2, 4, 6], training=False)
11
12 assert type(A) == EagerTensor, “Use only tensorflow and keras functions”

in convolutional_block(X, f, filters, s, training, initializer)
55 tf.shape(X)
56 tf.shape(X_shortcut)
—> 57 X = Add()([X, X_shortcut])
58 X = Activation(‘relu’)(X)
59

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py in call(self, *args, **kwargs)
980 with ops.name_scope_v2(name_scope):
981 if not self.built:
→ 982 self._maybe_build(inputs)
983
984 with ops.enable_auto_cast_variables(self._compute_dtype_object):

/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)
110 else:
111 shape = input_shape[i][1:]
→ 112 output_shape = self._compute_elemwise_op_output_shape(output_shape, shape)
113 # If the inputs have different ranks, we have to reshape them
114 # to make them broadcastable.

/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/layers/merge.py in _compute_elemwise_op_output_shape(self, shape1, shape2)
83 raise ValueError(
84 'Operands could not be broadcast ’
—> 85 'together with shapes ’ + str(shape1) + ’ ’ + str(shape2))
86 output_shape.append(i)
87 return tuple(output_shape)

ValueError: Operands could not be broadcast together with shapes (1, 1, 6) (4, 4, 3)

Hi Abhinav_laxman,

What I would suggest is that you look again carefully at what the components of both the main path and the shortcut path are, as described under 3.2, and make necessary adjustments to your code. If this does not work out in the end, feel free to post again so that we can have a look what is going on.

Good luck!

Hey Abhinav, Where you able to solve the problem? I’m getting the same error and stuck.

Could you let me know how you solved the problem?

Thanks