1
resposta

KeyError no final do ódigo

def propaga_uma_camada(Ativado_anterior, Pesos_atual, b_atual, ativacao='relu'): # Escreve a função de propagação das camadas ocultas
    Saida_atual = np.dot(Pesos_atual, Ativado_anterior) + b_atual # Multiplica as matrizes com o np.dot e soma com a matriz b

    if ativacao is 'relu':
        func_ativacao = relu
    elif ativacao is 'sigmoid':
        func_ativacao = sigmoide
    else: Exception ('Nao implementada ainda')
    return func_ativacao(Saida_atual), Saida_atual #Propaga essa rede apenas em uma camada

def propaga_total(x, valores_parametros, arquitetura):# Propaga para todas as camadas
    memoria = {}
    Ativado_atual = x
    for indice, camada in enumerate(arquitetura): # Seta o tamanho dos indices + 1
        indice_camada = indice + 1 

        Ativado_anterior = Ativado_atual
        func_ativacao_atual = camada['ativacao']
        Pesos_atual = valores_parametros['P' + str(indice_camada)]

        b_atual = valores_parametros['b' + str(indice_camada)]

        Ativado_atual, Saida_atual = propaga_uma_camada(Ativado_anterior, Pesos_atual, b_atual, func_ativacao_atual)

        memoria['A' + str(indice)]  = Ativado_anterior 
        memoria['Z' + str(indice_camada)] = Saida_atual 
        return Ativado_atual, memoria # Guarda as informações de ativação na variavel  

# Gerando os pesos
valores_parametros = inicia_camadas(arquitetura, seed=99)


y_estimado, memoria = propaga_total(np.transpose(x), valores_parametros, arquitetura)

Quando eu vou gerar a ultima linha do código, ele gera um Keyerror: P1. Como se ele não conseguisse achar o P1, eu imagino.

Como consertar? ou o que to fazendo errado?

1 resposta

Olá, Tales! Tudo tranquilo por aí?

Primeiramente gostaria de pedir desculpas pela demora em te retornar.

Efetuando os testes com base no seu código tudo ocorreu conforme esperado. Esse erro pode está acontecendo devido a algum erro em células anteriores. Você pode compartilhar o seu projeto com os notebooks conosco para analisarmos e sermos assertivos com a causa do erro.

Caso você queira comparar seu notebook com o apresentado em aula, pode fazer isso nesse link do github, acessando o arquivo da aula que você deseja.

Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.

:)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software