나중에 사용할 주피터(IPython) 노트북 세션을 피클 또는 저장하는 방법
Jupyter/Ipython 노트북에서 많은 시간이 소요되는 계산을 수행하여 더 큰 데이터 분석을 수행하고 있다고 가정해 보겠습니다.그러면 어떤 이유에서인지 주피터 로컬 서버 I을 종료해야 하지만 시간이 많이 걸리는 모든 계산을 다시 수행하지 않고 나중에 분석 작업으로 돌아가고 싶습니다.
내가 무엇을 할 것인가.
마음에 하기 좋아하는 것은pickle
또는 전체 주피터 세션(모든 판다 데이터 프레임, np.array, 변수 등)을 저장하여 이전과 동일한 상태로 세션으로 돌아갈 수 있음을 알고 서버를 안전하게 종료할 수 있습니다.
그것이 기술적으로 가능한가요?제가 간과한 기본 제공 기능이 있습니까?
편집: 이 답변을 기반으로 다음이 있습니다.%store
"경량 피클"이어야 하는 마법.그러나 변수는 다음과 같이 수동으로 저장해야 합니다.
#inside a ipython/nb session
foo = "A dummy string"
%store foo
보기 닫기, 커널 다시 시작
%store -r foo
r 기분 전환을 위한 r
print(foo) # "A dummy string"
이것은 제가 원하는 것에 상당히 가깝지만, 수동으로 해야 하고 다른 세션을 구별할 수 없기 때문에 덜 유용합니다.
딜이 당신의 질문에 잘 대답하는 것 같습니다.
pip install dill
노트북 세션 저장:
import dill
dill.dump_session('notebook_env.db')
노트북 세션 복원:
import dill
dill.load_session('notebook_env.db')
(이것을 실제 답변으로 제공하기보다는 논평하고 싶지만, 논평하려면 더 많은 평판이 필요합니다.)
대부분의 데이터와 유사한 변수를 체계적인 방법으로 저장할 수 있습니다.제가 주로 하는 일은 모든 데이터 프레임, 배열 등을 판다에 저장하는 것입니다.HDF 스토어.노트북의 시작 부분에서 다음과 같이 선언합니다.
backup = pd.HDFStore('backup.h5')
그런 다음 새로운 변수를 생성할 때 저장합니다.
backup['var1'] = var1
마지막에, 아마도 좋은 생각일 것입니다.
backup.close()
서버 전원을 끄기 전에 선택합니다.다음에 노트북을 계속하려면 다음과 같이 하십시오.
backup = pd.HDFStore('backup.h5')
var1 = backup['var1']
사실, ipython 노트북에도 내장된 기능이 더 좋습니다.모든 것(예: 객체, 연결)을 이런 식으로 저장할 수는 없으며, 이렇게 많은 상용어구 코드로 노트북을 정리하기가 어렵습니다.
이 질문은 다음과 관련이 있습니다. IPython 노트북에서 캐시하는 방법은 무엇입니까?
개별 셀의 결과를 저장하기 위해 캐싱 마법이 유용합니다.
%%cache longcalc.pkl var1 var2 var3
var1 = longcalculation()
....
노트북을 다시 실행하면 이 셀의 내용이 캐시에서 로드됩니다.
이것은 당신의 질문에 정확하게 답하지는 않지만, 모든 긴 계산 결과가 빠르게 복구될 때 충분할 수 있습니다.노트북 상단에 있는 실행 버튼을 누르는 것과 결합하여 실행 가능한 해결책입니다.
캐시 마법은 아직 전체 노트북의 상태를 저장할 수 없습니다.제가 알기로는 "노트북"을 재개할 수 있는 다른 시스템은 아직 없습니다.이렇게 하려면 python 커널의 모든 기록을 저장해야 합니다.노트북을 로드하고 커널에 연결한 후 이 정보를 로드해야 합니다.
언급URL : https://stackoverflow.com/questions/34342155/how-to-pickle-or-store-jupyter-ipython-notebook-session-for-later
'programing' 카테고리의 다른 글
Swift의 지수 연산자 (0) | 2023.07.31 |
---|---|
봄에 폴더/디렉토리를 어떻게 모니터링합니까? (0) | 2023.07.31 |
스프링 기본 스코프가 싱글톤입니까? (0) | 2023.07.26 |
파워셸을 사용하여 프로젝트에서 선 수 찾기 (0) | 2023.07.26 |
왜 MariaDB가 내 Bitnami LAMP 인스턴스의 기본 데이터베이스이며 MySQL로 전환하는 방법은 무엇입니까? (0) | 2023.07.26 |