在parse_file_list.py文件中加入parse_myucf101_splits方法,类似其中的parse_ucf101_splits方法,只需修改对应的文件路径:
def parse_myucf101_splits(level):
class_index_file = 'data/myucf101/txt/classInd.txt'
train_file_template = 'data/myucf101/txt/trainlist.txt'
test_file_template = 'data/myucf101/txt/testlist.txt'
with open(class_index_file, 'r') as fin:
class_index = [x.strip().split() for x in fin]
class_mapping = {x[1]: int(x[0]) - 1 for x in class_index}
def line_to_map(line):
items = line.strip().split()
video = osp.splitext(items[0])[0]
if level == 1:
video = osp.basename(video)
label = items[0]
elif level == 2:
video = osp.join(
osp.basename(osp.dirname(video)), osp.basename(video))
label = class_mapping[osp.dirname(items[0])]
return video, label
splits = []
for i in range(1, 4):
with open(train_file_template.format(i), 'r') as fin:
train_list = [line_to_map(x) for x in fin]
with open(test_file_template.format(i), 'r') as fin:
test_list = [line_to_map(x) for x in fin]
splits.append((train_list, test_list))
return splits