lmzjms's picture
Upload 1162 files
0b32ad6 verified
raw
history blame
7.77 kB
import os
import argparse
from pathlib import Path
from shutil import copyfile, copytree
parser = argparse.ArgumentParser()
parser.add_argument("--pr")
parser.add_argument("--sid")
parser.add_argument("--ks")
parser.add_argument("--ic")
parser.add_argument("--er_fold1")
parser.add_argument("--er_fold2")
parser.add_argument("--er_fold3")
parser.add_argument("--er_fold4")
parser.add_argument("--er_fold5")
parser.add_argument("--asr_no_lm")
parser.add_argument("--asr_with_lm")
parser.add_argument("--qbe")
parser.add_argument("--sf")
parser.add_argument("--sv")
parser.add_argument("--sd")
parser.add_argument("--se")
parser.add_argument("--st")
parser.add_argument("--ss")
parser.add_argument("--output_dir", required=True)
args = parser.parse_args()
output_dir = Path(args.output_dir)
predict_dir = output_dir / "predict"
output_dir.mkdir(exist_ok=True)
predict_dir.mkdir(exist_ok=True)
processed_tasks = []
if args.pr is not None:
task_name = "pr_public"
processed_tasks.append(task_name)
expdir = Path(args.pr)
src = expdir / "test-hyp.ark"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.ark"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.sid is not None:
task_name = "sid_public"
processed_tasks.append(task_name)
expdir = Path(args.sid)
src = expdir / "test_predict.txt"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.txt"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.ks is not None:
task_name = "ks_public"
processed_tasks.append(task_name)
expdir = Path(args.ks)
src = expdir / "test_predict.txt"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.txt"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.ic is not None:
task_name = "ic_public"
processed_tasks.append(task_name)
expdir = Path(args.ic)
src = expdir / "test_predict.csv"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.csv"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
er_processed = []
for foldid in range(1, 6):
expdir = getattr(args, f"er_fold{foldid}")
if expdir is not None:
task_name = f"er_fold{foldid}_public"
processed_tasks.append(task_name)
er_processed.append(task_name)
expdir = Path(expdir)
src = expdir / f"test_fold{foldid}_predict.txt"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.txt"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if len(er_processed) > 0 and len(er_processed) < 5:
print(f"[Warning] - {er_processed} are included but only in {len(er_processed)} folds. er_public will NOT be scored. er_public will be scored only when all the 5 folds are submitted.")
if args.asr_no_lm is not None:
task_name = "asr_public"
processed_tasks.append(task_name)
expdir = Path(args.asr_no_lm)
src = expdir / f"test-clean-noLM-hyp.ark"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.ark"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.asr_with_lm is not None:
task_name = "asr_lm_public"
processed_tasks.append(task_name)
expdir = Path(args.asr_with_lm)
src = expdir / f"test-clean-LM-hyp.ark"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.ark"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.qbe is not None:
task_name = "qbe_public"
processed_tasks.append(task_name)
expdir = Path(args.qbe)
src = expdir / f"benchmark.stdlist.xml"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "benchmark.stdlist.xml"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.sf is not None:
task_name = "sf_public"
processed_tasks.append(task_name)
expdir = Path(args.sf)
src = expdir / "test-hyp.ark"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.ark"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.sv is not None:
task_name = "sv_public"
processed_tasks.append(task_name)
expdir = Path(args.sv)
src = (expdir / "test_predict.txt").resolve()
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.txt"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.sd is not None:
task_name = "sd_public"
processed_tasks.append(task_name)
expdir = Path(args.sd)
src_dir = expdir / "scoring" / "predictions"
assert src_dir.is_dir(), f"{src_dir} not found"
tgt_dir = predict_dir / task_name
tgt_predict_dir = tgt_dir / "scoring" / "predictions"
copytree(src_dir, tgt_predict_dir, dirs_exist_ok=True)
upstream_rate = expdir / "frame_shift"
if upstream_rate.is_file():
copyfile(upstream_rate, tgt_dir / "frame_shift")
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.se is not None:
task_name = "se_public"
processed_tasks.append(task_name)
expdir = Path(args.se)
src = (expdir / "test_metrics.txt").resolve()
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "metrics.txt"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.ss is not None:
task_name = "ss_public"
processed_tasks.append(task_name)
expdir = Path(args.ss)
src = (expdir / "test_metrics.txt").resolve()
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "metrics.txt"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
if args.st is not None:
task_name = "st_public"
processed_tasks.append(task_name)
expdir = Path(args.st)
src = expdir / "output-st-test.tsv"
assert src.is_file(), f"{src} not found"
tgt_dir = predict_dir / task_name
tgt_dir.mkdir(exist_ok=True)
tgt = tgt_dir / "predict.tsv"
copyfile(src, tgt)
print(f"{task_name} is included in the submission and will be scored after submitted.")
print("Zipping predictions for submission...")
os.chdir(output_dir)
os.system(f"zip -q -r predict.zip predict/")
print(f"Process {len(processed_tasks)} tasks: {' '.join(processed_tasks)}")