tf-faster-rcnn调试笔记(1)
trainval_net.py调试笔记
sh文件修改:
#!/bin/bash
set -x
set -e
export PYTHONUNBUFFERED="True"
NET=vgg1
LOG="experiments/logs/vgg16_voc_2007_trainval__vgg16.txt.`date +'%Y-%m-%d_%H-%M-%S'`"
exec &> >(tee -a "$LOG")
echo Logging output to "$LOG"
set +x
NET_FINAL=output/vgg16/voc_2007_trainval/default/vgg16_faster_rcnn_iter_70000.ckpt
set -x
if [ ! -f ${NET_FINAL}.index ]; then
CUDA_VISIBLE_DEVICES=0 time python ./tools/trainval_net.py \
--weight data/imagenet_weights/vgg16.ckpt \
--imdb voc_2007_trainval \
--imdbval voc_2007_test \
--iters 70000 \
--cfg experiments/cfgs/vgg16.yml \
--net vgg16 \
--set ANCHOR_SCALES [8,16,32] ANCHOR_RATIOS [0.5,1,2] \
TRAIN.STEPSIZE [50000]
fi
./experiments/scripts/test_faster_rcnn.sh $@
pycharm中设置输入参数:
--weight
/home/lab/tf-faster-rcnn/data/imagenet_weights/vgg16.ckpt
--imdb
voc_2007_trainval
--imdbval
voc_2007_test
--iters
70000
--cfg
/home/lab/tf-faster-rcnn/experiments/cfgs/vgg16.yml
--net
vgg1
--set
ANCHOR_SCALES
'[8,16,32]'
ANCHOR_RATIOS
'[0.5,1,2]'
TRAIN.STEPSIZE
'[50000]'
Error:
/usr/bin/python2.7 /home/lab/tf-faster-rcnn/tools/trainval_net.py --weight /home/lab/tf-faster-rcnn/data/imagenet_weights/vgg16.ckpt --imdb voc_2007_trainval --imdbval voc_2007_test --iters 70000 --cfg /home/lab/tf-faster-rcnn/experiments/cfgs/vgg16.yml --net vgg16 --set ANCHOR_SCALES '[8,16,32]' ANCHOR_RATIOS '[0.5,1,2]' TRAIN.STEPSIZE '[50000]'
/usr/local/lib/python2.7/dist-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Traceback (most recent call last):
File "/home/lab/tf-faster-rcnn/tools/trainval_net.py", line 97, in <module>
cfg_from_list(args.set_cfgs)
File "/home/lab/tf-faster-rcnn/tools/../lib/model/config.py", line 386, in cfg_from_list
type(value), type(d[subkey]))
AssertionError: type <type 'str'> does not match original type <type 'list'>
Called with args:
Namespace(cfg_file='/home/lab/tf-faster-rcnn/experiments/cfgs/vgg16.yml', imdb_name='voc_2007_trainval', imdbval_name='voc_2007_test', max_iters=70000, net='vgg16', set_cfgs=['ANCHOR_SCALES', "'[8,16,32]'", 'ANCHOR_RATIOS', "'[0.5,1,2]'", 'TRAIN.STEPSIZE', "'[50000]'"], tag=None, weight='/home/lab/tf-faster-rcnn/data/imagenet_weights/vgg16.ckpt')
Process finished with exit code 1
Debug:
/usr/bin/python2.7 /home/lab/pycharm-community-2018.1.3/helpers/pydev/pydevd.py --multiproc --qt-support=auto --client 127.0.0.1 --port 36633 --file /home/lab/tf-faster-rcnn/tools/trainval_net.py --weight /home/lab/tf-faster-rcnn/data/imagenet_weights/vgg16.ckpt --imdb voc_2007_trainval --imdbval voc_2007_test --iters 70000 --cfg /home/lab/tf-faster-rcnn/experiments/cfgs/vgg16.yml --net vgg16 --set ANCHOR_SCALES '[8,16,32]' ANCHOR_RATIOS '[0.5,1,2]' TRAIN.STEPSIZE '[50000]'
pydev debugger: process 26710 is connecting
Connected to pydev debugger (build 181.4892.64)
/usr/local/lib/python2.7/dist-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
Called with args:
Namespace(cfg_file='/home/lab/tf-faster-rcnn/experiments/cfgs/vgg16.yml', imdb_name='voc_2007_trainval', imdbval_name='voc_2007_test', max_iters=70000, net='vgg16', set_cfgs=['ANCHOR_SCALES', "'[8,16,32]'", 'ANCHOR_RATIOS', "'[0.5,1,2]'", 'TRAIN.STEPSIZE', "'[50000]'"], tag=None, weight='/home/lab/tf-faster-rcnn/data/imagenet_weights/vgg16.ckpt')
Traceback (most recent call last):
File "/home/lab/pycharm-community-2018.1.3/helpers/pydev/pydevd.py", line 1664, in <module>
main()
File "/home/lab/pycharm-community-2018.1.3/helpers/pydev/pydevd.py", line 1658, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "/home/lab/pycharm-community-2018.1.3/helpers/pydev/pydevd.py", line 1068, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "/home/lab/tf-faster-rcnn/tools/trainval_net.py", line 97, in <module>
cfg_from_list(args.set_cfgs)
File "/home/lab/tf-faster-rcnn/tools/../lib/model/config.py", line 386, in cfg_from_list
type(value), type(d[subkey]))
AssertionError: type <type 'str'> does not match original type <type 'list'>
Process finished with exit code 1
解决上述报错,对main函数中的相关代码屏蔽后:
if __name__ == '__main__':
args = parse_args()
print('Called with args:')
print(args)
#if args.cfg_file is not None:
# cfg_from_file(args.cfg_file)
#if args.set_cfgs is not None:
# cfg_from_list(args.set_cfgs)
print('Using config:')
pprint.pprint(cfg)
np.random.seed(cfg.RNG_SEED)
# train set
imdb, roidb = combined_roidb(args.imdb_name)
print('{:d} roidb entries'.format(len(roidb)))
# output directory where the models are saved
output_dir = get_output_dir(imdb, args.tag)
print('Output will be saved to `{:s}`'.format(output_dir))
# tensorboard directory where the summaries are saved during training
tb_dir = get_output_tb_dir(imdb, args.tag)
print('TensorFlow summaries will be saved to `{:s}`'.format(tb_dir))
# also add the validation set, but with no flipping images
orgflip = cfg.TRAIN.USE_FLIPPED
cfg.TRAIN.USE_FLIPPED = False
_, valroidb = combined_roidb(args.imdbval_name)
print('{:d} validation roidb entries'.format(len(valroidb)))
cfg.TRAIN.USE_FLIPPED = orgflip
# load network
if args.net == 'vgg16':
net = vgg16()
elif args.net == 'res50':
net = resnetv1(num_layers=50)
elif args.net == 'res101':
net = resnetv1(num_layers=101)
elif args.net == 'res152':
net = resnetv1(num_layers=152)
elif args.net == 'mobile':
net = mobilenetv1()
else:
raise NotImplementedError
train_net(net, imdb, roidb, valroidb, output_dir, tb_dir,
pretrained_model=args.weight,
max_iters=args.max_iters)
运行截图:
test_net.py调试笔记
sh文件修改:
#!/bin/bash
set -x
set -e
export PYTHONUNBUFFERED="True"
NET=vgg16
LOG="experiments/logs/test_vgg16_voc_2007_trainval.txt.`date +'%Y-%m-%d_%H-%M-%S'`"
exec &> >(tee -a "$LOG")
echo Logging output to "$LOG"
set +x
NET_FINAL=output/vgg16/voc_2007_trainval/default/vgg16_faster_rcnn_iter_70000.ckpt
set -x
CUDA_VISIBLE_DEVICES=0 time python ./tools/test_net.py \
--imdb voc_2007_trainval \
--model ${NET_FINAL} \
--cfg experiments/cfgs/vgg16.yml \
--net vgg16 \
--set ANCHOR_SCALES [8,16,32] ANCHOR_RATIOS [0.5,1,2]
pycharm中设置输入参数:
--imdb
voc_2007_test
--model
/home/lab/tf-faster-rcnn/output/vgg16/voc_2007_trainval/default/vgg16_faster_rcnn_iter_70000.ckpt
--cfg
/home/lab/tf-faster-rcnn/experiments/cfgs/vgg16.yml
--net
vgg16
--set
ANCHOR_SCALES
'[8,16,32]'
ANCHOR_RATIOS
'[0.5,1,2]'
屏蔽main函数中如下代码:
#if args.cfg_file is not None:
# cfg_from_file(args.cfg_file)
#if args.set_cfgs is not None:
# cfg_from_list(args.set_cfgs)
运行截图: