2017-06-28 1 views
1

Contexte:jupyther-portable Fractionnement et lent dans des blocs séparés

J'ai une très longue jupyther-ordinateur portable stocker un grand nombre de grands tableaux de numpy. Comme je l'utilise pour documenter un projet, le bloc-notes jupyther se compose de plusieurs blocs indépendants et d'un bloc d'importation (nécessaire pour tous les autres blocs). Le cahier devient très lent, après que de nombreuses cellules ont été calculées, donc je veux trouver un moyen d'accélérer les choses. La question ci-dessous, semble la solution la plus solide et la plus pratique pour moi en ce moment, mais je suis ouvert à d'autres idées.

Ma question:

Yat-il un moyen pratique pour définir des blocs indépendants d'un jupyther-ordinateur portable et de les exécuter séparément les uns des autres avec seulement quelques clics de vue?

Idées j'avais jusqu'à présent:

Mettez toujours le dernier bloc sur le dessus de mon ordinateur portable (après les déclarations comprennent). A la fin de ce bloc, écrivez une commande raise pour empêcher l'exécution d'autres blocs: Ceci est en quelque sorte désordonné et je ne peux pas exécuter des blocs plus bas dans le document par juste un clic de vue. Séparez le bloc-notes dans des documents de cahier séparés: Cela aide, mais je veux garder une meilleure vue d'ensemble de mon travail.

delete toutes les variables, qui ont été utilisées dans le bloc en cours après son exécution: Pour une raison quelconque, cela n'a pas apporté une accélération considérable. Est-ce possible, que j'ai fait quelque chose de mal ici? Démarrer le navigateur que j'utilise pour le jupyther-notebook avec une bonne valeur (j'utilise linux): Cela n'améliore pas les performances dans le cahier, mais au moins l'ordinateur continue à courir vite et je peux faire autre chose sur tout en attendant le cahier.

La solution que je vais finir, si je ne trouve pas une meilleure solution ici, est de définir des variables

actBlock1=False 
actBlock2=True 
actBlock3=False 

et mettre si les déclarations dans toutes les cellules d'un bloc. Mais je préférerais quelque chose qui produise moins de points et de retraits inutiles, pour garder mon travail propre.

Merci beaucoup à l'avance,

Répondre

2

Vous pouvez jeter un oeil à la Jupyter Notebook Extensions package, et, en particulier, à l'extension Freeze. Cela vous permettra de marquer les cellules comme étant "gelées", ce qui signifie qu'elles ne peuvent pas être exécutées (jusqu'à ce que vous les "dégeliez", c'est-à-dire).

Par exemple, dans cette image:

Frozen cells

Les cellules bleutées sont « gelés » (vous pouvez sélectionner que avec le bouton astérisque dans la barre d'outils). Après avoir cliqué sur "Exécuter tout", seules les cellules non gelées ont été exécutées.

+0

merci beaucoup! Ce sera un peu de travail pour activer/désactiver les blocs complets, mais cela aidera dans tous les cas –

+0

Je l'ai essayé et il résout exactement mon problème. Je ferai plus de tests dessus et marquera la question comme résolue puis –

+0

Test effectué: fonctionne très bien :) –