Detectron在用train_net.py训练模型的时候如果遇到该问题:
Traceback (most recent call last):
File "tools/train_net.py", line 128, in <module>
main()
File "tools/train_net.py", line 100, in main
merge_cfg_from_list(args.opts)
File "/detectron/lib/core/config.py", line 1078, in merge_cfg_from_list
assert len(cfg_list) % 2 == 0
AssertionError
主要原因可能是输入的命令不正确,导致不能正确解析。博主是加上--skip-test参数进行训练后得到该错误,而不加该参数则可以训练,具体命令如下:
python tools/train_net.py --cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml
OUTPUT_DIR /tmp/detectron-output --skip-test
但是博主并没有多余的样本集,或者不想进行test,所以如何解决加上--skip-test参数而能正常训练呢?
答案是改变该参数的位置,我是放在了OUTPUT_DIR之前,即可正常训练:
python tools/train_net.py --cfg configs/getting_started/tutorial_1gpu_e2e_faster_rcnn_R-50-FPN.yaml --skip-test
OUTPUT_DIR /tmp/detectron-output