vectorization
[TIL] 210331 - Deep LearniNg (~C1W2L15)
이 글은... Andrew Ng 교수의 Deep Learning 강좌 C1W2L15 까지의 내용을 정리한 것이다. 로지스틱 회귀의 경사 계산을 벡터화해보고 NumPy의 브로드캐스팅 원리를 파악한다. 내용 요약 로지스틱 회귀의 경사 계산을 벡터화 하기 이전에 for 문을 이용한 경사 계산 pseudo 코드를 아래와 같이 적었었다. J = 0 dw_1 = 0 dw_2 = 0 b = 0 for i = 1 to m: z[i] = w_t * x[i] + b a[i] = sigmoid(z[i]) J += -(y_1 * log(a[i]) + (1 - y[i]) * log(1 - a[i])) dz[i] = a[i] - y[i] # 이곳에 for문 들어가게됨 dw_1 += x_1[i] * dz[i] dw_2 += x_2..
[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..