Deepxde
Deepxde-это библиотека для научного машинного обучения и физического обучения. DeepXDE включает в себя следующие алгоритмы:
- Физико-информированная нейронная сеть (PINN)
- Решение различных проблем
- Решение вперед/обратные обычные/частичные дифференциальные уравнения (ODES/PDE) [Siam Rev.]
- Решение вперед/обратные интеграционные уравнения (IDES) [Siam Rev.]
- FPINN: Решение вперед/обратные фракционные PDE (FPDES) [Siam J. Sci. Компьютер.]
- Nn-arbitrary полиномиальный хаос (NN-APC): решение вперед/обратные стохастические PDE (SPDE) [J. Вычислительный Phys.]
- PINN с жесткими ограничениями (HPINN): Решение обратной оптимизации/топологии [Siam J. Sci. Компьютер.]
- Повышение точности PINN
- Остаточная адаптивная выборка [Siam Rev., Comput. Методы Appl. Мех Англ.]
- Увеличенный градиент PINN (GPINN) [Comput. Методы Appl. Мех Англ.]
- Pinn с многомасштабными функциями Фурье [Comput. Методы Appl. Мех Англ.]
- Слайды, видео, видео на китайском языке
- (физическая информирована) Глубокая сеть операторов (DeboOnet)
- Deeponet: Операторы обучения [Nat. Маха Intell.]
- Deeponet Extensions, например, Pod-Dieponet [Comput. Методы Appl. Мех Англ.]
- Мионет: изучение операторов с несколькими входами [Siam J. Sci. Компьютер.]
- Фурье-дипонет [Comput. Методы Appl. Мех Энг.], Фурье-Мионет [arxiv]
- Физико-информированная Deeponet [Sci. Adv.]
- Multifidetility Deeponet [Phys. Rev. Research]
- Deepm & Mnet: решение многофизики и многократных проблем [J. Вычислительный Phys., J. Comput. Phys.]
- Надежная экстраполяция [Comput. Методы Appl. Мех Англ.]
- Нейронная сеть мультифиделей (MFNN)
- Изучение данных о многофидутивности [J. Вычислительный Phys., PNA]
DeepXDE поддерживает пять тензоров библиотеки в качестве бэкэндов: Tensorflow 1.x ( tensorflow.compat.v1 в Tensorflow 2.x), Tensorflow 2.x, Pytorch, Jax и PaddlePaddle. Чтобы выбрать один, см. Работа с разными бэкэнами.
Документация : Readthedocs




Функции
DeepXDE внедрил много алгоритмов, как показано выше, и поддерживает множество функций:
- Позволяет компактному коду пользователя, очень похож на математическую формулировку.
- Сложная геометрия домена без генерации сетки тирании. Примитивными геометриями являются интервал, треугольник, прямоугольник, многоугольник, диск, эллипс, звездный, кубоид, сфера, гиперкуб и гиперсфер. Другие геометрии могут быть построены в качестве конструктивной твердой геометрии (CSG) с использованием трех логических операций: объединение, разница и пересечение. Deepxde также поддерживает геометрию, представленную облаком точек.
- 5 типов граничных условий (BCS): Dirichlet, Neumann, Robin, периодический и общий BC, который может быть определен на произвольном домене или на точечном наборе; и приблизительные функции расстояния для жестких ограничений .
- 3 Методы автоматической дифференциации (AD) для вычисления производных: режим обратного (т.е., обратный процесс), режим вперед и ноль координат (ZCS).
- Различные нейронные сети : полностью подключенная нейронная сеть (FNN), сложенная FNN, остаточная нейронная сеть, (пространственно-временная) многомасштабные функции Фурье и т. Д.
- Многие методы отбора проб : однородная, псевдорандома, выборка латинского гиперкуба, последовательность Halton, последовательность Хаммерсли и последовательность Sobol. Обучающие точки могут сохранять то же самое во время тренировки или быть повторно (адаптивно) каждые определенные итерации.
- 4 функциональных пространства : серия мощности, полиномиальная часть Chebyshev, Gaussian Random Field (1d/2d).
- Данные параллельные обучение по нескольким графическим процессорам.
- Различные оптимизаторы : Адам, L-BFGS и т. Д.
- Удобно сохранить модель во время обучения и загрузить обученную модель.
- обратные вызовы для мониторинга внутренних состояний и статистики модели во время обучения: ранняя остановка и т. Д.
- Количественное определение неопределенности с использованием отсева.
- float16 , float32 и float64 .
- Многие другие полезные функции: различные (взвешенные) потери, графики скорости обучения, метрики и т. Д.
Все компоненты DeepXDE слабо связаны, и, таким образом, DeepXDE хорошо структурирован и высоко настраивается. Легко настроить DeepXDE, чтобы удовлетворить новые требования.
Установка
DeepXDE требует установки одной из следующих зависимостей, специфичных для бэкэнд:
- Tensorflow 1.x: TensorFlow> = 2,7,0
- TensorFlow 2.x: TensorFlow> = 2.3.0, вероятность TensorFlow> = 0,11,0
- Pytorch: Pytorch> = 1.9.0
- JAX: JAX, льна, Optax
- PaddlePaddle: PaddlePaddle> = 2,6,0
Затем вы можете установить сам DeepXDE.
- Установите стабильную версию с
pip :
- Установите стабильную версию с
conda :
$ conda install -c conda-forge deepxde
- Для разработчиков вы должны клонировать папку на локальную машину и установить ее вместе со своими сценариями проекта.
$ git clone https://github.com/lululxvi/deepxde.git
Изучите больше
- Установите и настройку
- Демо, приближение функции
- Демоверсии прямого
- Демоверсии обратных проблем
- Демо, обучение операторов
- Часто задаваемые вопросы
- Исследовательские работы использовали Deacxde
- API
Цитировать Deepxde
Если вы используете DeepXDE для академических исследований, вам рекомендуется цитировать следующую статью:
@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}
}
Вклад в DeepXDE
Во -первых, спасибо, что нашли время внести свой вклад!
- Сообщать об ошибках. Чтобы сообщить об ошибке, просто откройте проблему в вопросах GitHub.
- Предполагая усовершенствования. Чтобы представить предложение о улучшении для DeepXDE, включая совершенно новые функции и незначительные улучшения существующей функции, дайте нам знать, открыв проблему в вопросах GitHub.
- Получить запросы. Если вы внесли улучшения в DeepXDE, исправили ошибку или имели новый пример, не стесняйтесь отправлять нам запрос.
- Задавать вопросы. Чтобы получить помощь в том, как использовать DeacxDe или его функциональные возможности, вы можете открыть обсуждение в дискуссиях GitHub.
- Отвечая на вопросы. Если вы знаете ответ на любой вопрос в дискуссиях, вы должны ответить.
Пролечить Deepxde Slack проводит основную аудиторию от пользователей и разработчиков Deepxde для общего чата, онлайн -дискуссий, сотрудничества и т. Д. Если вам нужно Slack Invite, пришлите мне электронное письмо.
Команда
Deepxde был разработан Лу Лу под руководством профессора Джорджа Каррнакиса в Университете Брауна с лета 2018 по 2020 год. Deepxde первоначально был самостоятельно в подрывной деятельности в Университете Брауна под названием Sciconet (научные вычислительные нейронные сети). 7 февраля 2019 года Sciconet была перенесена из подрывной деятельности в GitHub, переименован в Deepxde.
Deepxde в настоящее время поддерживается Лу Лу в Йельском университете с основным вкладом от многих талантливых людей в различных формах и средствах. Необходимо упомянуть неэкгастичный, но растущий список: Пол Эскапил-Инчауспе, Зонгрен Зу, Джиалин Ли, Саранш Чопра, Сенсен Хе, Владимир Дуденков, Анран Цзяо, Чжунги Цзян, Шунуан Мао.
Лицензия
LGPL-2.1 Лицензия