def predict(self, entrada): # Retorna saida basiado na entrada entrada = Matriz.matrizLinha(entrada) pesos_t = Matriz.transposta(self.pesos) soma = Matriz.mult(entrada, pesos_t) soma = Matriz.array(soma) soma[0] -= self.bias saida = Hebb(soma[0]) return saida
def predict(self, entrada): # Entrada -> Oculta entrada = Matriz.matriz(entrada) oculta = Matriz.mult(self.pesos_EO, entrada) oculta = Matriz.soma(oculta, self.bias_EO) oculta = Matriz.sigmoid(oculta) # Oculta -> Saida saida = Matriz.mult(self.pesos_OS, oculta) saida = Matriz.soma(saida, self.bias_OS) saida = Matriz.sigmoid(saida) saida = Matriz.array(saida) return saida
def treino(self, entrada, saidaFinal): # Verificando Resultado entrada = Matriz.matrizLinha(entrada) pesos_t = Matriz.transposta(self.pesos) soma = Matriz.mult(entrada, pesos_t) soma = Matriz.array(soma) soma[0] -= self.bias saida = Hebb(soma[0]) erro = False # Atualizando Pesos if (saida != saidaFinal): taxaErro = saidaFinal - saida delta = Matriz.mult_escalar(entrada, self.taxa * taxaErro) self.pesos = Matriz.soma(delta, self.pesos) self.bias += (taxaErro * self.taxa * -1) erro = True return erro