远程服务器上使用 Jupyter:无缝运行和可视化
2024-02-19 09:05:53
前言
Jupyter Notebook 是一种交互式计算环境,广泛应用于数据科学、机器学习和科学计算领域。它提供了一个基于 Web 的界面,使研究人员和开发者能够轻松编写代码、可视化数据以及创建交互式文档。
在本地机器上使用 Jupyter 固然方便,但当处理大型数据集或资源密集型任务时,将 Jupyter 迁移到远程服务器可以带来显着优势。远程服务器通常配备强大的硬件,包括 GPU,可以大大提升代码执行和数据可视化的速度。此外,使用远程服务器可以实现多用户访问,方便团队协作和远程共享项目。
在本教程中,我们将逐步指导您如何在远程服务器上设置和使用 Jupyter。我们将涵盖以下内容:
- 在远程服务器上安装 Jupyter
- 使用 SSH 隧道连接到 Jupyter
- 利用服务器端的 GPU 加速
- 在 Jupyter 中使用图形化界面
安装 Jupyter
在远程服务器上安装 Jupyter 的步骤因操作系统而异。以下是针对不同操作系统的通用说明:
Linux 系统
- 更新软件包管理器:
sudo apt update
- 安装 Jupyter:
sudo apt install jupyter
Windows 系统
-
确保已安装 Python 和 pip:
- 下载 Python 安装程序:https://www.python.org/downloads/
- 在安装过程中,选中 "Add Python 3.x to PATH" 选项
-
安装 Jupyter:
- 打开命令提示符并运行:
pip install jupyter
MacOS 系统
- 使用 Homebrew 安装 Jupyter:
brew install jupyter
- 或者,使用 pip 安装:
pip install jupyter
SSH 隧道连接
要从本地计算机安全地连接到远程服务器上的 Jupyter,我们需要创建一个 SSH 隧道。这将创建一个加密连接,允许我们通过本地端口访问远程 Jupyter 服务器。
-
在本地计算机上打开终端或命令提示符。
-
使用以下命令建立 SSH 隧道:
ssh -L 8888:localhost:8888 username@remote_server_ip
其中:
8888
是本地端口号(可以根据需要更改)localhost:8888
是远程 Jupyter 服务器的地址和端口username
是您的远程服务器用户名remote_server_ip
是远程服务器的 IP 地址或域名
-
输入您的远程服务器密码。
-
连接成功后,您将看到一个类似于以下内容的提示:
Linux username@remote_server_ip 5.15.0-51-generic #57-Ubuntu SMP Mon Nov 21 16:45:42 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
GPU 加速
许多远程服务器都配备了强大的 GPU,可以显著提升代码执行和数据可视化的速度。要利用服务器端的 GPU,我们需要配置 Jupyter 内核。
-
在 Jupyter 中,单击 "Kernel" 菜单并选择 "Change kernel"。
-
在 "Kernel" 列表中,选择 "GPU accelerated" 或类似的选项。
-
如果没有可用的 GPU 加速内核,则需要安装必要的软件包。请参考服务器上的文档或向系统管理员寻求帮助。
图形化界面
Jupyter 提供了一个名为 "nbextensions" 的扩展程序,可以启用图形化界面。这使我们能够在 Jupyter 中查看图形、创建交互式小部件并与其他可视化工具进行交互。
- 在终端或命令提示符中,输入以下命令安装 nbextensions:
pip install jupyter_nbextensions_configurator
- 重新启动 Jupyter:
jupyter notebook --generate-config
-
打开 Jupyter 并单击 "File" 菜单。
-
选择 "nbextensions",然后启用 "Community Extensions" 和 "Lab Extensions"。
-
单击 "Install" 按钮安装选定的扩展程序。
-
重新加载 Jupyter 以应用更改。
现在,您应该可以在 Jupyter 中访问图形化界面,包括可视化、交互式小部件和其他高级功能。
结语
使用远程服务器上的 Jupyter 可以带来显着优势,例如利用 GPU 加速、多用户访问和方便的团队协作。通过遵循本教程中的步骤,您可以轻松地在远程服务器上设置和使用 Jupyter,并充分利用其强大的功能。通过结合本地代码编辑和远程计算的优点,您可以提高工作效率并加快研究和开发的步伐。