单机和服务器协作的人工智能环境配置及开发指南

单机和服务器协作的人工智能环境配置及开发指南

单机上的Python,R,Matlab 环境均可以用来跑代码,实现可视化,但是很容易受制于GPU等资源限制。所以经常要用到服务器,这篇文章讲解服务器的环境搭建方法及怎么通过使用单机来操作服务器资源,写作过程中借助了chatGPT。

0,服务器登录使用命令:ssh user@ip。Windows上可以使用PuTTY XSHELL等;Linux或者Mac可以直接使用终端或者iTerm等。

1,单机到服务器上的代码和文件的上传下载:FileZilla或者XFTP等,这里以FileZilla为例。

  1. 下载和安装:首先,你需要从FileZilla官方网站(https://filezilla-project.org/)下载并安装FileZilla客户端软件。根据你的操作系统,选择合适的版本进行下载。
  2. 打开FileZilla:安装完成后,打开FileZilla客户端。你会看到一个界面,其中包括远程站点管理器、本地文件和远程文件的视图。
  3. 添加远程站点:点击远程站点管理器图标,然后点击"新站点"按钮。在弹出的对话框中,输入远程服务器的主机名(或IP地址)、端口号、登录类型(通常是"普通FTP”)和登录凭据(用户名和密码)。
  4. 连接到远程服务器:在远程站点管理器中,选择你刚刚创建的站点,然后点击"连接"按钮。FileZilla会尝试连接到远程服务器。
  5. 浏览和传输文件:一旦成功连接到远程服务器,你可以在本地文件和远程文件的视图中浏览和管理文件。你可以使用拖放操作将文件从本地计算机拖到远程服务器,或者从远程服务器拖到本地计算机。
  6. 断开连接:当你完成文件传输后,可以点击"断开"按钮或者关闭 FileZilla来断开与远程服务器的连接。

2,Python的版本管理:conda。也有很多人习惯使用pyenv,这里推荐并使用conda为例。

  1. 安装Miniconda或Anaconda:首先,你需要安装Miniconda或Anaconda。Miniconda是一个精简版的conda发行版,而Anaconda则是一个包含了许多常用科学计算包的完整版。你可以从官方网站(https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html)下载并安装适合你操作系统的版本。

  2. 创建Python环境:使用conda可以创建一个独立的Python环境,每个环境可以有不同的Python版本和包。你可以使用以下命令创建一个新的Python环境:

   conda create --name myenv python=3.8 

这将创建一个名为"myenv"的环境,并指定Python版本为3.8。

  1. 激活和退出环境:创建环境后,你可以使用以下命令激活环境:conda activate myenv 这将激活名为"myenv"的环境。在激活环境后,你可以在该环境中安装和使用特定的Python版本和软件包。要退出环境,可以使用以下命令:conda deactivate

  2. 安装和管理软件包:在激活的环境中,你可以使用conda安装和管理需要的软件包。例如,要安装numpy包,可以使用以下命令: conda install numpy

    这将在当前环境中安装最新版本的numpy包。你还可以使用其他命令,如更新软件包、卸载软件包等来管理软件包。

  3. 切换Python版本:如果你需要切换Python版本,可以创建一个新的环境,并在创建时指定不同的Python版本。然后,你可以根据需要在不同的环境之间进行切换和使用。

  4. Jupyter Lab 一般安装在指定的conda环境中,这样可以利用指定的conda的虚拟环境。Jupyter Lab是一个非常方便和强大的工具,可以帮助你进行Python代码的调试。它提供了交互式的编程环境和丰富的调试功能,让你能够更有效地找出代码中的问题并进行修复。使用 conda install -c conda-forge jupyterlab 或者 conda install jupyterlab 命令进行安装。使用命令jupyter lab 将在浏览器中打开 Jupyter Lab,还可能需要配置token或者密码之类的凭据这里不再赘述。

3,R 和 Python 代码的混合开发

  1. 使用reticulate库:reticulate是一个在R中使用Python的库,可以直接在R代码中调用Python函数和模块。通过reticulate,你可以在R中调用Python的机器学习库、数据处理库等,并将其与R的统计分析和可视化能力结合起来。
  2. 使用rpy2库:rpy2是一个在Python中使用R的库,允许你在Python代码中调用R函数和库。这样你可以在Python项目中使用R的统计分析、数据处理和可视化工具。
  3. 使用 Jupyter Notebook:Jupyter Notebook是一个非常流行的交互式编程环境,支持多种编程语言,包括R和Python。你可以在同一个Notebook中编写R和Python代码,并且可以通过内置的魔术命令在不同的代码块中切换语言。
  4. 使用系统命令或脚本:如果你的项目需要在R和Python之间频繁切换,你也可以使用系统命令或脚本来执行不同语言的代码。比如,你可以使用system函数在R中调用Python脚本,或者使用subprocess库在Python中调用R脚本。

4,GPU的使用。

  1. 查看GPU信息:要查看系统中的GPU信息,可以使用以下命令:

    • 在Linux上使用 nvidia-smi 或者 watch nvidia-smi 命令,可以观察到显卡相关的信息;
    • 在Windows上使用dxdiag命令:dxdiag
  2. 设置CUDA_VISIBLE_DEVICES环境变量:如果你的系统上有多个GPU,并且想要指定使用哪个GPU来运行程序,可以使用CUDA_VISIBLE_DEVICES环境变量。该变量可以设置为一个GPU索引号或者一个逗号分隔的GPU索引号列表。例如,要设置为使用第一个GPU,可以使用以下命令:

    • 在Linux上使用export命令:export CUDA_VISIBLE_DEVICES=0 在Windows上使用set命令:set CUDA_VISIBLE_DEVICES=0
  3. 在Python中使用GPU:如果你使用Python编写GPU加速的代码,可以使用一些库来管理GPU。以下是一些常用的库和相应的使用命令:

    • TensorFlow:在TensorFlow中,可以使用以下代码将操作放在GPU上:
      import tensorflow as tf
      with tf.device('/gpu:0'):
          # 在这里执行GPU加速的操作
      
    • PyTorch:在PyTorch中,可以使用以下代码将模型移动到GPU上:
      import torch
      device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
      model.to(device)
      

      注意:老版本的代码可能使用.cuda()这种方法,尽量推荐使用上面的方法实现代码模型及数据的转移。

    • Keras:在Keras中,可以使用以下代码将模型移动到GPU上:
      import keras
      model = keras.models.Sequential()
      model.add(keras.layers.Dense(64, activation='relu', input_shape=(input_dim,)))
      model.add(keras.layers.Dense(64, activation='relu'))
      model.add(keras.layers.Dense(10, activation='softmax'))
      model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
      with tf.device('/gpu:0'):
          model.fit(x_train, y_train, epochs=10, batch_size=32)
      

5, VS Code的远程开发模式,VS code 支持远程开发,配合Jupyter Notebook和Cursor.app 基本上可以实现代码编辑跳转、远程debug和运行的无缝连接。