learning_rates = [1e-7, 5e-7, 1e-6, 5e-6] regularization_strengths = [5e4, 1e5, 5e5, 1e6, 5e6] ################################################################################ # TODO: # # Use the validation set to set the learning rate and regularization strength. # # Save the best trained softmax classifer in best_softmax. # ################################################################################ ns = SoftmaxClassifier() max_iters = 8000 tol = 1e-4 for bs in batch_sizes: for lr in learning_rates: for rs in regularization_strengths: iterations = ns.train(X_train, y_train, lr, rs, max_iters, bs, tol, verbose=True)[0] ta = np.mean(y_train == ns.predict(X_train)) va = np.mean(y_val == ns.predict(X_val)) results[bs, lr, rs] = (iterations, ta, va) if va > best_val: best_val = va best_bs = bs best_it = iterations best_lr = lr best_reg = rs best_softmax = ns print "\t---- FINISHED batch size: %e learning rate: %e reg: %e------" % (bs, lr, rs) ################################################################################ # END OF YOUR CODE # ################################################################################