Ошибка отступа, когда кажется, что нет - PullRequest
0 голосов
/ 18 ноября 2018

Вы, я пытался запустить этот скрипт, но я получаю ошибку отступа в конце функции backprop (x, y). Я был бы очень признателен за любую помощь !!

import cPickle
import gzip

def load_data():

    f = gzip.open('mnist.pkl.gz', 'rb')
    training_data, validation_data, test_data = cPickle.load(f)
    f.close()
    return (training_data, validation_data, test_data)

import numpy as np

class Network(object):
    def __init__(self, layers):
        self.layers = layers
        self.biases = [np.random.randn(y,1) for y
                        in layers[1:]]
        self.weights = [np.transpose(np.random.randn(x,y))
                        for x,y
                        in zip(layers[:-1],layers[1:])]
        self.num_layers = len(layers)




    def backprop(self, x, y):
        nabla_b = [np.zeros(b.shape) for b in self.biases]
        nabla_w = [np.zeros(w.shape) for w in self.weights]
        # feedforward
        activation = x
        activations = [x] # list to store all the activations, layer by layer
        zs = [] # list to store all the z vectors, layer by layer
        for b, w in zip(self.biases, self.weights):
            z = np.dot(w, activation)+b
            zs.append(z)
            activation = sigmoid(z)
            activations.append(activation)
        # backward pass
        delta = self.cost_derivative(activations[-1], y) * \
            sigmoid_prime(zs[-1])#set first delta 
        nabla_b[-1] = delta#set last dC/db to delta vector 
        nabla_w[-1] = np.dot(delta, activations[-2].transpose())
        #calculate nabla_b, nabla_w for the rest of the layers
        for l in xrange(2, self.num_layers):
            z = zs[-l]
            sp = sigmoid_prime(z)   
            delta = np.dot(self.weights[-l+1].transpose(), delta) * sp
            nabla_b[-l] = delta
            nabla_w[-l] = np.dot(delta, activations[-l-1].transpose())
        #this is where python says there is an indent error!
        return (nabla_b, nabla_w)

1 Ответ

0 голосов
/ 21 ноября 2018

Проблема была решена путем выбора раскрывающегося меню «Редактировать» в Notepad ++, выбора «Пустые операции» и, наконец, нажатия «TAB to space»; очевидно, это следует делать после выбора части кода, которая вызывает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...