2024-2-7

复盘:https://github.com/CVLAB-Unibo/inr2vec?tab=readme-ov-file

# 前言

用的阿里云服务器

vscode-> 先下载扩展 remote-ssh

1
2
3
4
5
6
7
8
9
#ssh username@公有ip

username 经常是root

.config 选一个本地的 我就是第一个C:/29785/.config 差不多这个

Linux

password:输入你自己的

进入终端

1
2
3
mkdir cs
cd cs
mkdir in2vec

发现没 conda

# 服务器安装 anaconda

# 下载 anaconda

后面的链接可以去官网查找自己适合的版本

1
wget https://repo.anaconda.com/archive/Anaconda3-5.3.0-Linux-x86_64.sh

.sh 为 Linux 后缀

——————————————————

如果出现

bash: wget: command not found

具体解决办法如下:
Debian/Ubuntu 系统,需要执行以下命令:

apt-get install -y wget

CentOS 系统则需要输入下面指令:

yum install wget -y

————————————————————

# 赋权 anaconda

接下来我们需要首先赋权再执行安装程序,依次输入下面两句命令:

1
2
3
chmod +x Anaconda3-5.3.0-Linux-x86_64.sh

./Anaconda3-5.3.0-Linux-x86_64.sh

然后出现下面图所示:

image.png

# 一直点击 Enter(回车键)

image.png

此时显示 Anaconda 的信息,并且会出现 More,继续按 Enter,直到如下图所示:

# 输入 yes

image.png

# 继续点击 Enter

image.png

# 输入 yes,添加环境变量

image.png

^^^^^^^^^^^^^^^^^^^^^^^^^^^

这里需要注意点的就是如果你直接跳过这部设置环境变量的话:

1
[no ] >>>

那你需要自己到这个文件夹设置你安装 Anaconda 路径

1
find -name "anaconda3"

(比如上面显示我的是)

1
./anaconda3

单击进去,在最后一行添加:

1
export PATH=./anaconda3/bin:$PATH

这里只是个示例,具体的还是要看你们自己安装的路径。

然后保存更改,输入下面这句指令:

1
source ~/.bashrc

—————————————————————

# 完成安装以及检测是否安装成功

打开新的终端后,进入自己的文件夹目录下,输入 anaconda -V(注意 a 要小写,V 要大写),conda -V ,

1
2
3
conda -V
或者
conda --version

显示版本信息,若显示则表示安装成功。

conda 4.5.11

# Anaconda 安装 Pytorch

# 创建虚拟环境

第一个程序环境名为 pytorch

1
conda create -n pytorch python=3.7 (pytorch 是我自己取的名字)

# 激活环境

使用下面这条命令,激活环境:

1
conda activate pytorch

# 可能出现的问题

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

出现下面所示 1:

image.png

问题出现是因为尽管安装了 AnacondaMiniconda

但是你的 shell 环境没有被正确配置以识别 conda 命令。

解决办法:

  1. 启用 conda 命令:

    • 如果你使用的是 Bash shell 或者类似 Bourne 的 shell,你需要将 conda 的初始化脚本添加到你的 shell 配置文件中(通常是

      1
      ~/.bashrc

      文件),以便 conda 命令可以被识别。根据提供的信息,你可以通过运行以下命令来做到这一点:

      1
      echo ". /root/anaconda3/etc/profile.d/conda.sh" >> ~/.bashrc

      这会将初始化脚本的路径添加到你的

      1
      ~/.bashrc

      文件中,每次启动新的 shell 会话时都会自动执行这个脚本。

  2. 激活 conda 的基础(root)环境:

    • 为了使用 conda 管理你的环境和包,你需要激活 conda 的基础环境。你可以通过在终端中运行以下命令来做到这一点:

      1
      conda activate

    • 如果你想在每次打开新的终端会话时自动激活 conda 的基础环境,你可以将上述命令添加到你的

      1
      ~/.bashrc

      文件中:

      1
      echo "conda activate" >> ~/.bashrc

  3. 移除旧的 PATH 设置:

    • 如果你之前尝试通过直接修改 PATH 环境变量来使用 conda ,你应该从你的

      1
      ~/.bashrc

      文件中移除这样的行:

      1
      export PATH="/root/anaconda3/bin:$PATH"

    • 这是因为直接修改 PATH 不再是推荐的方法,使用 conda 的初始化脚本和 conda activate 命令是更好的选择。

完成以上步骤后,关闭并重新打开你的终端,或者运行 source ~/.bashrc 来使改动生效。这样,你的 shell 环境就被正确配置了,应该能够识别 conda 命令了。

出现下面所示 2:

(pytorch) root@dev-wyf-react:~/wyf#

检测环境是否安装好:

1
conda info --envs

出现下面所示:

base /root/anaconda3
pytorch * /root/anaconda3/envs/pytorch

然后去选择适合自己的 pytorch 版本,点击下面那个链接:

https://pytorch.org/

get started

image-20240207012929597

输入到控制台:

1
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

弹出提示,输入 y,即可完成安装,显示 “done”。

——————————————————————————————

# 测试安装成功

首先输入:

1
python

然后在输入:

1
import torch

image.png

如果没有可以重新下载康康或者查看环境

# 退出之后如何查看自己安装的环境

如果在一台服务器上安装多个环境,一下子可能不记得需要激活哪个环境名称,这时候我们需要使用下面这个命令来查找:

1
conda info --envs

image-20240207012544351

# 复盘项目

打开

https://github.com/CVLAB-Unibo/inr2vec?tab=readme-ov-file

# 配置 git

1
git --version

如果已经安装过了就可以直接跳到 3.2 了

也不知道阿里云服务器什么发行版,输入如下命令查看

1
cat /etc/*-release

image.png

根据信息,Alibaba Cloud Linux 3 是一个与 RHEL(Red Hat Enterprise Linux)、Fedora 和 CentOS 兼容的发行版。

使用与这些发行版相同的包管理器,大多数情况下将是 yum 或者在某些新版本中是 dnf

以下命令来安装 git

1
2
sudo yum update
sudo yum install git

或者,如果系统支持 dnf

1
2
sudo dnf update
sudo dnf install git

执行更新( yum updatednf update )是一个好习惯,它会确保所有的软件包都是最新的。然后,使用安装命令来安装 git

# git clone 代码

1
git clone https://github.com/CVLAB-Unibo/inr2vec.git

等一会儿就下好啦

# 创建对应的环境

!!!!以下内容仅作知识补充

# 创建虚拟环境

​ Anaconda 创建环境:
​ 比如,创建 pyhon=3.7 的版本环境取名叫 inr2vec

1
conda create -n inr2vec python=3.7

# 删除虚拟环境操作:(谨慎操作)

1
conda remove -n inr2vec --all

# 激活环境

1
conda activate inr2vec

如果发现进不去,那么

先: source activate inr2vec

再: conda activate inr2vec

1
2
# 查看python版本
python --version

# 查看环境下已有的安装包:

1
conda list

效果如下

image.png

在进入虚拟环境的情况下, 安装对应包 直接

1
pip install xxxx 或者 conda install xxxx

如:

1
pip install tensorflow

注意 :此环境下的安装包在 退出虚拟环境后无法使用

# 退出当前虚拟环境:

1
conda deactivate

补充:Linux 下查看已有虚拟环境:

1
conda-env list

提醒:有时候遇到过几次异常,所以开启完虚拟环境后最好使用命令

1
which python

判断编译器位置最为稳妥(inr2vec 是虚拟环境名),有一个 home/anaconda/envs/nlp/bin/python

image.png

如果发现没有在 anaconda/envs 的虚拟环境 (inr2vec) 下,则多次使用

1
conda deactivate

先退出当前环境,然后再重新使用 source activate xxxx 进入环境

# 重命名环境

conda 其实没有重命名指令,实现重命名是通过 clone 完成的,分两步:
①先 clone 一份 new name 的环境
②删除 old name 的环境

如,将 inr2vec 重命名成 tf2

1
conda create -n tf2 --clone inr2vec

删除原环境

1
conda remove -n inr2vec --all

————————————

# 根据 readme 继续操作

image-20240207095527514

image-20240207095541074

# 跟着操作细节

Create a virtual environment and install the library pycarus :

1
2
3
4
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip setuptools
pip install pycarus

前两个没问题 第三个开始发现太慢了

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

于是决定来个镜像

# 为本地 conda 环境配置国内镜像源

1
conda config --add channels https://mirrors.aliyun.com/pypi/simple/

# 为服务器的 conda 环境配置国内镜像源

添加清华镜像源

1
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/

【注】使用 http 不是 https,在后面加上 win-64

# 常用操作

显示添加的源通道

1
conda config --show-sources

移除某一镜像源

1
conda config --remove channels 源名称或链接 

验证安装

为了确保正确安装了 PyTorch,我们可以通过运行示例 PyTorch 代码来验证安装。在这里,我们将构造一个随机初始张量

在 anaconda prompt (miniconda3) 命令行或者 shell 中,输入:

1
python 

然后输入以下代码:

1
2
3
import torch 
x = torch.rand(5, 3)
print(x)

输出应类似于以下内容:

1
2
3
4
5
tensor([[0.3380, 0.3845, 0.3217],
[0.8337, 0.9050, 0.2650],
[0.2979, 0.7141, 0.9069],
[0.1449, 0.1132, 0.1375],
[0.4675, 0.3947, 0.1426]])

此外,如果要检查 PyTorch 是否启用了 GPU 和 CUDA,请运行以下命令以返回是否启用了 CUDA 驱动程序:

1
2
import torch  
torch.cuda.is_available()

如果返回了 True, 恭喜您,成功安装了 GPU 版本。

——————————————————————————————

Then, try to import pycarus to get the command that you can run to install all the needed Pytorch libraries:

常用的检查有没有 $ pip install -U pip setuptools 装好包的步骤:

1
2
3
4
$ python3
>>> import pycarus
...
ModuleNotFoundError: PyTorch is not installed. Install it by running: source /XXX/.venv/lib/python3.8/site-packages/pycarus/install_torch.sh

exit()退出 python 环境

不记得有没有安装好

$ pip install -U pip setuptools
$ pip install pycarus

重新执行啦

1
pip install -U pip setuptools

————————————————————————

出现这种情况

image.png

成功安装

waring 是因为

在 Linux 中, root 是具有最高权限的用户账户,可以访问和修改系统的任何部分。以 root 用户身份运行 pip 可能会导致权限问题,尤其是当系统的包管理器试图管理相同的 Python 包时。这可能会导致系统中的包版本冲突或损坏。

解决方法(无虚拟环境条件)

1
2
3
python3 -m venv myenv        # 创建一个名为myenv的虚拟环境
source myenv/bin/activate # 激活虚拟环境
pip install package_name # 在虚拟环境中安装包

——————————————————

# 尾声:磁盘空间不足

安装包后

ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device

磁盘空间不足的错误( No space left on device

删除不必要的文件或数据:首先,检查您的磁盘空间使用情况,查找并删除不再需要的大文件或目录。可以使用如 dudf 命令来帮助您找出使用最多磁盘空间的目录。

1
2
df -h          # 查看每个挂载点的磁盘使用情况
du -sh /* # 查看根目录下每个文件夹的大小

如果发现特定目录特别大,可以深入查看该目录下的内容:

1
du -sh /path/to/directory/*   # 替换路径以检查特定目录

当找到不需要的大文件或目录时,使用 rm 命令删除它们:

1
rm -rf /path/to/directory/large_file   # 替换路径和文件名以删除大文件

image.png

  1. 清理缓存:某些系统和应用程序会创建缓存文件,这些文件可以删除以释放空间。例如,您可以清理包管理器的缓存:

    • 如果您的系统基于 RPM(如 Alibaba Cloud Linux),您可以使用以下命令清理缓存:

      1
      sudo yum clean all  # 或者 sudo dnf clean all

      这将删除缓存的软件包和软件仓库元数据。

  2. 删除旧的或无用的虚拟环境:如果您创建了虚拟环境并且不再需要它们,可以直接删除包含虚拟环境的目录。假设您的虚拟环境名为 myenv ,可以使用以下命令:

    1
    rm -rf myenv

    请确保只删除不再需要的环境,因为这个操作是不可逆的。

  3. 卸载不需要的软件包:如果安装了不再需要的软件包,可以将它们卸载以释放空间。

    查找并卸载不再需要的软件包:

    1
    sudo yum remove package_name   # 替换package_name为您想要卸载的包名

  4. 检查并清理日志文件:系统日志文件有时会变得很大。检查 /var/log 目录并删除旧的或不必要的日志文件。对于日志文件的清理,建议谨慎行事,因为某些日志文件对于系统运维和故障排查很重要。

    1
    2
    sudo du -sh /var/log/*     # 查看日志文件的大小
    sudo rm /var/log/old_log_file # 删除旧的或大的日志文件,替换old_log_file为实际文件名

    注意:在删除任何日志文件之前,请确保这些文件不是正在使用的或对系统运行至关重要的。

  5. 检查用户文件:检查您的家目录下的文件,并移除不再需要的内容:

1
2
3
cd ~                    # 切换到家目录
du -sh * # 查看家目录下文件和目录的大小
rm -rf unnecessary_folder_or_file # 删除不需要的文件或目录

警告rm -rf 命令非常强大,它会在没有任何提示的情况下删除文件和目录。在使用之前,请确保您正在删除正确的文件或目录。如果不确定,最好备份或者单独删除文件而非整个目录。

但要请格外小心,不要删除不了解的系统文件,这可能会导致系统不稳定或不可用。如果您不确定某个文件或目录的用途,请在删除前进行查询或备份。

# 最后查看服务器情况

1
free -m

image.png

Mem 行(单位均为 M):
* total:内存总数
* used:已使用内存数
* free:空闲内存数
* shared:当前废弃不用
* buffers:缓存内存数(Buffer)
* cached:缓存内舒数(Page)

(-/+ buffers/cache) 行:

  • (-buffers/cache): 真正使用的内存数,指的是第一部分的 used - buffers - cached
  • (+buffers/cache): 可用的内存数,指的是第一部分的 free + buffers + cached

Swap 行指交换分区。

实际上不要看 free 少就觉得内存不足了,buffers 和 cached 都是可以在使用内存时拿来用的,应该以 (-/+ buffers/cache) 行的 free 和 used 来看。只要没发现 swap 的使用,就不用太担心,如果 swap 用了很多,那就要考虑增加物理内存了。

# 查看 CPU 使用情况

使用命令:

1
top

大致结果类似下图

上方文字部分的红框为总的 CPU 占用百分率,下方的表格是每个进程的 CPU 占用率,在表格第一行可以看到红框中占用率超过了 150%,这是因为服务器是多核 CPU,而该进程使用了多核。

# 查看显卡使用情况

使用命令:

1
nvidia-smi

大致结果类似下图:

image.png

表格中会显示显卡的一些信息,第一行是版本信息,第二行是标题栏,第三行就是具体的显卡信息了,如果有多个显卡,会有多行,每一行的信息值对应标题栏对应位置的信息。

1
2
3
4
5
6
7
8
9
10
11
12
* GPU:编号
* Fan:风扇转速,在0到100%之间变动,这里是42%
* Name:显卡名,这里是TITAN X
* Temp:显卡温度,这里是69摄氏度
* Perf:性能状态,从P0到P12,P0性能最大,P12最小
* Persistence-M:持续模式的状态开关,该模式耗能大,但是启动新GPU应用时比较快,这里是off
* Pwr:能耗
* Bus-Id:涉及GPU总线的东西
* Disp.A:表示GPU的显示是否初始化
* Memory-Usage:现存使用率,这里已经快满了
* GPU-Util:GPU利用率
* Compute M.:计算模式

需要注意的一点是显存占用率和 GPU 占用率是两个不一样的东西,类似于内存和 CPU,两个指标的占用率不一定是互相对应的。

在下面就是每个进程使用的 GPU 情况了。

———————————————

由于项目复盘起来直接撑爆内存条,所以下一篇学习一些 clip 和 ulip

参考文档

https://blog.csdn.net/wyf2017/article/details/118676765

https://www.cnblogs.com/brithToSpring/p/13494966.html

https://zhuanlan.zhihu.com/p/434356947

https://blog.csdn.net/Cloudox_/article/details/78651637

更新于

请我喝[茶]~( ̄▽ ̄)~*

Debra 微信支付

微信支付

Debra 支付宝

支付宝