在Jupyter Notebook中清除缓存的图像

时间:2018-03-30 03:35:53

标签: python-2.7 jupyter-notebook

我有一个jupyter笔记本,可以创建图像的本地缓存。我想在运行特定单元格之前清除缓存。有谁知道这是怎么做到的吗?我试过了:

import gc
gc.collect()

但它没有效果。我也尝试清除chrome中的所有cookie和缓存,但这确实有效。

4 个答案:

答案 0 :(得分:0)

我意识到这不是一个很好的答案(简而言之,很糟糕)-简而言之,关闭并重新打开浏览器

我今天一直在为此苦苦挣扎,甚至清除浏览器缓存似乎也没有用。我发现刷新图像的唯一方法是:

  1. 保存笔记本
  2. 暂停并关闭会话
  3. 关闭浏览器
  4. 重新打开笔记本时-将会显示新图像

...我什至尝试删除引用的图像文件。但是浏览器仍然坚持使用它。

答案 1 :(得分:0)

jupyter 中的 Python 不一样,我认为自动垃圾收集会在代码中的某个点起作用,每一步都会暂停和缓存,这使得处理缓冲区非常占用内存。 最简单的解决方案是向元素添加析构函数并在需要的步骤中删除对 gc 的需求。

这个例子使用空缓冲区作为负载,如果你有足够的内存同时打开所有实例,如果不分块处理它们,只需使用 del img_buffs 就足够了。

n_images = 1024
img_buffs = {}
for i in range(n_images):
    img_buffs[i] = (0,) * 150000
for i in range(n_images):
    del img_buffs[i]

答案 2 :(得分:0)

在 Jupyter Notebook 的新单元格中尝试以下操作:

%reset -f

以上将清除所有没有 User Confirmation 的变量。如果您需要明确的用户确认,只需删除 -f

%reset_selective -f varName

The above 将删除特定变量。


如果你使用的Python版本大于3.3,你也可以试试(我没用过!):

%store -d someVar  # Remove particular variable and its value from storage

%store -z          # Remove all variables from storage

有关详细信息,请查看 this doc

答案 3 :(得分:-4)

最好和最简单的解决方案是先卸载 Jupyter notebook,然后重新安装。