"瑞士军刀库"
在自动驾驶科研中,你不仅要写算法,还要处理海量的数据下载、模型管理和文件重命名。这个文件夹里的脚本就是为了帮你完成这些琐碎但必须的外围辅助任务。
这个文件夹里的文件非常独立,各自都有各自的功能,并负责一个独自的琐碎的常需要的小功能
A. "采购员":数据与模型获取 (Downloaders)
-
download_nocrash_models.py/download_sample_models.py:- 作用:自动从官方服务器下载别人训练好的模型。比如"NoCrash"是自动驾驶里著名的基准测试,你不需要自己从头练,直接下模型来跑测试。
-
get_town03_dataset.py/get_baseline_dataset.py/get_sample_datasets.py:- 作用 :数据集往往几十上百GB。这些脚本封装了下载逻辑,确保数据能准确地下载并解压到项目预设的
_dataset文件夹里。
- 作用 :数据集往往几十上百GB。这些脚本封装了下载逻辑,确保数据能准确地下载并解压到项目预设的
B. "分析师":结果深度复盘 (Analysis)
-
analize_results.py:- 作用:当你跑完几百次测试后,日志文件(Logs)非常乱。这个脚本会扫描所有结果,计算成功率、接管率等指标。
-
plot_predictions_on_images.py:- 作用:这是风光摄影师最喜欢的工具。它会读取图片,并在上面画出 AI 预测的路径或控制指令。你能直观看到 AI 为什么在这个弯道转向过度。
-
plot_offline_evaluation.py:- 作用:绘制"离线评估"的曲线(即预测值与专家真实值的差距)。
C. "修理工":杂项处理 (Maintenance)
-
batch_rename.py:- 作用:数据集的文件名不符合格式?用这个批量改名,避免手动修改几万张图的痛苦。
-
view_npy.py:- 作用 :查看
.npy(NumPy 二进制文件)内容的快速工具。
- 作用 :查看
-
screen_manager.py:- 作用 :通常用于管理服务器上的后台进程(如 Linux 的
screen或tmux),保证你断开连接后训练依然在跑。
- 作用 :通常用于管理服务器上的后台进程(如 Linux 的
2. 与"主线"的关系及数据接口
逻辑关系
-
前置关系 :在运行主线
coiltraine.py之前,你通常需要先运行get_dataset系列脚本来准备"原料"。 -
后置关系 :在
drive.py或测试跑完后,你运行analize_results.py来总结"战果"。 -
辅助关系:它们并不参与神经网络的 Forward 或 Backward 过程,而是作为外围插件存在。
数据接口
这些工具与主线的接口非常简单,主要是**"文件路径协议"**:
-
输入接口 :主线代码在
configs/中定义的路径(如_dataset_path或_logs_path)。 -
输出接口 :它们产生的结果通常直接存入
_results或_plots文件夹,供你写论文或汇报使用。