Jupyter杂症一:jupyter 内核似乎挂掉了 它很快将自动重启---解决方案

本文主要是介绍Jupyter杂症一:jupyter 内核似乎挂掉了 它很快将自动重启---解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 序言
  • 现象
  • 查询后台Log和搜索答案
  • 总结错误

序言

jupyter莫名死掉重启,是一件很头痛的事情,尤其是,等了很久后它死了,其原因应该多而繁杂,各式各样,需要具体情况具体分析。最近就碰到一次,之前运行良好的代码,又重新运行,竟然死掉了,我草不信重新试一下,结果反复死了很多次,逐渐暴躁失去理智,很想咋键盘,真的大忌。后来通过一系列方法终于解决掉了,记录一下这个过程,希望带给你一点启发。

遇到这种问题后,不要网上乱搜这样效率低下,正规解法是:

  1. jupyter后台或者前台log日志,找到关键报错信息。
  2. 将关键报错信息贴到网上在进行搜索。
  3. 解决后,反思到底发生了什么事情,归纳到自己的知识体系中。

在搜索过程中,不要怕,如果无人请教,可以大胆假设,自圆其说,错了就再改就行了。

下面介绍一下我本次解决过程。

现象

运行下面的代码,jupyter无端由崩溃重启,报内核似乎挂掉了 它很快将自动重启

import faiss
import numpy as np
import mkldef faiss_similarity(main_mtx, candi_mtx, topn=30):main_mtx = main_mtx.astype(np.float32)new_candi_mtx = candi_mtx.astype(np.float32)N, d = main_mtx.shape# https://zhuanlan.zhihu.com/p/357414033index = faiss.IndexFlatIP(d)    # inner product# index = faiss.IndexFlatL2(d) index.add(new_candi_mtx)step = 10D, I = [], []for i in tqdm(range(0, N, step)):# xb不能是float64dm, im = index.search(main_mtx[i:i+step], topn)D.append(dm)I.append(im)return np.vstack(D), np.vstack(I)

查询后台Log和搜索答案

由于我的jupyter是在后台启动的,放到了output.log,所以就在后台打开,找到如下错误:
在这里插入图片描述
此类cannot loadnot found错误,一般都是没有安装某个程序或者安装后路径出错了,所以一般重装能够解决问题。

找到关键词后去网上搜索,经过尝试最终发现解决方法如下:

import faiss
import numpy as np
import mkl
"""
重新安装mkl和faiss
conda install mkl
conda install mkl-service
conda install -c pytorch faiss-cpu
"""
mkl.get_max_threads()
"""
上边的话用来解决这个bug
INTEL MKL ERROR: /data/zfchen/miniconda3/envs/infringement/lib/python3.7/site-packages/faiss/../../.././libmkl_avx512.so.2: undefined symbol: mkl_sparse_optimize_bsr_trsm_i8.
Intel MKL FATAL ERROR: Cannot load libmkl_avx512.so.2 or libmkl_def.so.2.
[I 19:44:47.937 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
"""
def faiss_similarity(main_mtx, candi_mtx, topn=30):main_mtx = main_mtx.astype(np.float32)new_candi_mtx = candi_mtx.astype(np.float32)N, d = main_mtx.shape# https://zhuanlan.zhihu.com/p/357414033index = faiss.IndexFlatIP(d)    # inner product# index = faiss.IndexFlatL2(d) index.add(new_candi_mtx)# step不要太大有可能会挂掉step = 10D, I = [], []for i in tqdm(range(0, N, step)):# xb不能是float64# search的向量一次性不要太多,不然有可能会导致jupyter挂掉dm, im = index.search(main_mtx[i:i+step], topn)D.append(dm)I.append(im)return np.vstack(D), np.vstack(I)

总结错误

Faiss-cpu版本,在intel Cpu上,会运行依赖mkl,应当安装它。安装后,依然无法其效果,最后看到cpu没有满载,运行mkl.get_max_threads()获得CPU满载。

这篇关于Jupyter杂症一:jupyter 内核似乎挂掉了 它很快将自动重启---解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/167515

相关文章

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方