Skip to content

Instantly share code, notes, and snippets.

@rom1504
Last active July 30, 2022 22:54
Show Gist options
  • Save rom1504/7fa8227c4934a7d7ea244bca00679a60 to your computer and use it in GitHub Desktop.
Save rom1504/7fa8227c4934a7d7ea244bca00679a60 to your computer and use it in GitHub Desktop.
auto eval openclip

Change paths then run keep_evaling.sh

Will keep evaluating openclip during training

to send to wandb, can also run while [ 1 ]; do python3 eval_to_wandb.py; sleep 300; done

ev=eval_$1
if [ -f "$ev" ]; then
true
else
echo "$ev does not exist."
python -m training.main \
--imagenet-val /fsx/rom1504/imagenetval/imagenet_validation \
--model ViT-H-14 \
--pretrained /fsx/rom1504/open_clip/src/logs/2022_07_30-09_18_18-model_ViT-H-14-lr_0.0005-b_96-j_12-p_amp/checkpoints/$1 &> eval_$1
fi
import glob
import wandb
files = list(glob.glob("eval_epoch_*.pt"))
metrics = []
for filename in files:
epoch = int(filename.split("_")[-1].split(".")[0])
f = open(filename, "r")
c = f.read()
good =[l for l in c.split("\n") if "imagenet-zero" in l]
if len(good) != 1:
continue
top5 = float(good[0].split("\t")[1].split(" ")[-1])
top1 = float(good[0].split("\t")[0].split(" ")[-1])
metrics.append([epoch, top1, top5])
metrics.sort(key=lambda x:x[0])
print(metrics)
wandb.init(project="eval_openclip", id="pe5tibnh", resume="allow")
for epoch, top1, top5 in metrics:
wandb.log({'top1': top1, 'top5': top5}, step=epoch)
while [ 1 ]
do
for i in `ls /fsx/rom1504/open_clip/src/logs/2022_07_30-09_18_18-model_ViT-H-14-lr_0.0005-b_96-j_12-p_amp/checkpoints/`
do
bash eval.sh $i
done
sleep 300
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment