deep-learning-with-python-notebooks icon indicating copy to clipboard operation
deep-learning-with-python-notebooks copied to clipboard

Bug on code for k-fold cross val

Open jboverio opened this issue 1 year ago • 2 comments

This code (k-fold cross val) misses a parenthesis on np.concatenate:

'''k = 3 num_validation_samples = len(data) // k np.random.shuffle(data) validation_scores = [] for fold in range(k): validation_data = data[num_validation_samples * fold: ❶ num_validation_samples * (fold + 1)] ❶ training_data = np.concatenate( ❷ data[:num_validation_samples * fold], ❷ data[num_validation_samples * (fold + 1):]) ❷ model = get_model() ❸ model.fit(training_data, ...) validation_score = model.evaluate(validation_data, ...) validation_scores.append(validation_score) validation_score = np.average(validation_scores) ❹ model = get_model() ❺ model.fit(data, ...) ❺ test_score = model.evaluate(test_data, ...) '''

The previous code (held out validation) was correct, the k-fold code misses a "(" and ")", the correct code should look like:

'''training_data = np.concatenate( ( ❷ data[:num_validation_samples * fold], ❷ data[num_validation_samples * (fold + 1):]) ) ❷'''

As documentation for np.concatenate states:

'''a = np.array([[1, 2], [3, 4]]) b = np.array([[5, 6]]) p.concatenate((a, b), axis=None)'''

Kind regards

jboverio avatar Jun 01 '23 14:06 jboverio