logo

줄리아의 여러가지 딥러닝 프레임워크 📂머신러닝

줄리아의 여러가지 딥러닝 프레임워크

개요

  • 마지막 수정 날짜: 2022년 11월 22일

줄리아의 대표적인 딥러닝 프레임워크로는 Flux.jl이 있다. 이와 함께 또 다른 프레임워크인 Knet.jlLux.jl를 간단히 소개한다.

설명

Flux[플럭스]

줄리아의 공식적인 딥러닝 프레임워크다. GraphNeuralNetworks.jlSciML의 여러 패키지가 플럭스를 기반으로 구현되어있다. Flux의 파이나 기능은 아직까지는 텐서플로우, 파이토치에 부족하지만 시간이 지나면 언젠가 저 둘과 비비게 될 지도 모른다. 도큐멘테이션만 봐도 처음에는 부실하고 쓸모 없는 수준이었지만, 시간이 지날수록 점점 나아지고 있다.

그런데 사실 플럭스의 약점은 도큐멘테이션이나 적은 유저가 아니다. 당연히 둘 다 우수하면 좋지만, 연구자의 입장에서는 어차피 남이 해놓은 것만 보고 쓸 수는 없고 스스로 공부해서 사용해야한다. 개인적으로 이보다는 아직까지2022-11-22 mutating array를 지원하지 않는다는 점이 가장 큰 단점으로 다가온다. 이는 원하는 작업을 구현하기 힘들게 만들며, 아래에서 소개할 두 프레임워크도 해당되는 점이다.

Knet[케이넷]

한국이랑 관련 없다. Koç 대학에서 구현하였다. 튜토리얼, 도큐멘테이션, 예제, 벤치마크가 잘 정리되어 있다는 것이 큰 장점이다. 이 점 때문에 처음 배우는 입장이라면 Flux보다 Knet이 더 좋을 수 있겠다는 생각도 든다.

Lux

컴파일러와 자동미분에 친화적이고, pure functions으로만 구현된 딥러닝 프레임워크이다. 홈페이지의 설명을 읽어봐도 위의 두 프레임워크에 대비되는 장점이 잘 와닿지는 않는다. 이름으로나 설명으로나 Flux와 같이 사용하기를 권장하는 것 같다.