Deepxde
DeepXDE adalah perpustakaan untuk pembelajaran mesin ilmiah dan pembelajaran informasi fisika. DeepXDE Termasuk algoritma berikut:
- Neural Network (PINN) yang diinformasikan fisika
- Memecahkan masalah yang berbeda
- Memecahkan persamaan diferensial biasa/parsial terbalik (ODES/PDES) [Siam Rev.]
- Memecahkan persamaan integro-diferensial ke depan/terbalik (IDES) [Siam Rev.]
- FPINN: Memecahkan PDE fraksional maju/terbalik (FPDES) [Siam J. Sci. Komputasi
- NN-Arbitrary Polinomial Chaos (NN-APC): Memecahkan PDE stokastik maju/terbalik (SPDES) [J. Komputasi Phys.]
- Pinn dengan Hard Constraints (HPINN): Memecahkan Desain Terbalik/Optimalisasi Topologi [Siam J. Sci. Komputasi
- Meningkatkan akurasi pinn
- Pengambilan sampel adaptif berbasis residual [Siam Rev., Comput. Metode Appl. Mech. Eng.]
- pinn yang ditingkatkan gradien (gpinn) [comput. Metode Appl. Mech. Eng.]
- Pinn dengan fitur Fourier multi-skala [Comput. Metode Appl. Mech. Eng.]
- Slide, video, video dalam bahasa Cina
- (Fisika-informasi) Jaringan operator dalam (Deeponet)
- Deeponet: Operator Belajar [Nat. Mach. Intell.]
- Ekstensi Deeponet, misalnya, pod-deeponet [Comput. Metode Appl. Mech. Eng.]
- Mionet: Mempelajari operator multi-input [Siam J. Sci. Komputasi
- Fourier-Deeponet [Comput. Metode Appl. Mech. Eng.], Fourier-mionet [arxiv]
- Deeponet-Informasi Fisika [SCI. Adv.]
- Multifidelity Deeponet [Phys. Rev. Research]
- DeepM & MNET: Memecahkan Multiphisika dan Masalah Multiskale [J. Komputasi Phys., J. Comput. Phys.]
- Ekstrapolasi yang andal [Comput. Metode Appl. Mech. Eng.]
- Multifidelity Neural Network (MFNN)
- Belajar dari data multifidelity [J. Komputasi Phys., PNAS]
DeepXDE mendukung lima pustaka tensor sebagai backends: TensorFlow 1.x ( tensorflow.compat.v1 di TensorFlow 2.x), TensorFlow 2.x, Pytorch, Jax, dan Paddlepaddle. Untuk cara memilih satu, lihat bekerja dengan backend yang berbeda.
Dokumentasi : Readthedocs




Fitur
DeepXDE telah menerapkan banyak algoritma seperti yang ditunjukkan di atas dan mendukung banyak fitur:
- Memungkinkan kode pengguna menjadi kompak, menyerupai formulasi matematika dengan cermat.
- Geometri domain yang kompleks tanpa generasi tirani mesh. Geometri primitif adalah interval, segitiga, persegi panjang, poligon, disk, elips, berbentuk bintang, kuboid, bola, hypercube, dan hipersphere. Geometri lain dapat dibangun sebagai geometri padat konstruktif (CSG) menggunakan tiga operasi boolean: persatuan, perbedaan, dan persimpangan. DeepXDE juga mendukung geometri yang diwakili oleh titik awan.
- 5 Jenis Kondisi Batas (BCS): Dirichlet, Neumann, Robin, Periodik, dan BC umum, yang dapat didefinisikan pada domain sewenang -wenang atau pada set titik; dan perkiraan fungsi jarak untuk kendala keras .
- 3 Metode diferensiasi otomatis (AD) untuk menghitung turunan: mode terbalik (yaitu, backpropagation), mode maju, dan nol koordinat shift (ZCS).
- Jaringan saraf yang berbeda: jaringan saraf yang terhubung sepenuhnya (FNN), FNN bertumpuk, jaringan saraf residual, jaringan fitur fourier multi-skala (spatio-temporal), dll.
- Banyak metode pengambilan sampel : seragam, pseudorandom, pengambilan sampel hypercube Latin, urutan halton, urutan Hammersley, dan urutan sobol. Poin pelatihan dapat menjaga hal yang sama selama pelatihan atau di -resampled (secara adaptif) setiap iterasi tertentu.
- 4 Fungsi Spaces : Power Series, Chebyshev Polinomial, Gaussian Random Field (1D/2D).
- Pelatihan data-paralel pada beberapa GPU.
- Pengoptimal yang berbeda: Adam, L-BFGS, dll.
- Simpan dengan mudah model selama pelatihan, dan muat model yang terlatih.
- Callbacks untuk memantau keadaan internal dan statistik model selama pelatihan: berhenti awal, dll.
- Kuantifikasi Ketidakpastian Menggunakan Dropout.
- float16 , float32 , dan float64 .
- Banyak fitur berguna lainnya: kerugian (tertimbang) yang berbeda, jadwal laju pembelajaran, metrik, dll.
Semua komponen DeepXDE secara longgar digabungkan, dan dengan demikian DeepXDE terstruktur dengan baik dan sangat dapat dikonfigurasi. Mudah untuk menyesuaikan DeepXDE untuk memenuhi tuntutan baru.
Instalasi
DeepXDE membutuhkan salah satu dependensi spesifik backend berikut untuk diinstal:
- TensorFlow 1.x: TensorFlow> = 2.7.0
- TensorFlow 2.x: TensorFlow> = 2.3.0, Probabilitas TensorFlow> = 0.11.0
- Pytorch: Pytorch> = 1.9.0
- Jax: Jax, Flax, Optax
- Paddlepaddle: Paddlepaddle> = 2.6.0
Kemudian, Anda dapat menginstal DeepXDe sendiri.
- Instal versi stabil dengan
pip :
- Instal versi stabil dengan
conda :
$ conda install -c conda-forge deepxde
- Untuk pengembang, Anda harus mengkloning folder ke mesin lokal Anda dan meletakkannya bersama dengan skrip proyek Anda.
$ git clone https://github.com/lululxvi/deepxde.git
Jelajahi lebih banyak
- Instal dan Siapkan
- Demo perkiraan fungsi
- Demo masalah ke depan
- Demo masalah terbalik
- Demo pembelajaran operator
- FAQ
- Makalah penelitian menggunakan deepxDe
- API
Mengutip DeepXde
Jika Anda menggunakan DeepXDE untuk penelitian akademik, Anda didorong untuk mengutip makalah berikut:
@article{lu2021deepxde,
author = {Lu, Lu and Meng, Xuhui and Mao, Zhiping and Karniadakis, George Em},
title = {{DeepXDE}: A deep learning library for solving differential equations},
journal = {SIAM Review},
volume = {63},
number = {1},
pages = {208-228},
year = {2021},
doi = {10.1137/19M1274067}
}
Berkontribusi pada DeepXDE
Pertama, terima kasih telah meluangkan waktu untuk berkontribusi!
- Melaporkan bug. Untuk melaporkan bug, cukup buka masalah dalam masalah GitHub.
- Menyarankan peningkatan. Untuk mengirimkan saran peningkatan untuk DeepXDE, termasuk fitur yang benar -benar baru dan peningkatan kecil pada fungsionalitas yang ada, beri tahu kami dengan membuka masalah dalam masalah GitHub.
- Tarik permintaan. Jika Anda melakukan perbaikan pada DeepXDe, memperbaiki bug, atau memiliki contoh baru, jangan ragu untuk mengirimi kami permintaan tarik.
- Mengajukan pertanyaan. Untuk mendapatkan bantuan tentang cara menggunakan DeepXDe atau fungsinya, Anda dapat membuka diskusi dalam diskusi GitHub.
- Menjawab pertanyaan. Jika Anda tahu jawaban atas pertanyaan apa pun dalam diskusi, Anda disambut untuk menjawab.
Kendur. DeepXDE Slack menjadi tuan rumah audiens utama pengguna dan pengembang DeepXDE moderat hingga berpengalaman untuk obrolan umum, diskusi online, kolaborasi, dll. Jika Anda memerlukan undangan Slack, silakan kirim saya email.
Tim
DeepXDE dikembangkan oleh Lu Lu di bawah pengawasan Prof. George Karniadakis di Brown University dari musim panas 2018 hingga 2020. Deepxde awalnya di-host sendiri di Subversion di Brown University, dengan nama Sciconet (Scientific Computing Neural Networks). Pada 7 Februari 2019, Sciconet dipindahkan dari subversi ke GitHub, berganti nama menjadi DeepXDE.
DeepXDE saat ini dikelola oleh Lu Lu di Universitas Yale dengan kontribusi besar yang berasal dari banyak orang berbakat dalam berbagai bentuk dan sarana. Daftar yang tidak lengkap tetapi berkembang perlu disebutkan: Paul Escapil-Inchauspé, Zongren Zou, Jialin Li, Saransh Chopra, Sensen He, Vladimir Dudenkov, Anran Jiao, Zhongyi Jiang, Shunyuan Mao.
Lisensi
Lisensi LGPL-2.1