neuraloperator - это всеобъемлющая библиотека для изучения нейронных операторов в Pytorch. Это официальная реализация для нейронных операторов Фурье и тензоризированных нейронных операторов.
В отличие от обычных нейронных сетей, нейронные операторы обеспечивают картирование обучения между функциональными пространствами, и эта библиотека предоставляет все инструменты для ваших собственных данных.
Нейронные операторы также являются инвариантными разрешения, поэтому ваш обученный оператор может быть применен на данные любого разрешения.
Просто клонируйте репозиторий и установите локально (в редактируемом режиме, чтобы изменения в коде сразу отражались без необходимости переустановить):
git clone https://github.com/neuraloperator/neuraloperator CD Neuraloperator PIP установка -e. PIP установка -R TEDS.TXT
Вы также можете просто установить самый последний стабильный выпуск библиотеки на PYPI:
PIP установить NeuraloPerator
После того, как вы установили библиотеку, вы можете легко начать обучение операторов:
from neuralop . models import FNO
operator = FNO ( n_modes = ( 16 , 16 ), hidden_channels = 64 ,
in_channels = 3 , out_channels = 1 )Теноризация также предоставляется из коробки: вы можете улучшить предыдущие модели, просто используя Tucker Tensorized FNO с лишь несколькими параметрами:
from neuralop . models import TFNO
operator = TFNO ( n_modes = ( 16 , 16 ), hidden_channels = 64 ,
in_channels = 3 ,
out_channels = 1 ,
factorization = 'tucker' ,
implementation = 'factorized' ,
rank = 0.05 )Это будет использовать факторизацию весов. Правный проход будет эффективным, напрямую сжимая входные данные с факторами разложения. У слоев Фурье будет 5% параметров эквивалентного, плотного нейронного оператора Фурье!
Проверьте документацию для получения дополнительной информации!
Создайте файл в neuraloperator/config под названием wandb_api_key.txt и вставьте там свои веса и предвзятые клавиши API. Вы можете настроить проект, который вы хотите использовать, и свое имя пользователя в основных файлах конфигурации YAML.
Neuraloperator составляет 100% с открытым исходным кодом, и мы приветствуем все вклад сообщества! Если вы заметите ошибку или опечатку в документации, или у вас есть идея для функции, которую вы хотели бы увидеть, сообщите об этом на нашем трекере для выпуска или, что еще лучше, откройте запрос на Github.
NeuraloPerator имеет дополнительные зависимости для разработки, которые можно найти в requirements_dev.txt :
PIP установка -R TERDENS_DEV.TXT
Прежде чем отправить свои изменения, вы должны убедиться, что ваш код придерживается нашего стиля. Самый простой способ сделать это с black :
черный
Тестирование и документация являются неотъемлемой частью этого пакета, и все функции поставляются с единичными тестами и документацией. Тесты запускаются с использованием пакета Pytest.
Чтобы запустить тесты, просто запустите, в терминале:
pytest -v Neuralop
HTML для нашего веб -сайта документации построен с использованием sphinx . Документация построена изнутри папки doc .
CD Doc сделать HTML
Это построит документы в ./doc/build/html .
Обратите внимание, что документация требует других зависимостей, установленных от ./doc/requirements_doc.txt .
Чтобы просмотреть документацию локально, запустите:
CD DOC/BUILD/HTML python -m http.server [port_num]
Документы будут тогда можно просмотреть в localhost:PORT_NUM .
Если вы используете Neuraloperator в академической статье, пожалуйста, цитируйте [1], [2]:
@misc {Kossaifi2024neural,
title = {библиотека для изучения нейронных операторов},
Автор = {Джин Коссафи и Никола Ковачки и
Zongyi Li и Davit Pitt и
Мигель Лю-Шаффини и Роберт Джозеф Джордж и
Борис Бонв и Камир Азиззденешели и
Джулиус Бернер и Анима Анандкумар},
Год = {2024},
eprint = {2412.10354},
ArchivePrefix = {arxiv},
PrimaryClass = {cs.lg}
}
@Article {kovachki2021neural,
Автор = {Никола Б. Ковачки и
Zongyi li и
Burigede Liu и
Kamyar Azizzadenesheli и
Каушик Бхаттачарья и
Эндрю М. Стюарт и
Анима Анандкумар},
title = {Neural Operator: учебные карты между функциональными пространствами},
Journal = {corr},
том = {ABS/2108.08481},
Год = {2021},
}
| [1] | Kossaifi, J., Kovachki, N., Li, Z., Pitt, D., Liu-Schiaffini, M., George, R., Bonev, B., AzizzadeneSheli, K., Berner, J. и Anandkumar, A., библиотека для изучения нейронных операторов », Arxiv, 2024. Doi: 10.48550/Arxiv.241. |
| [2] | Kovachki, N., Li, Z., Liu, B., Azizzadenesheli, K., Bhattacharya, K., Stuart, A. и Anandkumar A., «Нейральный оператор: обучение между функциональными пространствами», JMLR, 2021. DOI: 10.48550/arxiv.2108.08481. |