Linux深度学习问题汇总

解决Ubuntu中root账户下tab失效的问题

在 Ubuntu 中,出于安全考虑,默认情况下root用户是被禁用的。当你使用 sudo 或 sudo su 成为 root 用户时,有时可能会发现某些方便的功能,例如 tab 键自动补全,不工作。这可能是由于几个原因:

缺少bash-completion包:
bash-completion 是一个用于辅助 Bash 的交互式命令行操作的实用程序包。确保你安装了它:

sudo apt-get install bash-completion

.bashrc 文件:
默认情况下,/root/.bashrc 可能没有启用自动补全。要检查并启用它,首先编辑 /root/.bashrc:

sudo vim /root/.bashrc

查找以下行:

#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

去掉前面的 # 注释符号,然后保存文件并退出。

然后,重新加载 .bashrc:

source /root/.bashrc

安全设置:
如果上述建议仍然无效,可能是因为某些安全设置或策略阻止了 root 用户的某些功能。

建议始终小心谨慎地使用 root 用户,因为任何误操作都可能对系统造成不可逆的损害。最佳实践是尽量使用普通用户账户,并仅在真正需要时使用 sudo 命令。

解决终端断开导致任务中断的问题

Linux默认的多任务机制决定了进程是以会话的形式存在的,当终端断开时任务就会终端

而对于远程ssh而言,在网络断开的情况下是会默认断开终端的,因此导致会话结束

然而,在进行较大的模型训练时,往往需要耗费长达数小时的时间,而又不能保证网络在数小时内一直保持稳定状态,因此需要引入后台运行的机制

tmux提供了一个保持会话的功能,能够让任务一直在后台运行,以确保在 SSH 连接中启动的长时间运行的任务(如模型训练)在 SSH 会话断开后继续运行

以下是使用和tmux的简单指南:

首先需要在安装tmux:

sudo apt-get install tmux

启动一个新的 tmux 会话:

tmux new -s your_session_name

在此会话中开始你的模型训练。

退出 tmux 会话并保持它在后台运行,按下 Ctrl + B 然后按 D

要重新连接到此 tmux 会话,使用:

tmux attach -t your_session_name

通过上述方式,即使你的 SSH 会话断开或你的终端关闭,你在 tmux中启动的模型训练也会继续运行。当你再次连接到服务器时,可以重新连接到这些会话,查看训练进度。

ubuntu系统如何使用命令行查看gpu使用率

在 Ubuntu 系统中,可以使用多种方法和工具来查看 GPU 的使用情况。对于 NVIDIA 显卡,最常用的工具是 nvidia-smi。以下是一些方法:

使用 nvidia-smi:

如果你尚未安装 NVIDIA 驱动,请首先安装它。

使用 nvidia-smi 命令可以查看 GPU 的状态和使用情况:

nvidia-smi

这个命令将显示 GPU 的型号、总内存、已用内存、GPU 使用率、温度等信息。

使用 nvtop:

nvtop 是一个基于命令行的界面,用于监视 NVIDIA GPUs 的使用情况。它类似于 htop,但专门用于 NVIDIA GPU。

安装 nvtop:

sudo apt install nvtop

运行 nvtop:

nvtop

这将打开一个命令行界面,显示 GPU 使用情况、内存使用情况等信息。

将终端信息输出到文件中

在执行训练任务或者测试任务是,终端输出的信息是帮我我们判断模型好坏的重要依据,但是终端输出的信息在ssh断开后就会消失,因此需要将其存入文件中方便查看

可以使用重定向操作符 > 或 >> 来把输出保存到文件中

使用 > 重定向到一个新文件:
如果文件不存在,这将创建一个新文件。如果文件已经存在,这将覆盖该文件。

python your_program.py > output.txt

使用 >> 附加到一个文件:
如果文件不存在,这将创建一个新文件。如果文件已经存在,这将在文件的末尾追加输出。

python your_program.py >> output.txt

如果你的程序有标准错误输出(例如错误消息)并且你也想捕获这些,你可以这样做:

同时重定向标准输出和标准错误:

python your_program.py > output.txt 2>&1

这样,标准输出(stdout)和标准错误输出(stderr)都会被重定向到 output.txt 文件中。

你可能感兴趣的:(ubuntu,linux,运维)