Jedes Experiment ist heiligJedes Experiment ist großartigWenn ein Experiment verschwendet wirdGott wird ziemlich wütend
Sacred ist ein Werkzeug, mit dem Sie Experimente konfigurieren, organisieren, protokollieren und reproduzieren können. Es ist so konzipiert, dass es alle mühsamen Gemeinkosten erledigt, die Sie in Ihrem tatsächlichen Experiment ausführen müssen, um:
Sacred erreicht dies durch die folgenden Hauptmechanismen:
Skript zum Training eines SVM im Iris -Datensatz | Das gleiche Drehbuch wie ein heiliges Experiment |
from numpy . random import permutation
from sklearn import svm , datasets
C = 1.0
gamma = 0.7
iris = datasets . load_iris ()
perm = permutation ( iris . target . size )
iris . data = iris . data [ perm ]
iris . target = iris . target [ perm ]
clf = svm . SVC ( C = C , kernel = 'rbf' ,
gamma = gamma )
clf . fit ( iris . data [: 90 ],
iris . target [: 90 ])
print ( clf . score ( iris . data [ 90 :],
iris . target [ 90 :])) | from numpy . random import permutation
from sklearn import svm , datasets
from sacred import Experiment
ex = Experiment ( 'iris_rbf_svm' )
@ ex . config
def cfg ():
C = 1.0
gamma = 0.7
@ ex . automain
def run ( C , gamma ):
iris = datasets . load_iris ()
per = permutation ( iris . target . size )
iris . data = iris . data [ per ]
iris . target = iris . target [ per ]
clf = svm . SVC ( C = C , kernel = 'rbf' ,
gamma = gamma )
clf . fit ( iris . data [: 90 ],
iris . target [: 90 ])
return clf . score ( iris . data [ 90 :],
iris . target [ 90 :]) |
Die Dokumentation wird bei RededheDocs gehostet. Sie können auch den heiligen Guru fragen, es ist eine heilige KI, um Ihre Fragen zu beantworten.
Sie können es direkt aus dem Python -Paket -Index mit PIP installieren:
PIP Installieren Sie heilig
Oder wenn Sie es manuell tun möchten, können Sie die aktuelle Version von Git von Git auschecken und selbst installieren:
Git Clone https://github.com/idsia/sacred.gitCD heiligpython setup.py install
Vielleicht möchten Sie auch die Pakete numpy
und pymongo
installieren. Sie sind optionale Abhängigkeiten, bieten jedoch einige coole Funktionen:
PIP Installieren Sie Numpy Pymongo
Die Tests für Heilige verwenden das PyTest -Paket. Sie können sie ausführen, indem Sie pytest
im heiligen Verzeichnis wie folgt ausführen:
Pytest
Es gibt auch eine Konfigurationsdatei für Tox, sodass Sie die Tests für verschiedene Python -Versionen wie folgt automatisch ausführen können:
Tox
Wenn Sie die PyTest -Version aktualisieren oder ändern, müssen die folgenden Dateien geändert werden:
dev-requirements.txt
tox.ini
test/test_utils.py
setup.py
Wenn Sie einen Fehler finden, haben Sie eine Feature -Anfrage oder möchten etwas Allgemeines besprechen, das Sie willkommen sind, um ein Problem zu eröffnen. Wenn Sie eine bestimmte Frage zur Verwendung von Sacred haben, stellen Sie bitte eine Frage zum Stackoverflow unter dem von Python angesammelten Tag. Wir schätzen die Dokumentation viel. Wenn Sie etwas finden, das in die Dokumentation aufgenommen werden sollte, dokumentieren Sie es bitte oder lassen Sie uns wissen, was fehlt. Wenn Sie Sacred in einem Ihrer Projekte verwenden und Ihren Code mit anderen teilen möchten, setzen Sie Ihr Repo in die Projekte mit sacred <docs/projects_using_sacred.rst> _ Liste. Pull -Anfragen sind sehr willkommen!
Zu diesem Zeitpunkt gibt es drei Frontenden in den von Sacred erstellten Datenbankeinträgen (von denen ich weiß). Sie werden extern als separate Projekte entwickelt.
Omniboard ist ein Web -Dashboard, das bei der Visualisierung der von Sacred gesammelten Experimente und Metriken / Protokolle hilft. Omniboard ist mit React, Node.js, Express und Bootstrap geschrieben.
Weihrauch ist eine Python -Bibliothek zum Abrufen von Läufen, die in MongoDB gespeichert sind und interaktiv Metriken und Artefakte in Jupyter -Notizbüchern angezeigt werden.
Sacredboard ist eine webbasierte Dashboard-Schnittstelle zu den in einem MongoDB gespeicherten heiligen Läufen.
Neptun ist ein Metadatengeschäft für MLOPS, das für Teams gebaut wurde, die viele Experimente durchführen. Es gibt Ihnen einen einzelnen Ort, um alle für die Python- und R-Programmiersprachen verfügbaren API-Metadaten zu protokollieren, zu speichern, anzuzeigen, zu organisieren, zu vergleichen und abzufragen:
Um Ihre heiligen Experimente bei Neptun zu protokollieren, müssen Sie nur einen Beobachter hinzufügen:
from neptune . new . integrations . sacred import NeptuneObserver
ex . observers . append ( NeptuneObserver ( api_token = '<YOUR_API_TOKEN>' ,
project = '<YOUR_WORKSPACE/YOUR_PROJECT>' ))
Weitere Informationen finden Sie in dem Leitfaden Neptune + Sacred Integration.
SacredBrowser ist eine PYQT4 -Anwendung, um die durch heiligen Experimente erzeugten MongoDB -Einträge zu durchsuchen. Zu den Funktionen gehören benutzerdefinierte Abfragen, Sortieren der Ergebnisse, Zugriff auf den gespeicherten Quellcode und vieles mehr. Es ist keine Installation erforderlich und kann eine Verbindung zu einer lokalen Datenbank oder über dem Netzwerk herstellen.
Der Prophet ist ein früher Prototyp eines Webinterface zu den MongoDB -Einträgen, die durch heilige Experimente erstellt wurden und abgesetzt werden. Sie müssen Restheart ausführen, um auf die Datenbank zuzugreifen.
Sumatra ist ein Werkzeug zum Verwalten und Verfolgen von Projekten basierend auf numerischenSimulation und/oder Analyse mit dem Ziel, reproduzierbare Forschung zu unterstützen.Es kann als ein automatisiertes elektronisches Labor -Notizbuch für betrachtet werdenComputerprojekte.
Sumatra verfolgt einen anderen Ansatz, indem sie Befehlslinien -Tools zur Initialisierung eines Projekts bereitstellen und dann willkürlichen Code (nicht nur Python) ausführen. Es verfolgt Informationen zu allen Läufen in einer SQL -Datenbank und bietet sogar ein schönes Browser -Tool. Es integriert weniger eng in den zu ausgeführten Code, was es leicht für Nicht-Python-Experimente anwendbar macht. Dies bedeutet aber auch, dass für jedes Experiment mehr Einrichten erforderlich ist und die Konfiguration mithilfe von Dateien erfolgen muss. Verwenden Sie dieses Projekt, wenn Sie Nicht-Python-Experimente ausführen müssen, oder sind mit dem zusätzlichen Aufbau/Konfigurationsaufwand in Ordnung.
FGLAB ist ein maschinelles Lern -Armaturenbrett, das Prototyping erstelltExperimente einfacher. Experimentdetails und Ergebnisse werden an eine Datenbank gesendet.Dies ermöglicht die Ausführung von Analysen nach ihrer Fertigstellung. Der ServerIS FGLAB und die Kunden sind FGmachines.
Ähnlich wie bei Sumatra ist FGLAB ein externes Tool, mit dem Läufe von jedem Programm verfolgt werden können. Projekte werden über ein JSON-Schema konfiguriert, und das Programm muss diese Konfigurationen über Befehlszeilenoptionen akzeptieren. FGLAB übernimmt auch die Rolle eines grundlegenden Schedulers, indem er Läufe über mehrere Maschinen vertreibt.
Dieses Projekt wird im Rahmen der MIT -Lizenz veröffentlicht.
K. Greff, A. Klein, M. Chovanec, F. Hutter und J. Schmidhuber, "The Sacred Infrastructure for Computational Research", in Proceedings of the 15. Python in Science Conference (Scipy 2017), Austin, Texas, 2017, 2017, S. 49–56.