Wie wird in IPython Notebook zwischengespeichert?

9

Umgebung:

  • Python 3
  • IPython 3.2

Jedes Mal, wenn ich ein IPython-Notebook herunterfahre und es wieder öffne, muss ich alle Zellen erneut ausführen. Aber einige Zellen erfordern eine intensive Berechnung.

Im Gegensatz dazu speichern knitr in R die Ergebnisse standardmäßig in einem Cache-Verzeichnis, so dass nur neuer Code und neue Einstellungen die Berechnung aufrufen.

Ich habe ipycache angeschaut, aber es scheint eine Zelle statt des Notebooks zu cachen. Gibt es in IPython ein Gegenstück zum Cache von knitr ?

    
Zelong 06.07.2015, 21:24
quelle

3 Antworten

0

Können Sie ein Beispiel dafür geben, was Sie vorhaben? Wenn ich etwas in einem IPython-Notebook starte, das teuer ist, schreibe ich es fast immer auf Disk-Nachwort. Wenn meine Daten beispielsweise eine Liste von JSON-Objekten sind, schreibe ich sie als JSE-formatierte string-getrennte Strings auf die Festplatte:

%Vor%

Sie können die Daten dann auf die gleiche Weise zurücklesen:

%Vor%

Ich denke, das ist allgemein eine gute Übung, weil es Ihnen ein Backup gibt. Sie können auch Gurke für das gleiche verwenden. Wenn Ihre Daten wirklich groß sind, können Sie gzip.open direkt in eine Zip-Datei schreiben.

BEARBEITEN

Um ein scikit learn-Modell auf Festplatte zu speichern, verwenden Sie joblib.pickle .

%Vor%     
brandomr 05.09.2015, 01:39
quelle
1

Leider scheint es nicht so etwas wie einen automatischen Cache zu geben. Die Option %store magic ist nahe, erfordert jedoch, dass Sie das Caching und das erneute Laden manuell und explizit durchführen.

In Ihrem Jupyter-Notebook:

%Vor%

Nehmen wir an, Sie schließen das Notebook und der Kernel wird neu gestartet. Sie haben keinen Zugriff mehr auf die lokalen Variablen. Allerdings können Sie die gespeicherten Variablen mit der Option -r neu laden.

%Vor%     
viswajithiii 27.11.2016 00:55
quelle
0

Tatsächlich ist die Funktionalität, die Sie fragen, bereits vorhanden, Sie müssen sie nicht manuell neu implementieren, indem Sie Ihre Dumps ausführen.

Sie können den% store oder besser die %% cache magic (Erweiterung) verwenden, um die Ergebnisse dieser intermittierenden Zellen zu speichern, so dass sie nicht neu berechnet werden müssen (siehe Ссылка )

Es ist so einfach wie:

%Vor%

Dann in einer Zelle, zum Beispiel:

%Vor%
  

Wenn Sie diese Zelle zum ersten Mal ausführen, wird der Code ausgeführt und   Die Variablen var1 und var2 werden in der aktuellen Datei in mycache.pkl gespeichert   Verzeichnis mit den Ausgaben. Umfangreiche Display-Ausgaben werden nur gespeichert   wenn Sie die Entwicklungsversion von IPython verwenden. Wenn Sie dies ausführen   Zelle wieder, der Code wird übersprungen, die Variablen werden aus dem geladen   Datei und in den Namespace injiziert, und die Ausgaben werden wiederhergestellt   das Notizbuch.

    
ntg 29.11.2017 10:04
quelle