Course 5 week 1 assignment 2 exercise 4

I am getting this error message when I run my code of exercise 4 (DLS course 5 week 1 assignment 2). Could someone please explain what’s wrong? Thanks


IndexError Traceback (most recent call last)
in
----> 1 parameters, last_name = model(data.split("\n"), ix_to_char, char_to_ix, 22001, verbose = True)
2
3 assert last_name == ‘Trodonosaurus\n’, “Wrong expected output”
4 print("\033[92mAll tests passed!")

in model(data_x, ix_to_char, char_to_ix, num_iterations, n_a, dino_names, vocab_size, verbose)
65 # Perform one optimization step: Forward-prop → Backward-prop → Clip → Update parameters
66 # Choose a learning rate of 0.01
—> 67 curr_loss, gradients, a_prev = optimize(X, Y, a_prev,parameters, learning_rate = 0.01)
68
69 ### END CODE HERE ###

in optimize(X, Y, a_prev, parameters, learning_rate)
32
33 # Forward propagate through time (≈1 line)
—> 34 loss, cache = rnn_forward(X, Y, a_prev, parameters)
35
36 # Backpropagate through time (≈1 line)

~/work/W1A2/utils.py in rnn_forward(X, Y, a0, parameters, vocab_size)
94 x[t] = np.zeros((vocab_size,1))
95 if (X[t] != None):
—> 96 x[t][X[t]] = 1
97
98 # Run one step forward of the RNN

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

1 Like

The error means that in optimize() when you call rnn_forward(), either X, Y, a_prev, or parameters have incorrect values.

Since those values come from the model() function, the problem could also be there.

I got the same error and thanks to hint from TMosh I figured it out. What’s funny is this is a subtle bug that causes RNN forward to blow up before you get to the debug output that would have helped you. :slight_smile:

Look at what X & Y are set to in the test for optimize - the code block just after the optimize function that surely passed its unit-tests, thus making an explosion in a utility function quite perplexing.

Then look at your assignment to X in model…

1 Like