seqtrack模型复现
目录一、运行配置路径命令二、配置路径命令为正斜杠local.py内更新为反斜杠的情况【日常在文件夹里面复制的是反斜杠】三、修改配置文件参数补充数据集分类txt文件与数据集读取文件四、原始训练窗口显示的是 stdout 的实时输出五、checkpoints与日志文件保存六、获取每个epoch的训练时长七、 启动 TensorBoard 的命令常用操作技巧一、运行配置路径命令python tracking/create_default_local_file.py --workspace_dir D:/SeqTrack --data_dir D:/SeqTrack/data --save_dir D:/SeqTrack/save弹出WARNING: You are using tensorboardX instead sis you have a too old pytorch version.解决检查环境基本配置与pytorch版本与监测训练的tensorboardX检查当前环境pip list | findstr -i torch tensorboard输出tensorboardX 2.6.2.2torch 1.11.0cu113torchaudio 0.11.0cu113torchvision 0.12.0cu113问题原因在较新的 PyTorch 中torch.utils.tensorboard 已经内置了 TensorBoard 功能而 tensorboardX 是一个第三方替代品。SeqTrack 检测到你安装了 tensorboardX发出警告提示。最简单方案忽略警告二、配置路径命令为正斜杠local.py内更新为反斜杠的情况【日常在文件夹里面复制的是反斜杠】正斜杠/从左上向右下倾斜反斜杠\从右上向左下倾斜个人用下来两个命令没有区别local.py内都会更新为反斜杠python tracking/create_default_local_file.py --workspace_dir D:/SeqTrack --data_dir D:/SeqTrack/data --save_dir D:/SeqTrack/save运行过配置路径的命令之后如果还是反斜杠受累手动改改过之后再运行配置命令会有小惊喜建议不要尝试。三、修改配置文件参数补充数据集分类txt文件与数据集读取文件四、原始训练窗口显示的是 stdout 的实时输出运行训练命令python D:SeqTrack/lib/train/run_training.py --script seqtrack --config seqtrack_b256 --save_dir D:/SeqTrack/save原始训练窗口显示的是 stdout 的实时输出例如Converting polygon to bbox for D:/VideoX-master/SeqTrack/data/OOTB\car_12Converting polygon to bbox for D:/VideoX-master/SeqTrack/data/OOTB\car_12Converting polygon to bbox for D:/VideoX-master/SeqTrack/data/OOTB\plane_23Converting polygon to bbox for D:/VideoX-master/SeqTrack/data/OOTB\plane_23Converting polygon to bbox for D:/VideoX-master/SeqTrack/data/OOTB\ship_5Converting polygon to bbox for D:/VideoX-master/SeqTrack/data/OOTB\ship_5新建终端窗口执行监控训练的命令Get-Content save/logs/seqtrack-seqtrack_b256.log -Wait -Tail 50弹出[train: 1, 50 / 3750] FPS: 14.5 (17.6) , Loss/total: 8.29182 , IoU: 0.04315[train: 1, 100 / 3750] FPS: 15.8 (17.5) , Loss/total: 8.27611 , IoU: 0.03706[train: 1, 150 / 3750] FPS: 16.3 (17.7) , Loss/total: 8.24687 , IoU: 0.04159[train: 1, 200 / 3750] FPS: 16.6 (17.4) , Loss/total: 8.21933 , IoU: 0.04320[train: 1, 250 / 3750] FPS: 16.7 (16.9) , Loss/total: 8.19376 , IoU: 0.03981[train: 1, 300 / 3750] FPS: 16.6 (16.4) , Loss/total: 8.16935 , IoU: 0.03879五、checkpoints与日志文件保存在lib.train.trainers.base_trainer.py中将这段条件语句if epoch (max_epochs - 10) or save_every_epoch or epoch % 10 0:改为if epoch (max_epochs - 10) or save_every_epoch or epoch % 5 0:更改后条件是epoch % 5 0即 epoch 5, 10, 15... 才保存。保存条件是epoch 490或epoch % 5 0运行这个脚本查看checkpoint目录import oscheckpoint_base rD:\SeqTrack\save\checkpointsfor root, dirs, files in os.walk(checkpoint_base):print(fPath: {root})print(fFiles: {files})print(fDirs: {dirs})print(- * 50)就能知道checkpoint实际保存到了哪里六、获取每个epoch的训练时长修改base_trainer.py中的train方法import time def train(self, max_epochs, load_latestFalse, fail_safeTrue, load_previous_ckptFalse, distillFalse): # ... 前面的代码 ... for epoch in range(self.epoch1, max_epochs1): self.epoch epoch epoch_start time.time() # 记录epoch开始 self.train_epoch() epoch_time time.time() - epoch_start print(f[Epoch {epoch}] Completed in {epoch_time:.2f}s ({epoch_time/60:.2f}min)) # 可选写入日志文件 if self._checkpoint_dir and self.settings.local_rank in [-1, 0]: log_file os.path.join(self._checkpoint_dir, self.settings.project_path, epoch_times.txt) os.makedirs(os.path.dirname(log_file), exist_okTrue) with open(log_file, a) as f: f.write(fEpoch {epoch}: {epoch_time:.2f}s\n) # ... 后面的代码 ...七、 启动 TensorBoard 的命令终端输入tensorboard --logdirD:\SeqTrack\tensorboard\train\seqtrack\seqtrack_b256\train注意--logdir后面跟的是文件夹的路径命令成功运行后终端会显示一个本地地址通常是http://localhost:6006/。用浏览器打开这个地址就可以看到训练过程中的损失曲线Loss、准确率Accuracy等图表端口被占用如果你的6006端口被其他程序占用了可以加上--port参数来指定一个新端口比如tensorboard --logdirD:\SeqTrack\tensorboard\train\seqtrack\seqtrack_b256\train --port6007常用操作技巧调整平滑度 (Smoothing)你当前是 0.6可以拖动滑块降低到 0.3-0.4 看更真实的曲线对比不同实验如果有多个训练日志可以在左侧 Runs 区域勾选对比支持正则表达式过滤比如seqtrack.*匹配所有相关实验查看更详细的数据点击 Show data download links 可以下载 CSV 格式的原始数据鼠标悬停在曲线上可以看到具体数值缩放查看用鼠标拖拽选中曲线上的某个区域可以放大双击图表恢复原始视图