#python #python-3.x #sys
#python #python-3.x #sys
Вопрос:
У меня есть немного кода, который сообщает результат оптимизации CV и гиперпараметров. Я пытаюсь распечатать результаты в файл. Файл создается, но результаты там не печатаются. Он также не выводит их на терминал. Что не так?
def report(results, n_top=3):
original_stdout = sys.stdout
with open('filename.txt', 'w') as f:
sys.stdout = f
for i in range(1, n_top 1):
candidates = np.flatnonzero(results['rank_test_score'] == i)
for candidate in candidates:
print("Model with rank: {0}".format(i))
print("Mean validation score: {0:.3f} (std: {1:.3f})".format(
results['mean_test_score'][candidate],
results['std_test_score'][candidate]))
print("Parameters: {0}".format(results['params'][candidate]))
print("")
sys.stdout = original_stdout
report(gs.cv_results_,10)
Комментарии:
1. Можете ли вы предоставить образец результатов массива?
2. Ваш первый
for
цикл присваивает одну и ту же переменную (candidates
) каждый раз, перезаписывая все, что было назначено в предыдущих итерациях цикла. Остается только значение последней итерации, и, по-видимому, это была пустая последовательность, в результате чего второйfor
цикл выполнялся ноль раз. Похоже, что второйfor
цикл должен был иметь отступ на один уровень дальше, чтобы он выполнялся для каждой итерации первого цикла.