PyTorch 深度学习常用 Linux 指令总结
在使用 PyTorch 进行深度学习任务时,Linux 系统提供了强大的命令行工具,帮助我们高效地管理环境、监控资源、处理文件和调试代码。以下是一些常用的 Linux 指令,特别适合 PyTorch 开发者。
1. 环境配置与管理
安装 PyTorch 和相关库
- 使用
pip
安装 PyTorch 和常见深度学习库:pip install torch torchvision torchaudio
- 如果使用 Anaconda 或 Miniconda,可以通过以下命令安装:
conda install pytorch torchvision torchaudio -c pytorch
查看已安装的 PyTorch 版本
- 在终端中运行以下命令,检查 PyTorch 和 torchvision 的版本:
python -c "import torch; print(torch.__version__)" python -c "import torchvision; print(torchvision.__version__)"
- 输出示例:
1.13.1 0.14.1
设置环境变量(与 GPU 相关)
- 如果需要手动设置 CUDA 相关路径,可以编辑
~/.bashrc
或~/.zshrc
文件:export CUDA_HOME=/usr/local/cuda export PATH=$PATH:$CUDA_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
2. 系统和硬件信息查询
查看 GPU 使用情况
- 使用
nvidia-smi
工具查看 GPU 的使用情况(需安装 NVIDIA 驱动):nvidia-smi
- 输出示例:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 470.103.01 Driver Version: 470.103.01 CUDA Version: 11.4 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 Tesla K80 Off | 00000000:00:1E.0 Off | 0 | | N/A 35C P8 30W / 149W | 0MiB / 11441MiB | 0% Default | +-------------------------------+----------------------+----------------------+
查看系统内存和 CPU 使用情况
- 使用
top
或htop
(需安装htop
)查看系统资源使用情况:top htop
- 输出示例:
top - 10:37:36 up 13 days, 23 min, 1 user, load average: 0.06, 0.02, 0.00 Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 6132868 total, 4545316 free, 312528 used, 1275024 buff/cache KiB Swap: 8228860 total, 8105104 free, 123756 used. 5295728 avail Mem
3. 文件系统管理
切换目录和列出文件
- 使用
cd
切换工作目录:cd /path/to/your/project
- 使用
ls
查看当前目录下的文件和文件夹:ls -lh
- 输出示例:
total 4.0K drwxr-xr-x 2 user user 4.0K Feb 14 12:00 models -rw-r--r-- 1 user user 256 Feb 13 15:23 train.py -rw-r--r-- 1 user user 1.2M Feb 12 10:00 dataset.zip
解压和压缩文件
- 解压常见的数据集文件:
.zip
文件:unzip dataset.zip
.tar.gz
文件:tar xzvf dataset.tar.gz
- 压缩文件到
.zip
格式:zip -r dataset.zip dataset_folder
查找文件
- 使用
find
或locate
查找特定文件:- 按文件名查找:
find /path/to/search -name "*.py"
- 使用
locate
(需安装并更新数据库):locate train.py
- 按文件名查找:
4. 任务管理与调试
后台运行任务
- 使用
&
符号将任务放到后台运行:python train.py &
- 使用
screen
或tmux
创建会话以在断开连接后保持任务运行:screen -S training_session # 创建一个名为 training_session 的会话
- 在会话中运行命令后,按
Ctrl + A + D
分离会话,使用以下命令重新连接:screen -r training_session
查看和终止进程
- 使用
ps
和grep
查找进程:ps aux | grep python
- 终止指定进程(假设进程 ID 为
1234
):kill 1234
5. 日志和调试
实时查看日志文件
- 使用
tail
动态跟踪日志文件的更新:tail -f training.log
- 输出滚动显示日志文件的新内容,通过
Ctrl + C
停止。
调试代码
- 在终端中使用
pdb
(Python 调试器)调试 PyTorch 代码:python -m pdb train.py
- 可以设置断点、逐行调试、检查变量等。
6. 网络和数据传输
传输文件到远程服务器
- 使用
scp
将本地文件传输到远程服务器:scp -r /path/to/local/dataset user@remotehost:/path/to/remote/dataset
测试网络连接
- 使用
ping
测试与远程服务器的连接:ping remotehost
- 使用
telnet
测试端口的连通性(检查是否能访问远程服务器的特定端口):telnet remotehost 80
7. 系统优化
调整系统资源限制
- 编辑
/etc/security/limits.conf
文件以增加文件描述符限制(适用于高并行任务):# 添加以下内容(需要管理员权限) <username> hard nofile 65536 <username> soft nofile 65536 sudo ulimit -n 65536
查看系统信息和硬件配置
- 查看 CPU 信息:
lscpu
- 查看内存信息(部分系统可能没有此命令):
lsmem
- 查看 NVIDIA GPU 信息:
lspci -nnk | grep -i nvidia -A 3