Python: ошибка «ожидается блок с отступом» после цикла for в конце документа - PullRequest
1 голос
/ 14 мая 2019

Я знаю, что здесь есть несколько похожих вопросов, но, пожалуйста, оставайтесь здесь со мной на секунду. Я знаю, как работает отступ в python, но следующая проблема ставит меня в тупик.

Рассмотрим следующий код:

# Plot with mnist plot
for sel_err in sel_error:
    plot_mnist(x_test[sel_err], y_pred[sel_err], labels=labels[i], k_plots=10, prefix='Predicted class')

Это даст мне следующую ошибку: Ошибка ожидаемого блока с отступом

Однако, если я добавлю что-то не связанное с кодом без изменения отступа, это будет работать. Следующий код не даст мне никаких ошибок:

# Plot with mnist plot
for sel_err in sel_error:
    plot_mnist(x_test[sel_err], y_pred[sel_err], labels=labels[i], k_plots=10, prefix='Predicted class')
    print("hello world")  

Могу добавить, что оба примера кода находятся в самом конце документа, однако я позаботился о том, чтобы после кода не было скрытых вкладок или чего-либо подобного. Любая идея, почему я получаю эту ошибку здесь?

EDIT:

Вот полный код метода для проверки:

def ex_3_b(x_train, y_train, x_test, y_test):
    """
    Solution for exercise 3 b)
    :param x_train: Training samples (2-dimensional)
    :param y_train: Training labels
    :param x_test: Testing samples (2-dimensional)
    :param y_test: Testing labels
    :return:
    """

    labels = range(1, 6)

    clfLin = svm.SVC(decision_function_shape='ovr', kernel='linear', C=10.0)
    clfLin.fit(x_train, y_train)
    y_pred = clfLin.predict(x_test);
    confusion_mat = confusion_matrix(y_test,y_pred,labels)
    print(np.matrix(confusion_mat))
    plot_confusion_matrix(confusion_mat, labels)

    # Numpy indices to select images that are misclassified.
    sel_error = np.where(y_test != y_pred)
    # should be the label number corresponding the largest classification errors
    i = 3
    # Plot with mnist plot
    for sel_err in sel_error:
        plot_mnist(x_test[sel_err], y_pred[sel_err], labels=labels[i], k_plots=10, prefix='Predicted class')

И какое-то странное поведение, которое я обнаружил во время отладки. Как кажется, переменная sel_error вызывает некоторые проблемы: enter image description here enter image description here Я на самом деле не совсем уверен, что здесь происходит, отладчик видит дополнительную переменную? (Примечание: курсор помещен в переменную sel_error на обоих изображениях.)

...