neuraloperator ist eine umfassende Bibliothek für das Erlernen neuronaler Betreiber in Pytorch. Es ist die offizielle Umsetzung für Fourier -Neuralbetreiber und geprägte neuronale Betreiber.
Im Gegensatz zu regulären neuronalen Netzwerken ermöglichen neuronale Operatoren das Lernen der Kartierung zwischen Funktionsräumen, und diese Bibliothek bietet alle Tools für Ihre eigenen Daten.
Neuronale Betreiber sind ebenfalls invariant, sodass Ihr geschulter Betreiber auf Daten einer beliebigen Auflösung angewendet werden kann.
Klonen Sie einfach das Repository und installieren Sie lokal (im bearbeitbaren Modus, sodass Änderungen im Code sofort reflektiert werden, ohne neu installieren zu müssen):
Git Clone https://github.com/neuraloperator/neuraloperator CD -Neuraloperator PIP install -e. PIP Installation -r Anforderungen.txt
Sie können auch PIP auch die neueste stabile Version der Bibliothek auf PYPI installieren:
PIP Neuraloperator installieren
Nachdem Sie die Bibliothek installiert haben, können Sie die Schulungsbetreiber nahtlos beginnen:
from neuralop . models import FNO
operator = FNO ( n_modes = ( 16 , 16 ), hidden_channels = 64 ,
in_channels = 3 , out_channels = 1 )Die Tensorisierung wird auch aus der Box vorgesehen: Sie können die früheren Modelle verbessern, indem Sie einfach einen Tucker -Tensorisierten FNO mit nur wenigen Parametern verwenden:
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 )Dadurch wird eine Tucker -Faktorisierung der Gewichte verwendet. Der Vorwärtspass wird effizient sein, indem die Eingaben mit den Faktoren der Zersetzung direkt zusammengearbeitet werden. Die Fourier -Schichten haben 5% der Parameter eines gleichwertigen, dichten Fourier -Neuralbetreibers!
Schauen Sie sich die Dokumentation an!
Erstellen Sie eine Datei in neuraloperator/config namens wandb_api_key.txt und fügen Sie dort Ihre Gewichte und Verzerrung der API -Schlüssel ein. Sie können das Projekt, das Sie verwenden möchten, und Ihren Benutzernamen in den wichtigsten YAML -Konfigurationsdateien konfigurieren.
Neuraloperator ist 100% Open-Source und wir begrüßen alle Beiträge der Gemeinschaft! Wenn Sie einen Fehler oder einen Tippfehler in der Dokumentation entdecken oder eine Idee für eine Funktion haben, die Sie sehen möchten, melden Sie ihn bitte in unserem Ausgabe-Tracker oder öffnen Sie noch besser eine Pull-Request für GitHub.
Neuraloperator hat zusätzliche Abhängigkeiten für die Entwicklung, die in requirements_dev.txt zu finden sind:
PIP Installation -r requirlitus_dev.txt
Bevor Sie Ihre Änderungen einreichen, sollten Sie sicherstellen, dass Ihr Code an unserem Stil-Guide hält. Der einfachste Weg, dies zu tun, ist mit black :
Schwarz .
Testen und Dokumentation sind ein wesentlicher Bestandteil dieses Pakets und alle Funktionen sind mit Einheitentests und Dokumentation geliefert. Die Tests werden mit dem PyTest -Paket durchgeführt.
Um die Tests durchzuführen, leiten Sie einfach im Terminal aus:
PyTest -v Neuralop
Die HTML für unsere Dokumentations -Website wurde mit sphinx erstellt. Die Dokumentation wird aus dem doc -Ordner erstellt.
CD doc HTML machen
Dadurch werden die Dokumente in ./doc/build/html aufgebaut.
Beachten Sie, dass für die Dokumentation andere Abhängigkeiten von ./doc/requirements_doc.txt installiert werden müssen.
Um die Dokumentation lokal anzuzeigen, laufen Sie:
CD DOC/Build/HTML Python -m http.server [port_num]
Die Dokumente sind dann bei localhost:PORT_NUM zu sehen.
Wenn Sie Neuraloperator in einem akademischen Papier verwenden, zitieren Sie bitte [1], [2]:
@misc {kossaifi2024neural,
title = {eine Bibliothek zum Erlernen neuronaler Operatoren},
Autor = {Jean Kossaifi und Nikola Kovachki und
Zongyi li und Davit Pitt und
Miguel Liu-Schiaffini und Robert Joseph George und
Boris Bonev und Kamyar Azizzadenesheli und
Julius Berner und Anima Anandkumar},
Jahr = {2024},
ePrint = {2412.10354},
archiveprefix = {arxiv},
Primärklasse = {cs.lg}
}
@Article {Kovachki2021neural,
Autor = {Nikola B. Kovachki und
Zongyi li und
Burigenede liu und
Kamyar Azizzadenesheli und
Kaushik Bhattacharya und
Andrew M. Stuart und
Anima Anandkumar},
title = {neuronaler Operator: Lernkarten zwischen Funktionsräumen},
Journal = {corr},
Volume = {ABS/2108.08481},
Jahr = {2021},
}
| [1] | Kossaifi, J., Kovachki, N., Li, Z., Pitt, D., Liu-Schiaffini, M., George, R., Bonev, B., Azizzadenesheli, K., Berner, J., und Anandkumar, A., "A Library for Lernen für neurale Operatoren", Arxiv, 2024. |
| [2] | Kovachki, N., Li, Z., Liu, B., Azzzzadenesheli, K., Bhattacharya, K., Stuart, A. und Anandkumar A., „Neuronaler Operator: Lernkarten zwischen Funktionsräumen“, JMLR, 2021. Doi: 10.48550/arxiv.2108.0881. |