jupyter notebook远程连接服务器

ops/2024/10/21 1:24:38/
aidu_pl">

jupyter_notebook_0">jupyter notebook远程连接服务器

文章目录

jupyter_2">jupyter是什么

Jupyter Notebook是一个交互式笔记本,支持运行 40 多种编程语言。
Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

配置步骤

jupyter_7">安装jupyter

登录服务器后,激活虚拟环境,使用pip命令安装jupyter
在这里插入图片描述
此时使用jupyter notebook命令打开试一下:
在这里插入图片描述
但此时在本地是打不开上面链接的,需要进行配置。

jupyter_13">生成jupyter配置文件

使用如下命令生成jupyter配置文件:

jupyter notebook --generate-config

生成jupyter配置文件之后我们可以给jupyter设置一个密码。
在这里插入图片描述

jupyter_22">编辑jupyter配置文件

编辑jupyter配置文件的目的是设置远程ip可访问,根据配置文件所在位置找到并打开jupyter_notebook_config.py文件,在文件中加入如下几行(使用vim编辑器):

c.NotebookApp.ip = '*'    #允许所有ip访问,很重要
c.NotebookApp.open_browser = False    #不自动打开浏览器
c.NotebookApp.port = 8888             #端口为8888,可以自己设置
c.NotebookApp.enable_mathjax = True
c.NotebookApp.allow_remote_access = True
c.NotebookApp.allow_root = True

在这里插入图片描述

在这里插入图片描述

设置密码

使用如下命令设置jupyter密码(输入jupyter密码。这个密码要自己记住,等下打开juputer浏览器时需要用到):

jupyter notebook password

在这里插入图片描述

输入的密码会保存到 .jupyter/jupyter_notebook_config.json文件中。
注意:本操作为自动设置密码,即后面不用在配置文件中单独配置密码。

ssh隧道

至此如果使用的不是内网服务器就可以使用刚才设置的密码和端口在自己电脑上的浏览器上连接jupyter了,首先在服务器上运行jupyter notebook。
服务器地址为10.24.82.184,那么只需要在浏览器中输入10.24.82.184:8888,8888正是刚才在配置文件中设置的端口号。

如果使用的是内网服务器,需要通过跳板机连接,那么还需要设置ssh隧道,实现端口转发(映射),才能在本地访问到(这里的原理参考PyCharm+ssh跳板机+服务器中SSH隧道部分)。

在本地命令行输入如下命令即可:

ssh -N -f -L <jupyter端口>:<内网服务器ip>:<jupyter端口> -p <跳板机端口> username@<跳板机ip>

上述命令各个参数的含义如下:

  • N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
  • f 告诉SSH客户端在后台运行
  • L 做本地映射端口

在这里插入图片描述

到这里,就可以在本地打开浏览器,输入localhost:<服务器端生成的端口号>访问到jupyter notebook了。

输入前面设置的jupyter密码:
在这里插入图片描述

在这里插入图片描述

启动顺序

1、启动jupyter notebook服务
2、设置ssh隧道,即在命令行输入:

ssh -N -f -L <jupyter端口>:<内网服务器ip>:<jupyter端口> -p <跳板机端口> username@<跳板机ip>

3、在本地打开浏览器,输入localhost:<服务器端生成的端口号>访问到jupyter notebook了。

jupyterkernel_85">jupyter添加kernel

因为已经可以使用jupyter了,但是发现,在jupyter上运行ipynb的时候,内核只有一个默认的python3。

下载ipykernel包

在conda环境中(激活的虚拟环境中)使用如下命令下载ipykernel:

conda install ipykernel

添加kernel

首先使用conda进入想要添加的环境的虚拟环境(激活虚拟环境):

conda activate <虚拟环境名>

然后使用which python查看当前虚拟环境python所在的路径,然后cd进入该文件夹。示例,进入虚拟环境lxl的python所在的路径,只需要进入到虚拟环境名称这个文件夹就好了,不用进入到bin/python:
在这里插入图片描述
然后在该目录下使用:

python -m ipykernel install --user --name [虚拟环境名] --display-name [想要在jupyter上显示的环境名]

以lxl这个虚拟环境为例,我想让它在jupyter上显示lxl:

python -m ipykernel install --user --name lxl --display-name lxl

在这里插入图片描述

测试

首先使用FilZilla将用到的文件d2l-zh上传到服务器上:
在这里插入图片描述
然后打开jupyter notebook(在同一目录下使用jupyter notebook命令才能看到d2l-zh文件,这点在博客「测试」部分有写道):
在这里插入图片描述
执行后:
在这里插入图片描述
在本地打开浏览器,输入localhost:<服务器端生成的端口号>访问到jupyter notebook了。

输入前面设置的jupyter密码:
在这里插入图片描述
就可以看到上传的d2l-zh文件夹了:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就会在服务器上开始训练了。

训练结果:
在这里插入图片描述
可以看到在服务器上的训练速度每秒处理6219张样本,对比在博客「测试」部分在本地电脑上的训练速度每秒处理1640张样本要快的多得多。

遇到的问题

在本地打开浏览器,输入localhost:<服务器端生成的端口号>访问到jupyter notebook后,其他文件可以正常打开,但是打开.ipynb文件会报500 : Internal Server Error
在这里插入图片描述
参考这篇博客修改nbconvert版本为5.4.1后重启jupyter notebook服务发现在控制台又报如下权限错误PermissionError: [Errno 13] Permission denied: '/usr/local/share/jupyter/nbconvert/templates/conf.json':
在这里插入图片描述
参考文章修改nbconvert版本为5.6.1后重启jupyter notebook服务,发现可以正常打开.ipynb文件,至此问题解决。
在这里插入图片描述


http://www.ppmy.cn/ops/127138.html

相关文章

数据结构与算法:堆与优先队列的深入剖析

数据结构与算法&#xff1a;堆与优先队列的深入剖析 堆是一种特殊的树形数据结构&#xff0c;广泛应用于优先队列的实现以及各种高效的算法中&#xff0c;如排序和图算法。通过深入了解堆的结构、不同堆的实现方式&#xff0c;以及堆在实际系统中的应用&#xff0c;我们可以掌…

使用Yolov10和Ollama增强OCR

1. 训练自定义 Yolov10 数据集 利用物体检测增强 OCR 的第一步是在数据集上训练自定义 YOLO 模型。YOLO&#xff08;只看一遍&#xff09;是一种功能强大的实时对象检测模型&#xff0c;它将图像划分为网格&#xff0c;使其能够在一次前向传递中识别多个对象。这种方法非常适合…

jvm虚拟机调优实战

使用命令 jps查看进程使用jstat gc -1 5000查看内存占用和回收情况 正式测试 是否跑job区别。大量的job,部分用户点击的热数据 &#xff0c;不同时刻在跑 600-700对比 200 多了400-500m,代码原数据&#xff08;不占用堆区&#xff09;占了300m,所以 堆空间老年代&#xff08;90…

Python 多线程学习与使用

Python 多线程学习与使用 目录 引言&#xff1a;为什么需要多线程&#xff1f;Python中的线程基础 2.1 什么是线程&#xff1f; 2.2 Python的threading模块 2.3 创建和启动线程线程同步与互斥 3.1 竞态条件 3.2 锁&#xff08;Lock&#xff09; 3.3 可重入锁&#xff08;RLoc…

Canmv k230 C++案例1.2——image classify项目 C++代码分析(待完成)

这部分为初学&#xff0c;所以手头最好有本工具书便于查阅 01 代码初步注释 // 这里是一些定义配置 // 时间的标准库 #include <chrono> // 写入或读取文件的标准库 #include <fstream> // 文件输入输出的标准库&#xff0c;流模型 #include <iostream> //…

在Flask中记录用户端的完整访问记录,包括请求和响应信息以及用户访问IP

在Flask中记录用户端的完整访问记录&#xff0c;包括请求和响应信息以及用户访问IP&#xff0c;可以通过自定义中间件&#xff08;或称为请求预处理和后处理函数&#xff09;来实现。Flask本身提供了装饰器和信号机制来帮助我们实现这一功能。 以下是一个基本的实现步骤&#…

搭建LeNet-5神经网络,并搭建自己的图像分类训练和测试的模板,模板通用!!!均有详细注释。

本文任务&#xff1a; 1、构建LeNet神经网络。 2、搭建图像分类训练和测试的通用模板。 3、训练出自己的模型。 4、验证模型效果。 LeNet论文地址&#xff1a;原文地址http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks…

爬虫逆向学习(十二):一个案例入门补环境

此分享只用于学习用途&#xff0c;不作商业用途&#xff0c;若有冒犯&#xff0c;请联系处理 反爬前置信息 站点&#xff1a;aHR0cDovLzEyMC4yMTEuMTExLjIwNjo4MDkwL3hqendkdC94anp3ZHQvcGFnZXMvaW5mby9wb2xpY3k 接口&#xff1a;/xjzwdt/rest/xmzInfoDeliveryRest/getInfoDe…