• Linux深度学习问题汇总


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

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

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

    sudo apt-get install bash-completion
    
    • 1

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

    sudo vim /root/.bashrc
    
    • 1

    查找以下行:

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

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

    然后,重新加载 .bashrc:

    source /root/.bashrc
    
    • 1

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

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

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

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

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

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

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

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

    首先需要在安装tmux:

    sudo apt-get install tmux
    
    • 1

    启动一个新的 tmux 会话:

    tmux new -s your_session_name
    
    • 1

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

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

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

    tmux attach -t your_session_name
    
    • 1

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

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

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

    使用 nvidia-smi:

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

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

    nvidia-smi
    
    • 1

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

    使用 nvtop:

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

    安装 nvtop:

    sudo apt install nvtop
    
    • 1

    运行 nvtop:

    nvtop
    
    • 1

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

    将终端信息输出到文件中

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

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

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

    python your_program.py > output.txt
    
    • 1

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

    python your_program.py >> output.txt
    
    • 1

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

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

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

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

    运行脚本输出到文件保存

    ./your_script.sh | tee output.txt    # 输出将被写入 output.txt,并显示在屏幕上
    ./your_script.sh | tee -a output.txt # 输出将被追加到 output.txt,并显示在屏幕上
    
    • 1
    • 2

    拷贝Windows文件到远程

    sftp -oPort=33839 root@xxx.com
    put C:\Users\Admin\Desktop\Training_Data.mat ./home/xxx/data
    get remote_file.txt local_folder/
    
    • 1
    • 2
    • 3
    rsync -avz --progress -e "ssh -p [port]" user_name@host_name:/path/to/folder ./path/to/folder
    
    • 1
  • 相关阅读:
    SpringBoot社区小区物业管理停车场系统(Java+Layui+MyBatis+Python+Mysql)
    第63篇 QML 之 JS中的代码块、条件语句
    第十八章:Swing自述
    vue在方法里如何使用过滤器(在methods函数里使用filters)
    解决Unity打包时,Android SDK 报错问题
    实拆一个风扇
    应用层协议 -- HTTPS 协议
    BootStrap--的使用方法
    C++智能指针
    uniapp 地图如何添加?你要的教程来喽!
  • 原文地址:https://blog.csdn.net/qq_39432978/article/details/132843653