深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器

前言

深度学习跑代码的时候,需要跑很多个对比实验,要么开多个窗口并行执行代码,要么就写在一个 .sh 文件里面顺序执行,前面一种并行执行多个任务出结果很慢,而后一种如果想添加任务或者删除某个任务就得全部停止,查了一圈发现市面上似乎没有队列执行代码的工具。

LucQ

用一晚上和一早上折腾写出了这个软件 github,Linux User Command Queue.

bash 复制代码
Linux user command queue

Usage: lucq [OPTIONS]

Options:
  -m, --mode <MODE>      Run mode (cli or exec) [default: cli]
  -a, --add <ADD>        Add one command [default: null]
  -r, --remove <REMOVE>  Remove one command [default: null]
  -l, --list             List all commands
  -c, --clean            Clean database
  -h, --help             Print help
  -V, --version          Print version

准备

需要两个窗口,可以是独立的两个 terminal,也可以是两个 tmux。

第一个窗口

在第一个窗口执行命令

bash 复制代码
lucq --mode exec

这就会启动一个程序等待用户提交任务并执行

第二个窗口

和前面一样,我们的所有操作都是基于 lucq 这个程序的,这里我们做测试提交一个 ls 命令

bash 复制代码
lucq --add ls

或者长一点的 python 文件命令用双引号扩起来

bash 复制代码
lucq --add "test.py -a 1"

如果需要使用特定的 python 虚拟环境或者其他任何环境,可以使用 --executor 选项

bash 复制代码
lucq --add test.py --executor /home/test/venv/bin/python

查看进度

命令提交完成后,第一个窗口中的程序自动会按照我们提交的顺序开始执行命令,并记录运行时间,我们可以通过 --list 命令查看

bash 复制代码
lucq --list
bash 复制代码
S | Jobs
o | id[1], user[test], add_time[2023-10-14 15:41:21], used_time[00:00:10], command[test.py]
o | id[2], user[test], add_time[2023-10-14 15:41:22], used_time[00:00:10], command[test.py]
o | id[3], user[test], add_time[2023-10-14 15:41:22], used_time[00:00:10], command[test.py]
o | id[4], user[test], add_time[2023-10-14 15:46:45], used_time[00:00:10], command[test.py -a 1]
o | id[5], user[test], add_time[2023-10-14 15:47:29], used_time[00:00:10], command[test.py -a 1]
o | id[6], user[test], add_time[2023-10-14 15:47:35], used_time[00:00:10], command[test.py -a 1]
r | id[7], user[test], add_time[2023-10-14 15:47:36], used_time[00:00:00], command[test.py -a 1]
x | id[8], user[test], add_time[2023-10-14 15:48:48], used_time[00:00:00], command[test.py -a 1]
x | id[9], user[test], add_time[2023-10-14 15:49:01], used_time[00:00:00], command[test.py -a 1]

其中 o 代表执行完毕,r 代表正在执行,x 代表未执行,e 代表执行错误。

删除任务

如果我们发现某个代码有错误,需要从队列中删除,可以使用命令

bash 复制代码
lucq --remove 9

这个 9 通过 --list 命令查询获得 id 写入即可

清除数据库

lucq 使用了 sqlite 作为数据库后台,有时候历史命令太长,可以使用命令重置数据库

bash 复制代码
lucq --clean
相关推荐
是上好佳佳佳呀3 分钟前
【深度学习|DAY04】神经网络深度学习笔记(下):损失函数、优化器与正则化
笔记·深度学习·神经网络
hxhy009 分钟前
服务器挖矿排查与清理
运维·服务器
lightqjx13 分钟前
VS Code连接Linux远端服务器的方法
linux·服务器·vs code
阿图灵16 分钟前
基于 GRU 的 Seq2Seq 中英机器翻译:从 Tatoeba 语料到 BLEU 0.195
深度学习·gru·nlp·机器翻译·seq2seq
琥珀色糖35 分钟前
Linux GDB调试
linux·运维·服务器·gdb·调试
NGINX开源社区38 分钟前
NGINX Ingress Controller 5.5:安全性与性能提升,迁移更轻松
java·服务器·nginx
weixin_307779131 小时前
PHP 大文件上传:内存占用、超时与最佳实践
linux·服务器·开发语言·nginx·php
国际云,接待1 小时前
云服务器 SSH 被扫爆了怎么办:安全组、密钥登录与 Fail2ban 的完整加固清单
服务器·安全·ssh
闲云野鹤在人间1 小时前
项目实战:LNMP-电商平台-ECshop
linux·运维·nginx·apache·lvs
吹什么轩1 小时前
linux网络:UDP套接字的业务实现:字典
linux·运维·udp