벡터화

    [TIL] 210406 - Deep LearniNg (~C1W3L05)

    [TIL] 210406 - Deep LearniNg (~C1W3L05)

    이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W3L05 까지의 내용을 정리한 것이다. 많은 입력 샘플에 대한 신경망 네트워크를 백터화 하는 방법을 설명합니다. 내용 요약 많은 샘플에 대한 벡터화 m개 샘플이 있을 때, for i in range(m): z_1[i] = W_1 * x[i] + b_1 a_1[i] = sigma(z_1[i]) z_2[i] = W_2 * a_1[i] + b_2 a_2[i] = sigma(z_2[i]) 이런 식으로 샘플을 순환하며 계산해야함을 알 수 있다. 당연히 for 문은 효율이 떨어지므로 벡터화하여 계산하는 것이 빠르다. 각각의 중요 벡터의 형태를 살펴보면 아래와 같다. 여기에 $W$ 벡터와 $b$ 벡터가 빠졌는데, $W$ 벡터의 형태는 (은닉 ..

    [TIL] 210330 - Deep LearniNg (~C1W2L13)

    이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L13 까지의 내용을 정리한 것이다. 벡터화가 무엇이고 어떻게 사용하는지 살펴본다. 내용 요약 벡터화 (Vectorization) 순차적으로 계산하는 것보다 동시에 분산해서 처리하는 것이 훨씬 빠른 결과를 낼 수 있다. 예시로든 코드를 직접 실행해보니 for 문은 약 600ms, 벡터화를 사용한 코드는 약 2ms의 시간이 걸렸다. import numpy as np import time a = np.random.rand(1000000) b = np.random.rand(1000000) tic = time.time() c = np.dot(a, b) toc = time.time() print(c) print("Vectorized ve..