Course 5 Week 1 Assignment 3 Exercise 2

I am unable to complete exercise 2 of week 1. I keep getting .

WARNING:tensorflow:Functional inputs must come from tf.keras.Input (thus holding past layer metadata), they cannot be the output of a previous non-Input layer. Here, a tensor specified as input to “functional_2” was not an Input tensor, it was generated by layer repeat_vector_49.
Note that input tensors are instantiated via tensor = tf.keras.Input(shape).
The tensor that caused the issue was: repeat_vector_49/Tile:0
WARNING:tensorflow:Functional inputs must come from tf.keras.Input (thus holding past layer metadata), they cannot be the output of a previous non-Input layer. Here, a tensor specified as input to “functional_2” was not an Input tensor, it was generated by layer lstm.
Note that input tensors are instantiated via tensor = tf.keras.Input(shape).
The tensor that caused the issue was: lstm/PartitionedCall_79:0
WARNING:tensorflow:Functional inputs must come from tf.keras.Input (thus holding past layer metadata), they cannot be the output of a previous non-Input layer. Here, a tensor specified as input to “functional_2” was not an Input tensor, it was generated by layer lstm.
Note that input tensors are instantiated via tensor = tf.keras.Input(shape).
The tensor that caused the issue was: lstm/PartitionedCall_79:3

AssertionError Traceback (most recent call last)
in
----> 1 inference_model = music_inference_model(LSTM_cell, densor, Ty = 50)

in music_inference_model(LSTM_cell, densor, Ty)
56
57 # Step 3: Create model instance with the correct “inputs” and “outputs” (≈1 line)
—> 58 inference_model = Model(inputs=[x, a, c], outputs=outputs)
59
60 ### END CODE HERE ###

/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/training.py in new(cls, *args, **kwargs)
240 # Functional model
241 from tensorflow.python.keras.engine import functional # pylint: disable=g-import-not-at-top
→ 242 return functional.Functional(*args, **kwargs)
243 else:
244 return super(Model, cls).new(cls, *args, **kwargs)

/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/tracking/base.py in _method_wrapper(self, *args, **kwargs)
455 self._self_setattr_tracking = False # pylint: disable=protected-access
456 try:
→ 457 result = method(self, *args, **kwargs)
458 finally:
459 self._self_setattr_tracking = previous_value # pylint: disable=protected-access

/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/functional.py in init(self, inputs, outputs, name, trainable)
113 # ‘arguments during initialization. Got an unexpected argument:’)
114 super(Functional, self).init(name=name, trainable=trainable)
→ 115 self._init_graph_network(inputs, outputs)
116
117 @trackable.no_automatic_dependency_tracking

/opt/conda/lib/python3.7/site-packages/tensorflow/python/training/tracking/base.py in _method_wrapper(self, *args, **kwargs)
455 self._self_setattr_tracking = False # pylint: disable=protected-access
456 try:
→ 457 result = method(self, *args, **kwargs)
458 finally:
459 self._self_setattr_tracking = previous_value # pylint: disable=protected-access

/opt/conda/lib/python3.7/site-packages/tensorflow/python/keras/engine/functional.py in _init_graph_network(self, inputs, outputs)
182 # It’s supposed to be an input layer, so only one node
183 # and one tensor output.
→ 184 assert node_index == 0
185 assert tensor_index == 0
186 self._input_layers.append(layer)

AssertionError:

One problem is with the “inputs” values you are passing to the Model().
‘a’ and ‘c’ are not the initial states. They’re the final states.

What does initial state and final state mean?

The initial states are the input values that you pass in to start the model. The final state is the end result after running the model. With those points in mind, please read through the instructions in this section again carefully and it should make sense. As one hint, they tend to use zero in the names of the initial values, as in a0. :nerd_face:

1 Like