深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器
前言
深度学习跑代码的时候,需要跑很多个对比实验,要么开多个窗口并行执行代码,要么就写在一个 .sh 文件里面顺序执行,前面一种并行执行多个任务出结果很慢,而后一种如果想添加任务或者删除某个任务就得全部停止,查了一圈发现市面上似乎没有队列执行代码的工具。
LucQ
用一晚上和一早上折腾写出了这个软件 github,Linux User Command Queue.
Linux user command queueUsage: 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。
第一个窗口
在第一个窗口执行命令
lucq --mode exec
这就会启动一个程序等待用户提交任务并执行
第二个窗口
和前面一样,我们的所有操作都是基于 lucq 这个程序的,这里我们做测试提交一个 ls 命令
lucq --add ls
或者长一点的 python 文件命令用双引号扩起来
lucq --add "test.py -a 1"
如果需要使用特定的 python 虚拟环境或者其他任何环境,可以使用 --executor 选项
lucq --add test.py --executor /home/test/venv/bin/python
查看进度
命令提交完成后,第一个窗口中的程序自动会按照我们提交的顺序开始执行命令,并记录运行时间,我们可以通过 --list 命令查看
lucq --list
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 代表执行错误。
删除任务
如果我们发现某个代码有错误,需要从队列中删除,可以使用命令
lucq --remove 9
这个 9 通过 --list 命令查询获得 id 写入即可
清除数据库
lucq 使用了 sqlite 作为数据库后台,有时候历史命令太长,可以使用命令重置数据库
lucq --clean
相关文章:
深度学习小工具:Linux 环境下的用户命令和脚本顺序执行器
前言 深度学习跑代码的时候,需要跑很多个对比实验,要么开多个窗口并行执行代码,要么就写在一个 .sh 文件里面顺序执行,前面一种并行执行多个任务出结果很慢,而后一种如果想添加任务或者删除某个任务就得全部停止&…...
c# WPF 应用程序在屏幕上居中显示
xaml<Window ... WindowStartupLocation"CenterScreen">...
JVM之class文件结构剖析
文章目录 0.前言1. 引言1.1 Java编译原理基础1.2 Class文件在Java编译过程中的角色 2. Class文件的整体结构2.1 Class 文件组成 3. Class文件的详细解析3.1 魔数与版本号的作用和意义3.2 常量池的结构和作用3.3 访问标志的含义和可能的值3.4 类索引、父类索引和接口索引集合的作…...
TDengine 签约中石化,支撑八大油田 PCS 系统
近日,TDengine 成功签约中国石化 PCS 一级部署时序数据库项目。未来,TDengine 将作为中国石化 PCS 系统的时序数据库,为石化总部、胜利油田、西北油田、中原油田、河南油田、华北油田、江苏油田、华东油田、江汉油田等油田 PCS 系统提供高效、…...
win11 定时计划任务
控制面板 任务计划 添加任务计划 ,选按步骤添加。...
C++入门之引用与内联函数
一、引用 1、初步理解 引用在语法上的理解就是起别名,用法就是在类型后面加&,例子:int a 1; int& b a; 上例所示,执行后,b就是a的别名,它们代表同一块空间,a的改变会影响b࿰…...
浅谈智能照明控制系统应用在城市轨道交通
叶根胜 江苏安科瑞电器制造有限公司 江苏江阴 214405 摘要:在传统的城市轨道交通设计方面,照明设计方案具有一定的弊端。随着计算机技术的发展,智能化技术渐渐步入人们的生活并成为主流,故在城市轨道交通中应用新型的照明控制设…...
macos 中ios系统升级,但是macos还是老系统,在手机上无法安装ios软件
https://github.com/filsv/iOSDeviceSupport 构建项目出现 解决的方法: 就可以了,...
Pytest+Allure生成可添加附件的测试报告
#测试套件层级 allure.feature("测试PecExplorer") #重试次数,粒度为用例,建议用例设计可重复性高 pytest.mark.flaky(reruns3) class TestPecExplorer:#功能模块层级allure.story("登录界面")#测试用例层级allure.title("Test…...
Spacedrive:开源跨平台文件管理 | 开源日报 No.57
denoland/deno Stars: 91.2k License: MIT Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 运行时,使用 V8 引擎并用 Rust 构建。其主要功能包括: 默认情况下具有高度安全性,除非显式启用,否则无法访问文件、网络或环…...
c# 同步异步锁
在 C# 中,synchronization(同步)和asynchronization(异步)锁都是用来保护共享资源的。在单线程环境中,这些锁不是必要的,但在多线程环境中,由于多个线程可以访问和修改同一资源&…...
【Spring AOP】统⼀数据返回格式
为什么需要统一数据返回格式? ⽅便前端程序员更好的接收和解析后端数据接⼝返回的数据。降低前端程序员和后端程序员的沟通成本,按照某个格式实现就⾏了,因为所有接⼝都是这样返回的。有利于项⽬统⼀数据的维护和修改。有利于后端技术部⻔的…...
python+django高校体育乒乓球场地预约管理系统_s2409
本系统提供给管理员对首页,个人中心,用户管理,乒乓球场管理,场地类型管理,场地预约管理,暂离申请管理,离开申请管理,管理员管理,留言反馈,系统管理等诸多功能进行管理。本系统对于用户输入的任何信息都进行了一定的验证,为管理员操…...
Python Selenium设计模式-POM
前言本文就python selenium自动化测试实践中所需要的POM设计模式进行分享,以便大家在实践中对POM的特点、应用场景和核心思想有一定的理解和掌握。 为什么要用POM 基于python selenium2开始UI级自动化测试并不是多么艰巨的任务。**只需要定位到元素,执…...
【计算机毕设选题推荐】网络在线考试系统SpringBoot+SSM+Vue
前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 网络在线考试系统 技术栈 SpringBootSSMVueMySQLMaven 文章目录 一、网络在线考试系统-环境…...
AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA的LIN总线控制器设计与验证(续)
目录 3.2.3波特率发生模块 3.2.4数据采样模块 3.2.5校验和产生模块 3.2.6奇偶校验模块 3.2.7接收模块<...
Qt ModelView显示数据库数据
利用qt的model view来显示数据表userudps里的数据 用了一个label 两个combox和一个tableview,实现如下效果: 我这里用到是mysql数据库,一般配置mysql数据库就两种有驱动或者没驱动,有的话把mysql的bin目录的libmysql.dll复制到q…...
Vue-3.1缓存组件keep-alive
问题:从首页卡片点到详情页,又点返回,数据重新加载了->希望回到原来的位置 原因:路由跳转后,组件被销毁了,返回回来组件又被重建了,所以数据重新被加载了 解决:利用keep-alive将…...
14.8 Socket 一收一发通信
通常情况下我们在编写套接字通信程序时都会实现一收一发的通信模式,当客户端发送数据到服务端后,我们希望服务端处理请求后同样返回给我们一个状态值,并以此判断我们的请求是否被执行成功了,另外增加收发同步有助于避免数据包粘包…...
7天狂揽 1.3w star 的 MetaGPT,他们的目标让软件公司为之一惊
在 AI 产品爆炸的今天,拥有各种本领的 AI 产品层出不穷,但 MetaGPT 的出现仍然显的格外耀眼,其可以实现只输入单一 prompt,就可以输出需求分析、需求文档、技术架构、最终代码等等产物,这相当于一个开发团队的输出成果…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
