Betriebssystem | CI-Test auf master |
---|---|
Datmo ist ein Open-Source-Tool zur Verwaltung von Produktionsmodellen für Datenwissenschaftler. Verwenden Sie datmo init
um jedes Repository in einen nachverfolgbaren Experimentdatensatz umzuwandeln. Synchronisieren Sie mit Ihrer eigenen Cloud.
Hinweis : Die aktuelle Version von Datmo ist eine Alpha-Version. Dies bedeutet, dass Befehle geändert werden können und weitere Funktionen hinzugefügt werden. Wenn Sie Fehler finden, tragen Sie bitte dazu bei, indem Sie Probleme hinzufügen, damit die Mitwirkenden diese beheben können.
Einrichtung einer Umgebung mit einem Befehl (Sprachen, Frameworks, Pakete usw.)
Verfolgung und Protokollierung der Modellkonfiguration und -ergebnisse
Projektversionierung (Modellstatusverfolgung)
Reproduzierbarkeit des Experiments (Aufgaben erneut ausführen)
Visualisieren und exportieren Sie den Experimentverlauf
(bald verfügbar) Dashboards zur Visualisierung von Experimenten
Besonderheit | Befehle |
---|---|
Ein Projekt initialisieren | $ datmo init |
Richten Sie eine neue Umgebung ein | $ datmo environment setup |
Führen Sie ein Experiment durch | $ datmo run "python filename.py" |
Reproduzieren Sie ein früheres Experiment | $ datmo ls (Suchen Sie die gewünschte ID)$ datmo rerun EXPERIMENT_ID |
Öffnen Sie einen Arbeitsbereich | $ datmo notebook (Jupyter-Notizbuch)$ datmo jupyterlab (JupyterLab)$ datmo rstudio (RStudio)$ datmo terminal (Terminal) |
Notieren Sie Ihren Projektstatus (Dateien, Code, Umgebung, Konfiguration, Statistiken) | $ datmo snapshot create -m "My first snapshot!" |
Wechseln Sie zu einem früheren Projektstatus | $ datmo snapshot ls (Suchen Sie die gewünschte ID)$ datmo snapshot checkout SNAPSHOT_ID |
Visualisieren Sie Projekteinheiten | $ datmo ls (Experimente)$ datmo snapshot ls (Schnappschüsse)$ datmo environment ls (Umgebungen) |
Anforderungen
Installation
Hallo Welt
Beispiele
Dokumentation
Transformieren Sie ein aktuelles Projekt
Teilen
Beitrag zu Datmo
Docker (vor dem Start installiert und ausgeführt): Anweisungen für Ubuntu, MacOS, Windows
$ pip install datmo
Unser Hallo-Welt-Leitfaden zeigt die Einrichtung und Änderungen der Umgebung sowie die Reproduzierbarkeit von Experimenten. Es ist in unseren Dokumenten hier verfügbar.
Im Ordner /examples
befinden sich einige Skripte, die Sie ausführen können, um ein Gefühl für datmo zu bekommen. Sie können zu „Beispiele“ navigieren, um mehr darüber zu erfahren, wie Sie die Beispiele ausführen und mit Ihren eigenen Projekten beginnen können.
Weitere Tutorials für Fortgeschrittene finden Sie hier in unserem speziellen Tutorial-Repository.
Das Einrichten einer Umgebung ist in datmo äußerst einfach. Antworten Sie einfach mit y
, wenn Sie während der Initialisierung nach der Umgebungseinrichtung gefragt werden, oder verwenden Sie jederzeit datmo environment setup
. Befolgen Sie dann die resultierenden Anweisungen.
Unten sehen Sie ein Beispiel für die Einrichtung eines Python 2.7 TensorFlow mit CPU-Anforderungen/Treibern.
Die vollständige Anleitung zum Einrichten Ihrer Umgebung mit datmo finden Sie auf dieser Seite in unserer Dokumentation hier.
Nachdem Sie Ihre Umgebung eingerichtet haben, möchten die meisten Datenwissenschaftler einen sogenannten Arbeitsbereich (IDE- oder Notebook-Programmierumgebung) öffnen.
Unten sehen Sie ein Beispiel, um schnell ein Jupyter-Notizbuch zu öffnen und zu zeigen, wie der Import von TensorFlow wie vorgesehen funktioniert.
Hier ist ein Vergleich eines typischen logistischen Regressionsmodells mit einem, das Datmo nutzt.
Normales Skript | Mit Datmo |
---|---|
# train.py#from sklearn import datasetsfrom sklearn import linear_model as lmfrom sklearn import model_selection as msfrom sklearn import externals as ex######iris_dataset = datasets.load_iris()X = iris_dataset.datay = iris_dataset.targetdata = ms.train_test_split (X, y)X_train, X_test, y_train, y_test = data#model = lm.LogisticRegression(solver="newton-cg")model.fit(X_train, y_train)ex.joblib.dump(model, 'model.pkl')#train_acc = model.score (X_train, y_train)test_acc = model.score(X_test, y_test)#print(train_acc)print(test_acc)######### | # train.py#from sklearn import datasetsfrom sklearn import linear_model as lmfrom sklearn import model_selection as msfrom sklearn import externals as eximport datmo # extra line#config = {"solver": "newton-cg"} # extra line#iris_dataset = datasets. load_iris()X = iris_dataset.datay = iris_dataset.targetdata = ms.train_test_split(X, y)X_train, X_test, y_train, y_test = data#model = lm.LogisticRegression(**config)model.fit(X_train, y_train)ex.joblib.dump(model, "model.pkl" )#train_acc = model.score(X_train, y_train)test_acc = model.score(X_test, y_test)#stats = {"train_accuracy": train_acc,"test_accuracy": test_acc} # extra line#datmo.snapshot.create(message="my first snapshot",filepaths=["model.pkl"],config=config, stats=stats) # zusätzliche Zeile |
Um den obigen Code auszuführen, können Sie Folgendes tun.
Navigieren Sie zu einem Verzeichnis mit einem Projekt
$ mkdir MY_PROJECT $ cd MY_PROJECT
Initialisieren Sie ein Datmo-Projekt
$ datmo init
Kopieren Sie den obigen Datmo-Code in eine train.py
Datei in Ihrem MY_PROJECT
-Verzeichnis
Führen Sie das Skript wie gewohnt in Python aus
$ python train.py
Glückwunsch! Sie haben gerade Ihren ersten Schnappschuss erstellt :) Führen Sie nun einen ls-Befehl für Schnappschüsse aus, um Ihren ersten Schnappschuss anzuzeigen.
$ datmo snapshot ls
Beim Ausführen datmo init
fügt Datmo ein verstecktes .datmo
-Verzeichnis hinzu, das alle beteiligten Entitäten verfolgt. Dies ist erforderlich, um ein Repository DATMO-fähig zu machen.
Sehen Sie sich unsere Konzeptseite in der Dokumentation an, um zu sehen, wie die beweglichen Teile in datmo zusammenarbeiten.
Die vollständigen Dokumente werden hier gehostet. Wenn Sie zu den Dokumenten beitragen möchten (Quellcode befindet sich hier in /docs
), befolgen Sie die in CONTRIBUTING.md
beschriebene Vorgehensweise.
Mit dem folgenden Befehl können Sie Ihr vorhandenes Repository in ein Datmo-fähiges Repository umwandeln
$ datmo init
Wenn Sie datmo zu irgendeinem Zeitpunkt entfernen möchten, können Sie einfach das .datmo
Verzeichnis aus Ihrem Repository entfernen oder den folgenden Befehl ausführen
$ datmo cleanup
HAFTUNGSAUSSCHLUSS: Dies ist derzeit keine offiziell unterstützte Option und funktioniert nur für dateibasierte Speicherebenen (wie in der Konfiguration festgelegt) als Workaround für die gemeinsame Nutzung von Datmo-Projekten.
Obwohl datmo darauf ausgelegt ist, Änderungen lokal zu verfolgen, können Sie ein Projekt freigeben, indem Sie es wie folgt auf einen Remote-Server übertragen (dies wird nur für git angezeigt; wenn Sie ein anderes SCM-Tracking-Tool verwenden, können Sie wahrscheinlich etwas Ähnliches tun). Wenn Ihre Dateien zu groß sind oder nicht zu SCM hinzugefügt werden können, funktioniert dies möglicherweise nicht für Sie.
Das Folgende wurde nur auf BASH-Terminals getestet. Wenn Sie ein anderes Terminal verwenden, können einige Fehler auftreten.
$ git add -f .datmo/* # add in .datmo to your scm $ git commit -m "adding .datmo to tracking" # commit it to your scm $ git push # push to remote $ git push origin +refs/datmo/*:refs/datmo/* # push datmo refs to remote
Auf diese Weise können Sie Datmo-Ergebnisse und -Entitäten mit sich selbst oder anderen auf anderen Computern teilen. HINWEIS: Sie müssen .datmo/ aus der Nachverfolgung entfernen, um datmo auf dem anderen Computer oder an einem anderen Standort verwenden zu können. Sehen Sie sich die Anweisungen unten an, um zu erfahren, wie Sie es an einem anderen Ort replizieren können
$ git clone YOUR_REMOTE_URL $ cd YOUR_REPO $ echo '.datmo/*' > .git/info/exclude # include .datmo into your .git exclude $ git rm -r --cached .datmo # remove cached versions of .datmo from scm $ git commit -m "removed .datmo from tracking" # clean up your scm so datmo can work $ git pull origin +refs/datmo/*:refs/datmo/* # pull datmo refs from remote $ datmo init # This enables datmo in the new location. If you enter blanks, no project information will be updated
Wenn Sie an der Weitergabe mithilfe des Datmo-Protokolls interessiert sind, können Sie die Website von Datmo besuchen
F: Was mache ich, wenn datmo stop --all
nicht funktioniert und ich aufgrund einer Port-Neuzuweisung keinen neuen Container starten kann?
A: Dies könnte durch einen Geistercontainer verursacht werden, der von einem anderen Datmo-Projekt oder einem anderen Container ausgeführt wird. Entweder können Sie ein Docker-Image mit einer bestimmten Portzuweisung (außer 8888) erstellen, das Docker-Image finden, es stoppen und es mithilfe von docker ps --all
und docker conntainer stop <ID>
und docker container rm <ID>
entfernen. Oder Sie können alle auf dem Computer ausgeführten Images anhalten und entfernen. [HINWEIS: Dies kann sich auf andere Docker-Prozesse auf Ihrem Computer auswirken. Gehen Sie daher mit Vorsicht vor.] docker container stop $(docker ps -a -q)
und docker container rm $(docker ps -a -q)