Redes neuronales multicapa

En este ejercicio, escribirás código para realizar la propagación hacia delante de una red neuronal con 2 capas ocultas. Cada capa oculta tiene dos nodos. Los datos de entrada se han precargado como input_data. Los nodos de la primera capa oculta se denominan node_0_0 y node_0_1. Sus pesos están precargados como weights['node_0_0'] y weights['node_0_1'] respectivamente.

Los nodos de la segunda capa oculta se llaman node_1_0 y node_1_1. Sus pesos están precargados como weights['node_1_0'] y weights['node_1_1'] respectivamente.

A continuación, creamos una salida del modelo a partir de los nodos ocultos utilizando pesos precargados como weights['output'].

Ch1Ex10

Este ejercicio forma parte del curso

Introducción al Aprendizaje Profundo en Python

Ver curso

Instrucciones de ejercicio

  • Calcula node_0_0_input utilizando sus ponderaciones weights['node_0_0'] y la dada input_data. A continuación, aplica la función relu() para obtener node_0_0_output.
  • Haz lo mismo que en node_0_1_input para obtener node_0_1_output.
  • Calcula node_1_0_input utilizando sus pesos weights['node_1_0'] y las salidas de la primera capa oculta - hidden_0_outputs. A continuación, aplica la función relu() para obtener node_1_0_output.
  • Haz lo mismo que en node_1_1_input para obtener node_1_1_output.
  • Calcula model_output utilizando sus pesos weights['output'] y las salidas de la matriz de la segunda capa oculta hidden_1_outputs. No apliques la función relu() a esta salida.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

def predict_with_network(input_data):
    # Calculate node 0 in the first hidden layer
    node_0_0_input = (____ * ____).sum()
    node_0_0_output = relu(____)

    # Calculate node 1 in the first hidden layer
    node_0_1_input = ____
    node_0_1_output = ____

    # Put node values into array: hidden_0_outputs
    hidden_0_outputs = np.array([node_0_0_output, node_0_1_output])
    
    # Calculate node 0 in the second hidden layer
    node_1_0_input = ____
    node_1_0_output = ____

    # Calculate node 1 in the second hidden layer
    node_1_1_input = ____
    node_1_1_output = ____

    # Put node values into array: hidden_1_outputs
    hidden_1_outputs = np.array([node_1_0_output, node_1_1_output])

    # Calculate model output: model_output
    model_output = ____
    
    # Return model_output
    return(model_output)

output = predict_with_network(input_data)
print(output)