About shape_invariants in for loop?

When I running the following code in model.fit mode, I get error:

ValueError: ‘context_vec’ has shape (None, 512) before the loop, but shape (None, None) after one iteration. Use tf.autograph.experimental.set_loop_options to set shape invariants.
But I check the ‘context_vec’ shape while loop using context_vec.shape, I can’t see any change of shape;
I also try to us [tf.autograph.experimental.set_loop_options] , but error occurs,


mel_outputs, attn_scores, stop_outputs = [], [], []

    for t in range(0, steps, 2):
       # tf.autograph.experimental.set_loop_options(shape_invariants=[(context_vec,tf.TensorShape([None,None]))])  # Try to set options like this, but no work and also error.

        prenet_in = m[:, :, t - 1] if t > 0 else go_frame
        mel_frames, scores, hidden_states, cell_states, context_vec, stop_tokens = self.decoder(encoder_seq, encoder_seq_proj, prenet_in,
        hidden_states, cell_states, context_vec, t, x)

        stop_outputs.extend([stop_tokens] * 2)

Anyone can help me about it? How to set shape_invariants correctly under model.fit with keras?