Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[인공지능] 인공지능 라이브러리 정리 본문

연구 Research/인공지능 Artificial Intelligent

[인공지능] 인공지능 라이브러리 정리

보통의공대생 2023. 8. 24. 11:47

 

MATLAB을 제외하고 인공지능 툴을 쓸 수 있는 환경은 대부분 파이썬이다. 그런데 파이썬만 있다고 끝나는 것이 아니라 인공지능 라이브러리를 동반해야 한다.

 

나는 Tensorflow2, Keras, PyTorch, JAX 까지 다 써보고 현재는 Julia도 고려하는 중이다. (Tensorflow1은 써봤는데 불편하기도 하고 그 때는 2가 막 활발해지던 시점이라서 그냥 넘겼다.)

 

철저히 개인적인 경험을 바탕으로 작성하는 것이라서 연구 쪽에 초점이 맞춰져있고, 그걸 감안하고 보면 될 것이다.

혹시 실무를 하시는 분들이 있으면 본인의 경험을 공유해주시면 정말 좋을 것 같다.

 

아래가 내용을 정리한 표

 


Tensorflow Keras PyTorch JAX Julia
특징 Google에서 시작 프랑소와 숄레가 창시한 언어 객체지향형 프로그래밍 방식
페이스북에서 시작
Google에서 시작한 함수형 프로그래밍 방식 MIT에서 만든 함수형 프로그래밍 언어
장점
-(version2로 넘어오면서) 구현 난이도가 낮아 쉽게 인공지능 구현 가능
-이용자가 많아 자료도 많음 (여러 교육자료에서 대부분 쓰이는 라이브러리)
-수많은 함수를 제공해줌으로써 구현 난이도가 낮아 쉽게 인공지능 구현 가능
-Keras와 Tensorflow가 서로 연동되면서 구현하기가 훨씬 좋아짐
-객체지향 프로그래밍 덕분에 자율성이 높아 연구 코드에 많이 활용됨
-다른 연구자들도 많이 사용하는 방식이어서 깃헙에서 가져와 쓰기 좋음
-압도적으로 빠른 학습 속도
-Numpy와 바로 호환되므로 번거롭지 않음
-직접 만든 알고리즘을 테스트하기 좋음
-아직 안 써봐서 모름
단점 - 케라스와 마찬가지로 직접 만든 알고리즘을 구현하기에는 아쉬움이 있음 - 본인이 직접 알고리즘을 만들어서 구현하기가 까다로운 편
-tensor라는 데이터 형식을 사용하기 때문에 numpy array와 전환할 때 따로 처리해야함
-객체지향 프로그래밍이 익숙하지 않으면 구현 난이도가 높음
-Linux에서만 제공함 (2023.08 기준) / 윈도우에서 쓰려면 우회방법을 사용
-새로운 코드 방식이므로 구현할 때 어려움
-빠른 속도를 위해 GPU 메모리를 모두 잡아먹음
-아직 안 써봐서 모름
-이용자가 적어서 자료가 적음
책 / 공부자료 머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로 케라스 창시자에게 배우는 딥러닝, 프랑소와 숄레 지음, 길벗 출판사 PyTorch 공식홈페이지 tutorial JAX 공식 문서 tutorial 권창현 교수님의 책

 

 

Comments