이 포스터는 제가 공부하는 내용이므로 참고용으로만 봐주시면 감사하겠습니다.
요즘 운동을 열심히 하고있다. 살도 많이 찌우려고 노력중이다. 나중에 사회에 나갔을 때 지금의 내가 놀랐으면 좋겠다.(필자는 지금 군대에 있음)
하루종일 일과, 운동, 공부만 하니까 지루하긴 하지만 나름 알차게 보내고 있는 것 같다.
Numpy는 파이썬이 전통적인 머신러닝을 가능하게 했던 기반이다. 그중에서도 Numpy array가 특히 그렇다.(ndarray)
ndarray는 배열과 비슷하게 생겼다. 다만 ndarray는 선형대수학 연산을 급속도로 빠르게 해준다. 우리가 아는 행렬연산처럼 데이터를 행렬로 입력받아 단번에 곱하거나 더하는 등 연산을 진행하는 것이다.
Tensor는 ndarray와 논리적으로 같은 개념이다. CPU냐 GPU냐가 가장 큰 차이가 아닐까 싶다. 전통적인 머신러닝은 CPU로도 가능했고, Numpy array로도 데이터를 계산하는데 큰 무리가 없었던 모양이다.
하지만 딥러닝에서는 연산량이 대폭 증가한다. Weight가 기하급수적으로 많아지므로 기존의 SIMD연산과 CPU로는 역부족이었기에 딥러닝에 좀더 최적화된 Tensor가 나왔다.(아마 그런것 같다..?)
Tensor는 미분과 같은 연산을 빠르게 가능해지게 만들어준다. 그래서 딥러닝에 최적화 되어있다.
내 생각에 GPU호환 유무정도로 둘의 차이를 정의할 수 있을 것 같다.(연산에도 차이가 많다.) ndarray와 tensor의 호환은 꽤나 자유로운 편이니 각자의 강점을 잘 살리면서 코딩을 하는게 중요한 것 같다. 실제로 딥러닝 알고리즘도 데이터를 ndarray로 바꾸었다가 tensor로 바꾸었다가 하니까 말이다.