Linux深度学习训练笔记

该文详细介绍了如何在Linux服务器上配置CUDA和CUDNN,安装Anaconda并创建conda环境,下载GPU版的PyTorch及相关依赖。接着,通过Flask服务传输训练代码和依赖包,使用wget下载并解压。文章还提到了如何后台运行训练脚本、监控显存及管理日志,以及文件上传下载的方法。
摘要由CSDN通过智能技术生成

首先要拥有Linux服务器一台(云服务器或者本地服务器均可)

Linux系统上需要安装好cuda与cudnn

查看cuda或者显卡信息:

nvidia-smi

安装好Anaconda

下一步,配置conda环境

conda create -n 环境名 python=3.x

下载依赖包

conda install xxx

注意这一步,类似于torch,paddlepaddle等依赖包,均需要下载gpu版本,具体可以到官网去复制下载命令,防止下载错误,有一种方式比较稳妥根据cuda版本,到Pytorch官网Start Locally | PyTorch,寻找对应cuda版本的Pytorch,可以直接从官网下载torch,torchaudio,torchvision三件套,然后把下载下来的whl文件通过后面的wget传给服务器,这样可以保证不会因为源的问题出现下载问题~

在linux上可以直接使用以下命令安装whl依赖包,不会出现下载问题~

pip install torch-1.13.0+cu116-cp37-cp37m-linux_x86_64.whl
pip install torchaudio-0.13.0+cu116-cp37-cp37m-linux_x86_64.whl
pip install torchvision-0.14.0+cu116-cp37-cp37m-linux_x86_64.whl

将训练代码以及需要安装的依赖包打包发送到服务器端

我采用的是7-zip压缩软件,将训练代码先压缩为.tar,再压缩成.gz的格式,放置到static下

其中app.py如下

from flask import Flask

app = Flask(__name__)

@app.route('/')
def tansfer():
    return "Transfer Files"


def main():
    """Run the app."""
    app.run(host="0.0.0.0", port=8000, debug=True)


if __name__ == '__main__':
    main()

传输文件,我采用的方式是从在运行的Flask服务上,下载文件:

wget ip/static/File.tar.gz

wget可以配合Flask服务使用,也可以直接从网页上下载文件

在linux下解压.tar.gz格式的文件,.tar.gz格式文件可以由7-zip进行tar压缩后再进行gzip压缩完成:

tar -zxvf File.tar.gz

ls即可查看到解压后的文件夹了,cd进入该文件夹,选择指定的训练文件train.py进行训练即可:

python train.py

后台挂起运行程序,不会因为关闭终端而停止进程

nohup python train.py &

查看输出日志的最后100行

tail -n 100 nohup.out

提前终止后台进程

查看该进程的pid

ps -aux

根据pid杀死该进程

kill -9 pid

批量删除保存的多余pth模型文件

ls | grep -P "u2net_bce_itr_[0-9]+_train_[0-1]?\.?[0-9]+_tar_[0-1]?\.?[0-9]+\.?pth" | xargs -d"\n" rm

ls获取所有文件名,通过管道符 | 传给grep进行正则化过滤,grep -P "正则表达式",传给xargs进行二次过滤换行符,最后rm删除

"u2net_bce_itr_[0-9]+_train_[0-1]?\.?[0-9]+_tar_[0-1]?\.?[0-9]+\.?pth"解析,u2net_bce_itr_任意长度的数字_train_0或1.任意长度的数字_tar_0或1.任意长度的数字.pth,综上就是匹配一个如下字符串:

"u2net_bce_itr_674000_train_0.175474_tar_0.012131.pth",就可以将这样的pth文件批量删除了,有别的格式的文件,只需要修改正则表达式即可。

查看端口

ps -aux

其中pid就是端口号,如果有端口占用可以根据pid杀死指定进程

kill -9 pid

进一步地,后台启动服务并生成日志

nohup python train.py --dataroot ./datasets/watermark2clean --name watermark2clean_cyclegan --model cycle_gan --gpu_ids 1,2,3 --batch_size 16 > train.log 2>&1 &

分解就是:nohup 启动服务命令 > 日志文件名 2>&1 &,注意,后面的2>&1 &是不变的

正序查看日志100行

cat -n 100 train.log

监控显存使用情况,每五秒刷新一次显存占用:

watch -n 5 nvidia-smi

将G_A.pth文件复制到/Transfer/static文件夹中:

cp /CycleGan/G_A.pth /Transfer/static

从服务器下载文件,也是在服务器上启动Flask服务进行本地下载:

curl -o "latest_net_G_A.pth" "http://10.19.9.72:8000/static/latest_net_G_A.pth"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会抓鼠鼠的阿猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值