본문 바로가기
딥러닝/cs231n

8. Deep Learning Software

by sonysame 2024. 4. 29.

1. CPU vs GPU

- GPU는 NVIDIA

- GPU는 Matrix Multiplication에 강함!

- CPU는 GPU보다 훨씬 적은 수의 코어가 있지만, CPU코어가 더 빠름

- GPU는 개별적인 RAM을 갖고 있음.

- 실제 모델과 가중치는 GPU RAM에 저장되어 있고, train data는 컴퓨터 저장장치에 저장되어 있기 때문에, data를 가져오는데에 시간이 많이 걸린다
-> 해결을 위해 데이터 작으면 RAM에 넣어놓고, HDD보다는 SDD를 사용하고, CPU 다중 스레드를 이용해서 데이터를 RAM에 미리 pre-fetching

 

Programming GPU -> CUDA, OpenCL, Udacity

cuDNN을 사용한 CUDA가 매우 강력함

 

2. Deep Learning Frameworks(TensorFlow & PyTorch!)

gradient 계산을 쉽게 하기 위해서 프레임워크는 필수적이다!

 

numpy는 GPU에서 실행되지 않음

 

1) TensorFlow(Google)

computational graph를 먼저 정의하고 -> graph를 여러번 실행시킴

2) PyTorch(Facebook)

Autograd 기능이 있음

Dynamic Graph(Recurrent networks, Recursive networks에 유용)
-> forward pass할 때마다 새로운 그래프를 구성하므로 코드가 깔끔해진다. 

Visdom이라는 시각화툴을 사용할 수 있음

 

3) Caffe2

Model Zoo를 사용할 수 있음

iOS/Android 프로젝트에 좋음

 

'딥러닝 > cs231n' 카테고리의 다른 글

10. Recurrent Neural Networks  (0) 2024.05.06
9. CNN Architectures  (0) 2024.05.05
7. Training Neural Networks 2  (0) 2024.04.29
6. Training Neural Networks 1  (0) 2024.04.08
5. Convolutional Neural Networks  (0) 2024.04.08