jak*_*kes 10 python jupyter-notebook jupyter-lab
我最近开始使用Jupyter Lab,但我的问题是我要处理非常大的数据集(通常,数据集本身大约是计算机RAM的1/4)。经过几次转换后,另存为新的Python对象,我倾向于耗尽内存。问题是,当我接近可用的RAM限制并执行需要另一个RAM空间的任何操作时,计算机将冻结,而修复它的唯一方法是重新启动它。这是Jupyter Lab / Notebook中的默认行为,还是我应该设置的某些设置?通常,我希望程序崩溃(例如在RStudio中),而不是整个计算机
对于这个问题,最可靠的解决方案绝对是使用 Docker 容器。您可以指定要为 Jupyter 分配多少内存,如果容器内存不足,那也没什么大不了的(记住要经常保存,但这不言而喻)。
这个博客将帮助您完成大部分工作。还有一些不错的说明,从这里免费提供的、官方维护的 Jupyter 图像之一设置 Jupyter 实验室:
https://medium.com/fundbox-engineering/overview-d3759e83969c
然后您可以docker run按照教程中的描述修改命令(例如,对于 3GB):
docker run --memory 3g <other docker run args from tutorial here>
Run Code Online (Sandbox Code Playgroud)
有关 docker 内存选项的语法,请参阅此问题:
我还在 Jupyter Lab 上处理非常大的数据集 (3GB),并且在 Labs 上遇到了同样的问题。目前尚不清楚您是否需要维护对预转换数据的访问,如果不需要,我已经开始使用del未使用的大型数据帧变量(如果不需要它们)。del从你的记忆中删除变量。编辑**:我遇到的问题有多种可能性。当我使用远程 jupyter 实例时以及在间谍程序中执行大型转换时,我更经常遇到这种情况。
例如
df = pd.read('some_giant_dataframe') # or whatever your import is
new_df = my_transform(df)
del df # if unneeded.
Run Code Online (Sandbox Code Playgroud)
杰克斯,您可能还会发现此线程对大数据工作流程很有帮助。我一直在研究Dask来帮助内存存储。
我注意到在spyder和jupyter中,当大内存控制台运行时在另一个控制台中工作时通常会发生冻结。至于为什么只是死机而不是崩溃,我认为这与内核有关。IPython github 中存在一些内存问题- # 10082和 # 10117似乎最相关。这里的一位用户建议禁用 tab 补全jedi或更新 jedi。
在 10117 中,他们建议检查get_ipython().history_manager.db_log_output. 我有同样的问题,我的设置是正确的,但值得检查
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |