neuraloperator es una biblioteca integral para aprender operadores neuronales en Pytorch. Es la implementación oficial para operadores neuronales de Fourier y operadores neuronales tensorizados.
A diferencia de las redes neuronales regulares, los operadores neuronales permiten el mapeo de aprendizaje entre los espacios de funciones, y esta biblioteca proporciona todas las herramientas para hacerlo en sus propios datos.
Los operadores neuronales también son invariables de resolución, por lo que su operador capacitado puede aplicarse en datos de cualquier resolución.
Simplemente clone el repositorio e instale localmente (en modo editable para que los cambios en el código se reflejen inmediatamente sin tener que reinstalar):
Git clon https://github.com/neuraloperator/neuraloperator CD Neuraloperator PIP install -e. PIP install -r requisitos.txt
También puede simplemente instalar la versión estable más reciente de la biblioteca en Pypi:
PIP Instale NeuralOperator
Después de instalar la biblioteca, puede iniciar operadores de capacitación sin problemas:
from neuralop . models import FNO
operator = FNO ( n_modes = ( 16 , 16 ), hidden_channels = 64 ,
in_channels = 3 , out_channels = 1 )La tensorización también se proporciona fuera de la caja: puede mejorar los modelos anteriores simplemente utilizando un FNO tensorizado de Tucker con solo unos pocos parámetros:
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 )Esto utilizará una factorización de Tucker de los pesos. El pase hacia adelante será eficiente al contratar directamente las entradas con los factores de la descomposición. ¡Las capas de Fourier tendrán el 5% de los parámetros de un operador neuronal equivalente y denso de Fourier!
¡Vea la documentación para obtener más información!
Cree un archivo en neuraloperator/config llamado wandb_api_key.txt y pegue sus pesas y sesgos La tecla API allí. Puede configurar el proyecto que desea usar y su nombre de usuario en los archivos de configuración YAML principales.
NeuralOperator es 100% de código abierto, ¡y damos la bienvenida a todas las contribuciones de la comunidad! Si ve un error o un error tipográfico en la documentación, o tiene una idea para una característica que le gustaría ver, informarlo sobre nuestro rastreador de problemas, o incluso mejor, abra una solicitud de extracción en Github.
NeuralOperator tiene dependencias adicionales para el desarrollo, que se pueden encontrar en requirements_dev.txt :
PIP install -r requisitos_dev.txt
Antes de enviar sus cambios, debe asegurarse de que su código se adhiera a nuestra guía de estilo. La forma más fácil de hacer esto es con black :
negro .
Las pruebas y la documentación son una parte esencial de este paquete y todas las funciones vienen con pruebas de unidad y documentación. Las pruebas se ejecutan utilizando el paquete Pytest.
Para ejecutar las pruebas, simplemente ejecutar, en la terminal:
pytest -v neuralop
El HTML para nuestro sitio web de documentación se crea utilizando sphinx . La documentación se construye desde el interior de la carpeta doc .
CD DOC hacer html
Esto construirá los documentos en ./doc/build/html .
Tenga en cuenta que la documentación requiere otras dependencias instalables desde ./doc/requirements_doc.txt .
Para ver la documentación localmente, ejecute:
CD DOC/Build/HTML python -m http.server [Port_num]
Los documentos se pueden ver en localhost:PORT_NUM .
Si usa NeuralOperator en un artículo académico, cite [1], [2]:
@misc {Kossaifi2024Neural,
title = {una biblioteca para aprender operadores neuronales},
autor = {Jean Kossaifi y Nikola Kovachki y
Zongyi Li y Davit Pitt y
Miguel Liu-Schiaffini y Robert Joseph George y
Boris Bonev y Kamyar Azizzadenesheli y
Julius Berner y Anima Anandkumar},
año = {2024},
ePrint = {2412.10354},
ArchivePrefix = {arxiv},
PrimaryClass = {cs.lg}
}
@article {kovachki2021Neural,
autor = {Nikola B. Kovachki y
Zongyi Li y
Burigede liu y
Kamyar Azizzadenesheli y
Kaushik Bhattacharya y
Andrew M. Stuart y
Anima anandkumar},
title = {operador neural: mapas de aprendizaje entre espacios de funciones},
Journal = {Corr},
volumen = {ABS/2108.08481},
año = {2021},
}
| [1] | Kossaifi, J., Kovachki, N., Li, Z., Pitt, D., Liu-Schiaffini, M., George, R., Bonev, B., Azizzadenesheli, K., Berner, J. y Anandkumar, A., "Una biblioteca para los operadores neuronales de aprendizaje", ARXIV, 2024. DOI: 10.48550/arxiv.24124124. |
| [2] | Kovachki, N., Li, Z., Liu, B., Azizzadenesheli, K., Bhattacharya, K., Stuart, A. y Anandkumar A., "Operador neural: mapas de aprendizaje entre espacios de funciones", JMLR, 2021. DOI: 10.48550/arxiv.2108.08481. |