前言
文章性质:实操记录 💻
主要内容:主要记录了如何调整项目代码以成功运行 train.py 文件,但遇到了 nan 问题。
项目源码:GitHub - wenyyu/Image-Adaptive-YOLO
冷知识+1:小伙伴们不经意的 点赞 👍🏻 与 收藏 ✨ 可以让作者更有创作动力!
目录
① AttributeError: 'Namespace' object has no attribute 'val_annotation'
② FileNotFoundError: [Errno 2] No such file or directory
① ModuleNotFoundError: No module named 'tqdm'
① /root/miniconda3/envs/detection/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py
Prepare
在作者提供的 README.md 文件中,已经有比较详细的步骤说明了。
1、运行 voc_annotation.py
在运行 voc_annotation.py 文件前,需要先下载相关的 PASCAL VOC 数据集。
(1)尝试运行
【Step1】首先需要用 conda activate 命令激活相应的虚拟环境:
conda activate detection
【Step2】接着需要用 cd 命令进入项目的根目录:
cd /root/autodl-tmp/pycharm_project
【Step3】最后只需要用 python 命令执行 voc_annotation.py:
python scripts/voc_annotation.py
(2)运行报错
由于我们在尝试运行 voc_annotation.py 时没有仔细查看该文件的内容,因此不可避免地会出现报错。
① AttributeError: 'Namespace' object has no attribute 'val_annotation'
【错误】AttributeError: 'Namespace' object has no attribute 'val_annotation'
【解决】错误原因:在 argparse 中没有定义 val_annotation 参数,但在代码中却用了。解决方式如下图所示:
② FileNotFoundError: [Errno 2] No such file or directory
【错误】FileNotFoundError: [Errno 2] No such file or directory: '../data/dataset_fog/voc_norm_train.txt'
【解决】将文件路径改为远程服务器中的绝对路径,具体如下图所示:
(3)运行成功
2、运行 data_make.py
【Step1】首先需要用 conda activate 命令激活相应的虚拟环境:
conda activate detection
【Step2】接着需要用 cd 命令进入项目的根目录:
cd /root/autodl-tmp/pycharm_project
【Step3】最后只需要用 python 命令执行 data_make.py:
python ./core/data_make.py
【提醒】这里的 data_make.py 需要运行 2 次,不仅要得到 Voc_foggy_train 还要得到 Voc_foggy_val 。
【注意】在 data_make.py 中可以看到:代码有一个加噪的过程,而且这是一个渐进式的过程,不断地加噪,每个样本共分为 10 级的加噪处理,最终这批数据会工作用于模型的训练拟合。这里是可以人为进行修改的,我把加噪等级修改为3,因为VOC数据集太过于庞大啦。
【警告】我不知道我这样改是否有缺漏!请求改过的人帮忙看看!
3、运行 train.py
在运行 voc_annotation.py 文件前,
(1)尝试运行
【Step1】首先需要用 conda activate 命令激活相应的虚拟环境:
conda activate detection
【Step2】接着需要用 cd 命令进入项目的根目录:
cd /root/autodl-tmp/pycharm_project
【Step3】最后只需要用 python 命令执行 train.py:
python train.py
(2)运行报错
① ModuleNotFoundError: No module named 'tqdm'
【错误】ModuleNotFoundError: No module named 'tqdm'
【解决】用 pip install 命令安装 tqdm :
pip install tqdm
(3)运行警告(可忽略)
说实话,我很后悔为这些警告修改了代码。下面是我修改的部分截图,后面修改太多就懒得截图了。
① /root/miniconda3/envs/detection/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py
② /root/miniconda3/envs/detection/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py
③ train.py
④ core/yolov3.py-1
⑤ core/common.py-1
⑥ module 'gast'
⑦ core/common.py-2
⑧ util-filters.py
⑨ core/yolov3.py-2
⑩ core/common.py-3
① train.py-2
② core/backbone.py
③ core/common.py-4
④ core/yolov3.py-3
⑤ others
conda install cudatoolkit=10.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
(4)遇到 nan 问题
cd /root/autodl-tmp/pycharm_project
nohup python train.py > logs/temp.log 2>&1 &
cat logs/temp.log