Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[연구] SciML 분야 라이브러리 기록 본문

연구 Research/인공지능 Artificial Intelligent

[연구] SciML 분야 라이브러리 기록

보통의공대생 2024. 3. 11. 19:13

 

물리기반 인공지능 관련해서 접근성을 높이기 위한 여러 라이브러리가 있다.

보통은 코드를 직접 작성하는게 낫지만 빨리 테스트해보고 싶을 때는 라이브러리가 도움이 많이 되기 때문에 저장한다.

 

 

 

1. Python - PyTorch

 

1.1. TorchDiffeq

Neural ode 창시자인 Chen이 배포한 코드 : https://github.com/rtqichen/torchdiffeq

 

1.2. DeepXDE

Arxiv에 올라와있는 http://arxiv.org/abs/1907.04502에서 더 많은 정보를 얻을 수 있다.

(논문 정보 L. Lu, X. Meng, Z. Mao, and G. E. Karniadakis, “DeepXDE: A deep learning library for solving differential equations,” Jul. 2019, doi: 10.1137/19M1274067.)

 

PINN과 같은 알고리즘을 주도하는 Karniadakis 연구실에서 만든 라이브러리로 기본적인 PINN, DeepONet 등의 코드를 제공한다.

 

 

 

2. Python - JAX

 

2.1. Diffrax & Equinox

 

JAX 기반으로 만든 Neural ODE를 비롯한 여러 Continuous neural model을 구현한 라이브러리가 diffrax이다. Equinox는 동일한 contributor가 만든 신경망 모델 라이브러리다.

 

https://docs.kidger.site/diffrax/

 

Diffrax

Diffrax in a nutshell Diffrax is a JAX-based library providing numerical differential equation solvers. Features include: ODE/SDE/CDE (ordinary/stochastic/controlled) solvers; lots of different solvers (including Tsit5, Dopri8, symplectic solvers, implicit

docs.kidger.site

 

이 코드를 쓸 때는 다음 Arxiv를 인용해달라고 한다. (https://arxiv.org/abs/2202.02435)

 

PINN을 위한 JAX 라이브러리는 없지만 PyTorch 코드에서 JAX 문법에 맞게 바꾸면 가능하다.

 

3. Julia

 

SciML이라는 커뮤니티가 있는데 여기서 라이브러리를 만들어서 배포하고 있다.

 

웹사이트 : https://sciml.ai/

 

SciML: Open Source Software for Scientific Machine Learning

Open Source Software for Scientific Machine Learning

sciml.ai

 

아직 Julia를 공부 중이라 써보지는 못했다.

Comments