Python 代码解读:将视频预测结果写入 CSV 文件
这段代码的功能是将视频预测结果写入到 CSV 文件中。
首先,判断 args.csv_file 是否为 None,如果不是 None,则执行以下操作:
- 打印要写入的 CSV 文件路径。
- 打开
test_file_list中的第一个文件,将其内容读取到categories列表中。 - 对
categories列表进行处理,去除每个元素的首尾空格。 - 打开
test_file_list中的第一个文件,将其内容读取到vid_names列表中。 - 对
vid_names列表进行处理,只保留每个元素中以空格分隔的第一个部分。 - 断言
vid_names列表的长度与video_pred列表的长度相等。 - 如果
args.dataset不等于 'somethingv2',则只输出 top1 的结果到 CSV 文件中。- 打开要写入的 CSV 文件。
- 遍历
vid_names和video_pred列表,将每个元素写入到 CSV 文件中,格式为 '视频名称;预测结果'。
- 如果
args.dataset等于 'somethingv2',则输出 top5 的结果到 CSV 文件中。- 打开要写入的 CSV 文件。
- 遍历
vid_names和video_pred_top5列表,将每个元素写入到 CSV 文件中,格式为 '视频名称;预测结果1;预测结果2;预测结果3;预测结果4;预测结果5'。
代码示例:
if args.csv_file is not None:
print('=> Writing result to csv file: {}'.format(args.csv_file))
with open(test_file_list[0].replace('test1_videofolder.txt', 'category.txt')) as f:
categories = f.readlines()
categories = [f.strip() for f in categories]
with open(test_file_list[0]) as f:
vid_names = f.readlines()
vid_names = [n.split(' ')[0] for n in vid_names]
assert len(vid_names) == len(video_pred)
if args.dataset != 'somethingv2': # only output top1
with open(args.csv_file, 'w') as f:
for n, pred in zip(vid_names, video_pred):
f.write('{};{}
'.format(n, categories[pred]))
else:
with open(args.csv_file, 'w') as f:
for n, pred5 in zip(vid_names, video_pred_top5):
fill = [n]
for p in list(pred5):
fill.append(p)
f.write('{};{};{};{};{};{}
'.format(*fill))
原文地址: https://www.cveoy.top/t/topic/quHd 著作权归作者所有。请勿转载和采集!