(args)
| 152 | |
| 153 | |
| 154 | def main(args): |
| 155 | os.makedirs(args.out_dir, exist_ok=True) |
| 156 | |
| 157 | # setup plots |
| 158 | sns.set_style('darkgrid') |
| 159 | sns.set() |
| 160 | |
| 161 | result_files = glob.glob(os.path.join(args.results_dir, "*.json"), recursive=True) |
| 162 | for resfile in result_files: |
| 163 | with open(resfile, 'r') as infile: |
| 164 | raw_data = json.load(infile) |
| 165 | data = pd.DataFrame(raw_data.values()) |
| 166 | dataname = data.dataset[0] |
| 167 | if args.dataset != "all" and dataname != args.dataset: |
| 168 | continue |
| 169 | |
| 170 | bn_data = data[data.pretrain_iters.str.contains("bn")] |
| 171 | data = data[~data.pretrain_iters.str.contains("bn")] |
| 172 | data.pretrain_iters = pd.to_numeric(data.pretrain_iters, errors='coerce') |
| 173 | # convert batchnorm iters to a new type of data |
| 174 | |
| 175 | try: |
| 176 | data = data.astype({ |
| 177 | "pretrain_iters": int |
| 178 | }) |
| 179 | # pokemon exceptions! |
| 180 | except Exception as exp: |
| 181 | print(f"WARNING: Unable to parse pretrain_iters as int for {dataname}") |
| 182 | if data.result.max() < 1: |
| 183 | data.result *= 100 |
| 184 | data.basetrain = data.basetrain.replace("imagenet_r50_supervised", "supervised imagenet init") |
| 185 | data.basetrain = data.basetrain.replace("moco_v2_800ep", "moco imagenet init") |
| 186 | data.basetrain = data.basetrain.replace("no", "random init") |
| 187 | data.basetrain = data.basetrain.replace("none", "random init") |
| 188 | gen_plots(data, bn_data, { |
| 189 | 'out_dir': args.out_dir, |
| 190 | 'data_name': dataname |
| 191 | }) |
| 192 | |
| 193 | if __name__ == "__main__": |
| 194 | main(parse_args()) |
no test coverage detected