diff --git a/extract_features.py b/extract_features.py index 5a85be0..7b7996d 100644 --- a/extract_features.py +++ b/extract_features.py @@ -70,8 +70,7 @@ def setup(args): default_setup(cfg, args) return cfg -@ray.remote -def generate_npz(extract_mode, pba: ActorHandle, *args): +def generate_npz(extract_mode, *args): if extract_mode == 1: save_roi_features(*args) elif extract_mode == 2: @@ -80,7 +79,6 @@ def generate_npz(extract_mode, pba: ActorHandle, *args): save_roi_features_by_bbox(*args) else: print('Invalid Extract Mode! ') - pba.update.remote(1) @ray.remote(num_gpus=1) def extract_feat(split_idx, img_list, cfg, args, actor: ActorHandle): @@ -93,7 +91,6 @@ def extract_feat(split_idx, img_list, cfg, args, actor: ActorHandle): ) model.eval() - generate_npz_list = [] for im_file in (img_list): if os.path.exists(os.path.join(args.output_dir, im_file.split('.')[0]+'.npz')): actor.update.remote(1) @@ -117,18 +114,18 @@ def extract_feat(split_idx, img_list, cfg, args, actor: ActorHandle): features_pooled = [feat.cpu() for feat in features_pooled] if not attr_scores is None: attr_scores = [attr_score.cpu() for attr_score in attr_scores] - generate_npz_list.append(generate_npz.remote(1, actor, + generate_npz(1, args, cfg, im_file, im, dataset_dict, - boxes, scores, features_pooled, attr_scores)) + boxes, scores, features_pooled, attr_scores) # extract bbox only elif cfg.MODEL.BUA.EXTRACTOR.MODE == 2: with torch.set_grad_enabled(False): boxes, scores = model([dataset_dict]) boxes = [box.cpu() for box in boxes] scores = [score.cpu() for score in scores] - generate_npz_list.append(generate_npz.remote(2, actor, + generate_npz(2, args, cfg, im_file, im, dataset_dict, - boxes, scores)) + boxes, scores) # extract roi features by bbox elif cfg.MODEL.BUA.EXTRACTOR.MODE == 3: if not os.path.exists(os.path.join(args.bbox_dir, im_file.split('.')[0]+'.npz')): @@ -150,11 +147,11 @@ def extract_feat(split_idx, img_list, cfg, args, actor: ActorHandle): features_pooled = [feat.cpu() for feat in features_pooled] if not attr_scores is None: attr_scores = [attr_score.data.cpu() for attr_score in attr_scores] - generate_npz_list.append(generate_npz.remote(3, actor, + generate_npz(3, args, cfg, im_file, im, dataset_dict, - boxes, scores, features_pooled, attr_scores)) + boxes, scores, features_pooled, attr_scores) - ray.get(generate_npz_list) + actor.update.remote(1) def main(): @@ -238,4 +235,4 @@ def main(): ray.get(actor.get_counter.remote()) if __name__ == "__main__": - main() \ No newline at end of file + main()