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?