시작하기무료로 시작하기

다층 신경망

이번 연습 문제에서는 은닉층이 2개인 신경망에 대해 forward propagation 코드를 작성해 보겠습니다. 각 은닉층에는 노드가 두 개씩 있습니다. 입력 데이터는 input_data로 미리 로드되어 있어요. 첫 번째 은닉층의 노드는 node_0_0node_0_1이며, 각 노드의 가중치는 각각 weights['node_0_0'], weights['node_0_1']로 미리 로드되어 있습니다.

두 번째 은닉층의 노드는 node_1_0node_1_1이며, 각 노드의 가중치는 각각 weights['node_1_0'], weights['node_1_1']로 미리 로드되어 있습니다.

그다음 미리 로드된 weights['output'] 가중치를 사용해 은닉 노드들로부터 모델 출력을 만듭니다.

Ch1Ex10

이 연습은 강의의 일부입니다

Python으로 시작하는 Deep Learning

강의 보기

연습 안내

  • 주어진 input_data와 가중치 weights['node_0_0']를 사용해 node_0_0_input을 계산하고, 이어서 relu() 함수를 적용해 node_0_0_output을 구하세요.
  • 위와 같은 방식으로 node_0_1_input을 계산해 node_0_1_output을 구하세요.
  • 첫 번째 은닉층의 출력 hidden_0_outputs와 가중치 weights['node_1_0']를 사용해 node_1_0_input을 계산한 뒤, relu() 함수를 적용해 node_1_0_output을 구하세요.
  • 위와 같은 방식으로 node_1_1_input을 계산해 node_1_1_output을 구하세요.
  • 두 번째 은닉층의 출력 배열 hidden_1_outputs와 가중치 weights['output']를 사용해 model_output을 계산하세요. 이 출력에는 relu() 함수를 적용하지 마세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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)
코드 편집 및 실행