Angenommen, ich mache eine größere Datenanalyse in Jupyter / Ipython-Notebooks mit vielen zeitaufwändigen Berechnungen. Dann muss ich aus irgendeinem Grund den lokalen Jupyter-Server I herunterfahren, aber ich möchte später zur Analyse zurückkehren, ohne alle zeitaufwändigen Berechnungen erneut durchführen zu müssen.
Was würde ich mag die Liebe zu tun , pickle
oder die ganze Jupyter Sitzung speichern (all Pandas Datenrahmen, np.arrays, Variablen, ...) , so kann ich abschalten sicher den Server weiß , dass ich genau meine Session zurückkehren kann in dem gleichen Zustand wie Vor.
Ist es überhaupt technisch möglich? Gibt es eine integrierte Funktionalität, die ich übersehen habe?
EDIT: Basierend auf dieser Antwort gibt es eine %store
Magie, die "leichte Gurke" sein sollte. Sie müssen die Variablen jedoch wie folgt manuell speichern:
#inside a ipython/nb session
foo = "A dummy string"
%store foo
Seesion schließen, Kernel
%store -r foo
# r zur Aktualisierung neu starten
print(foo) # "A dummy string"
Das ist ziemlich nah an dem, was ich möchte, aber wenn ich es manuell machen muss und nicht zwischen verschiedenen Sitzungen unterscheiden kann, ist es weniger nützlich.
quelle
Antworten:
Ich denke, Dill beantwortet Ihre Frage gut.
Speichern Sie eine Notebook-Sitzung:
Wiederherstellen einer Notebook-Sitzung:
Quelle
quelle
(Ich würde dies lieber kommentieren als als tatsächliche Antwort anbieten, aber ich brauche mehr Ruf, um Kommentare abzugeben.)
Sie können die meisten datenähnlichen Variablen systematisch speichern. Normalerweise speichere ich alle Datenrahmen, Arrays usw. in pandas.HDFStore . Erklären Sie am Anfang des Notizbuchs
und speichern Sie dann alle neuen Variablen, während Sie sie erstellen
Am Ende wahrscheinlich eine gute Idee
bevor Sie den Server ausschalten. Wenn Sie das nächste Mal mit dem Notizbuch fortfahren möchten:
Um ehrlich zu sein, ich würde die integrierte Funktionalität auch in ipython notebook bevorzugen. Auf diese Weise können Sie nicht alles speichern (z. B. Objekte, Verbindungen), und es ist schwierig, das Notebook mit so vielen Boilerplate-Codes zu organisieren.
quelle
Diese Frage bezieht sich auf: Wie wird in IPython Notebook zwischengespeichert?
Um die Ergebnisse einzelner Zellen zu speichern, ist die Caching-Magie praktisch.
Beim erneuten Ausführen des Notizbuchs wird der Inhalt dieser Zelle aus dem Cache geladen.
Dies beantwortet Ihre Frage nicht genau, reicht jedoch möglicherweise aus, wenn die Ergebnisse aller langwierigen Berechnungen schnell wiederhergestellt werden. Dies ist in Kombination mit dem Drücken der Run-All-Taste oben auf dem Notebook für mich eine praktikable Lösung.
Die Cache-Magie kann den Status eines ganzen Notizbuchs noch nicht speichern . Meines Wissens gibt es noch kein anderes System, um ein "Notizbuch" wieder aufzunehmen. Dies würde erfordern, den gesamten Verlauf des Python-Kernels zu speichern. Nach dem Laden des Notebooks und dem Herstellen einer Verbindung zu einem Kernel sollten diese Informationen geladen werden.
quelle