16_Alexnet
ILSVRC(Imagenet Large Scale Visual Recognition Challenge, 이미지넷 이미지 인식 경진대회) 2012년 1위로 우승함. 캐나다 토론토 대학
Alexnet Structure
AlexNet Structure
LeNet5 Structure
GPU 병렬구조 분산처리
LeNet5와 비교하여 가장 다른 점은 멀티 GPU를 사용하 점이다.
처음 컨볼루션에서 96개의 필터를 사용한다. GPU 1에서 48개의 필터를 사용하고, GPU 2에서 48개의 필터를 사용한다.
과연, 지피유를 많이 쓰는게 좋은걸까? 그럼 얼만큼 써야하고 어떻게 써야하는가? 사례들..
Data Parallelism
tf.keras.utils.multi_gpu_model 를 사용하면, 모델이 사용가능한 지피유에 복제가 되어 데이터 배치를 지피유 수만큼 나누어 수행하므로 연산속도가 빨라짐.
MiniGoogLeNet on the CIFAR-10 | a single GPU | multi-GPU |
epoch | 63 secs | 16 secs |
total training time | 74m10s | 19m3s |
Model Parallelism
...
CPU는 직렬 연산 방식으로 명령어를 한번에 하나씩 순서대로 처리하는 방식 , ALU가 많을 필요가 없다 (ALU적고, 캐쉬메모리 큼) 반면 GPU는 병렬 처리방식으로 ALU가 많다.
CPU는 고정소수점, GPU는 부동소수점, 즉 표현할 수 있는 수가 더 넓다.
Alexnet이 나온 2012년, 가장 빠른 NVIDIA GTX580 모델이었다. 3GB의 한정적인 메모리 자원으로 96개의 피처를 컬러와 연관된 피처 48개와 컬러와 무관한 피처 48개를 각각 다른 지피유에 할당하여, 학습시키었으며, 한 개의 지피유를 사용하였을 때보다 top-1 top-5 에러를 각각 1.7% 1.2% 절감하였다고 말한다.
하지만 이후 연구자들은 지피유를 위 아래로 나누는 구조를 찾아볼 수 었다.
연산을 나누어서 한다.
속도가 빠르다.
활성화함수의 선택
연산이 빠르다
렐루가 다른것보다 왜 좋은지 눈에 보여라
같은 정확도를 보이면서 하이퍼볼릭 탄젠트보다 6배 빠름? 왜?
그라디언트가 0이하인경우 leaky relu
http://paulrichmond.shef.ac.uk/teaching/COM4521/index_2018/
-multigpu
https://lambdalabs.com/blog/introduction-multi-gpu-multi-node-distributed-training-nccl-2-0/ https://jhui.github.io/2017/03/07/TensorFlow-GPU/ https://leimao.github.io/blog/Data-Parallelism-vs-Model-Paralelism/ https://medium.com/daangn/pytorch-multi-gpu-%ED%95%99%EC%8A%B5-%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%95%98%EA%B8%B0-27270617936b
https://timdettmers.com/2014/10/09/deep-learning-data-parallelism/
Last updated