Превратите активные узлы в изображение - PullRequest
1 голос
/ 09 апреля 2020

Я тестирую NN на одном изображении и получаю метку '2' вместо '1'. Как я могу визуализировать как изображение то, что видит NN? Я хотел бы визуально сравнить тестовое изображение ниже с тем, что видит NN.

Тестовое изображение:

test image

Сеть

class Network():
    def __init__(self, inn, hidd, outt, lr):
        self.InNodes = inn
        self.HiddenNodes = hidd
        self.OutNodes = outt
        self.LearningRate = lr
        self.wih = numpy.random.normal(0.0, pow(self.InNodes,-0.5), (self.HiddenNodes,self.InNodes))
        self.woh = numpy.random.normal(0.0, pow(self.OutNodes,-0.5), (self.OutNodes,self.HiddenNodes))
        pass

    def train(self, inputs_list, targets_list):
        inputs = numpy.array(inputs_list, ndmin=2).T
        targets = numpy.array(targets_list, ndmin=2).T

        hidden_inputs = numpy.dot(self.wih, inputs)
        hidden_outputs = sigmoid(hidden_inputs)

        self.final_inputs = numpy.dot(self.woh, hidden_outputs)
        self.final_outputs = sigmoid(self.final_inputs)

        output_errors = targets - self.final_outputs
        hidden_errors = numpy.dot(self.woh.T, output_errors)

        self.woh = self.woh + self.LearningRate * numpy.dot((output_errors * self.final_outputs * (1 - self.final_outputs)), numpy.transpose(hidden_outputs))
        self.wih = self.wih + self.LearningRate * numpy.dot((hidden_errors * hidden_outputs * (1 - hidden_outputs)), numpy.transpose(inputs))

    def query(self, inputs_list):
        inputs = numpy.array(inputs_list, ndmin=2).T

        hidden_inputs = numpy.dot(self.wih, inputs)
        print('wih shape = ', hidden_inputs.shape, self.wih.shape)
        hidden_outputs = sigmoid(hidden_inputs)

        self.final_inputs = numpy.dot(self.woh, hidden_outputs)
        print('woh shape = ', self.final_inputs.shape, self.woh.shape)
        self.final_outputs = sigmoid(self.final_inputs)

        return self.final_outputs

def sigmoid(z):
    """The sigmoid function."""
    return 1.0/(1.0+numpy.exp(-z))

Тренировка

import mnist_loader
training_data, validation_data, test_data = mnist_loader.load_data_wrapper()

input_nodes = 784
hidden_nodes = 10
output_nodes = 10
learning = 0.1

Net = Network(input_nodes, hidden_nodes, output_nodes, learning)

img_array = imageio.imread(r"\IMG\output-onlinepngtools.png", as_gray=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...