728x90
Vectorization (C1W2L11)
- 벡터화는 간단하게 코드에서 루프문을 없애주고, 큰 데이터를 학습 시 빠르게 만들어주며 매우 중요함.
무엇이 벡터화인가?
- 로지스틱 회귀 z = w^t x + b였으나 w와 b가 하나의 실수가 아니라 여러 개의 실수를 가진 벡터로 사용할 수 있음.
- 벡터로 처리시 루프문 없이 한번에 점곱 연산으로 곱샘 가능.
- CPU, GPU 둘다 병렬 처리 명령어를 가지고 있음.
- numpy는 병렬 처리 계산에 좋은 라이브러리
=> 가능한 루프문을 쓰지 말자
More Vectorization Examples (C1W2L12)
신경망 프로그래밍 가이드라인
- 지난 시간 벡터화를 통해서 루프를 사용하지 않았음. 가능한 루프를 명시적으로 쓰지말자
벡터와 행렬에 대한 함수
- 벡터, 행렬의 모든 원소에다가 지수 연산을 적용시켜보자.
- numpy로 루프문 없이 모든 원소에다가 한번에 할 수 있다.
로지스틱 회귀의 미분 계수를 구하기
- for 문을 제거하기 위해 아래 식의 dw1, dw2를 없에고 dw를 벡터로 만들어 계산하자.
- 이 과정으로 루프문 하나만 제거해도 좋지만 두 루프를 제거하여 더 성능을 높일수가 있었다.
300x250