jupyter notebook远程连接服务器

jupyter notebook远程连接服务器

文章目录

  • jupyter notebook远程连接服务器
    • jupyter是什么
    • 配置步骤
      • 安装jupyter
      • 生成jupyter配置文件
      • 编辑jupyter配置文件
      • 设置密码
      • ssh隧道
    • 启动顺序
    • jupyter添加kernel
      • 下载ipykernel包
      • 添加kernel
    • 测试
    • 遇到的问题

jupyter是什么

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

配置步骤

安装jupyter

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

生成jupyter配置文件

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

jupyter notebook --generate-config

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

编辑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了。

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.rhkb.cn/news/452144.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构之队列(python)

华子目录 1.队列存储结构1.1队列基本介绍1.2队列的实现方式 2.顺序队列2.1顺序队列的介绍2.2顺序队列的简单实现2.3代码实现 3.链式队列和基本操作3.1链式队列数据入队3.2链式队列数据出队3.3队列的链式表示和实现 1.队列存储结构 1.1队列基本介绍 队列的两端都"开口&qu…

FFmpeg 4.3 音视频-多路H265监控录放C++开发三 :安装QT5.14.2, 并将QT集成 到 VS2019中。

一&#xff0c;安装QT&#xff0c; 重点&#xff1a;在安装QT的时候要安装msvc201x版本的组件&#xff0c; 二 &#xff0c; 安装 qt-vs-tools Index of /development_releases/vsaddin/2.8.1 三&#xff0c;需要安装过 windows10 SDK&#xff0c;一般我们在安装vs2019的时候就…

餐饮店怎么标注地图位置信息?

随着市场竞争的日益激烈&#xff0c;商家若想在竞争中脱颖而出&#xff0c;就必须想方设法去提高自身的曝光度和知名度&#xff0c;为店铺带来更多的客流量。其中&#xff0c;地图标注便是一种简单却极为有效的方法。通过在地图平台上添加店铺位置信息&#xff0c;不仅可以方便…

电子级异丙醇溶液除硼树脂

电子级异丙醇溶液的净化除杂是一个精细的过程&#xff0c;旨在去除溶液中的杂质&#xff0c;以满足电子行业对高纯度化学品的严格要求。以下是电子级异丙醇溶液净化除杂的相关信息&#xff1a; 净化除杂方法 ● 精馏工序&#xff1a;通过精馏塔进行初步分离&#xff0c;去除大部…

(44)MATLAB读取语音信号进行频谱分析

文章目录 前言一、MATLAB代码二、仿真结果画图三、频谱分析 前言 语音信号是我们最常见的一种信号&#xff0c;本文使用MATLAB读取一段语音信号画出其波形&#xff0c;然后使用FFT变换给出其频谱&#xff0c;对其频谱进行分析。 一、MATLAB代码 读取语音数据并得出频谱的代码…

JMeter如何设置HTTP代理服务器?

1、 2、添加线程组 3、设置HTTP代理服务器&#xff0c;目标控制器选择“测试计划>线程组” 过滤掉不需要的信息 4、设置电脑手动代理 5、点击启动&#xff0c;在浏览器操作就可以了

Halcon实战——基于NCC模板匹配的芯片检测(附源码)

Halcon实战——基于NCC模板匹配的芯片检测&#xff08;附源码&#xff09; 关于作者 作者&#xff1a;小白熊 作者简介&#xff1a;精通python、matlab、c#语言&#xff0c;擅长机器学习&#xff0c;深度学习&#xff0c;机器视觉&#xff0c;目标检测&#xff0c;图像分类&am…

OpenCV高级图形用户界面(10)创建一个新的窗口函数namedWindow()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 创建一个窗口。 函数 namedWindow 创建一个可以作为图像和跟踪条占位符的窗口。创建的窗口通过它们的名字来引用。 如果已经存在同名的窗口&am…

应用层协议 序列化

自定义应用层协议 例子&#xff1a;网络版本计算器 序列化反序列化 序列化&#xff1a;将消息&#xff0c;昵称&#xff0c;日期整合成消息-昵称-日期 反序列化&#xff1a;消息-昵称-日期->消息&#xff0c;昵称&#xff0c;日期 在序列化中&#xff0c;定义一个结构体…

第8篇:网络安全基础

目录 引言 8.1 网络安全的基本概念 8.2 网络威胁与攻击类型 8.3 密码学的基本思想与加密算法 8.4 消息认证与数字签名 8.5 网络安全技术与协议 8.6 总结 第8篇&#xff1a;网络安全基础 引言 在现代信息社会中&#xff0c;计算机网络无处不在&#xff0c;从互联网到局…

C语言_指针_进阶

引言&#xff1a;在前面的c语言_指针初阶上&#xff0c;我们了解了简单的指针类型以及使用&#xff0c;下面我们将进入更深层次的指针学习&#xff0c;对指针的理解会有一个极大的提升。从此以后&#xff0c;指针将不再是难点&#xff0c;而是学习底层语言的一把利器。 本章重点…

Mysql(2)—SQL语法详解(通俗易懂)

一、关于SQL 1.1 简介 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种用于管理关系型数据库的标准编程语言。它主要用于数据的查询、插入、更新和删除等操作。SQL最初在1970年代由IBM的研究人员开发&#xff0c;旨在处理关系数据模型…

API的力量:解决编程技术问题的利器

在软件开发的世界里&#xff0c;编程技术问题无处不在。从数据获取到用户认证&#xff0c;从支付处理到地图服务&#xff0c;这些问题的解决方案往往需要深厚的专业知识和大量的开发时间。然而&#xff0c;应用程序编程接口&#xff08;API&#xff09;的出现&#xff0c;为开发…

长序列时间序列预测模型:Informer与TimesNet

Informer超越长序列时间序列预测 Informer是一种针对长序列时间序列预测的高效Transformer模型&#xff0c;旨在解决传统Transformer在处理长序列时的局限性。该模型引入了一些关键技术&#xff0c;以提高效率和准确性。以下是对Informer模型的详细介绍&#xff1a; 1. 模型背…

CMOS晶体管的串联与并联

CMOS晶体管的串联与并联 前言 对于mos管的串联和并联&#xff0c;一直没有整明白&#xff0c;特别是设计到EDA软件中&#xff0c;关于MOS的M和F参数&#xff0c;就更困惑了&#xff0c;今天看了许多资料以及在EDA软件上验证了电路结构与版图的对应关系&#xff0c;总算有点收…

opencv 图像翻转- python 实现

在做图像数据增强时会经常用到图像翻转操作 flip。 具体代码实现如下&#xff1a; #-*-coding:utf-8-*- # date:2021-03 # Author: DataBall - XIAN # Function: 图像翻转import cv2 # 导入OpenCV库path test.jpgimg cv2.imread(path)# 读取图片 cv2.namedWindow(image,1) …

go压缩的使用

基础&#xff1a;使用go创建一个zip func base(path string) {// 创建 zip 文件zipFile, err : os.Create("test.zip")if err ! nil {panic(err)}defer zipFile.Close()// 创建一个新的 *Writer 对象zipWriter : zip.NewWriter(zipFile)defer zipWriter.Close()// 创…

D39【python 接口自动化学习】- python基础之函数

day39 函数的返回值 学习日期&#xff1a;20241016 学习目标&#xff1a;函数&#xfe63;-52 函数的返回值&#xff1a;如何得到函数的执行结果&#xff1f; 学习笔记&#xff1a; return语句 返回值类型 def foo():return abc var foo() print(var) #abc# 函数中return函…

pc轨迹回放制作

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;pc轨迹回放制作 主要内容&#xff1a;制作车辆轨迹操作页&#xff0c;包括查询条件、动态轨迹回放、车辆轨迹详情表单等 应用场景&#xff1a;车辆…

微软的 Drasi:一种轻量级的事件驱动编程方法

微软的开源数据变化处理平台有望提供一种全新的方式来构建和管理可产生持续事件流的云应用程序。 Microsoft Azure 孵化团队是微软超大规模云中比较有趣的组成部分之一。它介于传统软件开发团队和研究组织之间&#xff0c;致力于构建大规模分布式系统问题的解决方案。 这些解决…