我在运行imagecaptioning.pytorch-master工程时,在测试图像预测效果时,出现报错:ZeroDivisionError: division by zero
解决方法:
要将目录ImageCaptioning.pytorch-master\eval_results\下的.pth文件删除
或者将下面这段代码注释掉,因为这段代码是说如果预测过就不再进行图像预测,所以注释掉就可以循环使用预测功能:
# if opt.only_lang_eval == 1 or (not opt.force and os.path.isfile(pred_fn)):
# # if results existed, then skip, unless force is on
# if not opt.force:
# try:
# if os.path.isfile(result_fn):
# print(result_fn)
# print('ppppp')
# json.load(open(result_fn, 'r'))
# print('already evaluated')
# os._exit(0)
# except:
# pass
#
# predictions, n_predictions = torch.load(pred_fn)
# if opt.dump_json == 1:
# # 转储 json
# json.dump(predictions, open('vis/vis.json', 'w'))
# lang_stats = eval_utils.language_eval(opt.input_json, predictions, n_predictions, vars(opt), opt.split)
# print(lang_stats)
# os._exit(0)
# At this point only_lang_eval if 0
# if not opt.force:
# # Check out if
# try:
# # if no pred exists, then continue
# tmp = torch.load(pred_fn)
# # if language_eval == 1, and no pred exists, then continue
# if opt.language_eval == 1:
# json.load(open(result_fn, 'r'))
# print('Result is already there')
# os._exit(0)
# except:
# pass