def main(): set_determinstic_mode(seed=1538574472) args = _parse_args() trainer = Trainer(args.config, args.device) train_data = breakfast.get_mstcn_data('train') test_data = breakfast.get_mstcn_data('test') trainer.train(train_data, test_data)
def main(): set_determinstic_mode() args = _parse_args() if args.model == 'mstcn': from scripts.action_segmentation.train_mstcn import Trainer elif args.model == 'coarse-inputs': from scripts.action_segmentation.train_coarse_inputs import Trainer elif args.model == 'coarse-inputs-boundary-true': from scripts.action_segmentation.train_coarse_inputs_boundary_true import Trainer else: raise ValueError('no such model') submission_dir = os.path.join(SUBMISSION_DIR, args.model, args.config) if not os.path.exists(submission_dir): os.makedirs(submission_dir) else: raise ValueError( submission_dir + ' exists, please delete if you want a new submission with this name' ) trainer = Trainer(args.config, args.device) if 'boundary' in args.model: # this is for boundary aware models i3d_feats, timestamps = get_boundary_aware_submission_data() frame_level_predictions = trainer.predict(i3d_feats, timestamps) else: submission_segments, _, _ = breakfast.get_mstcn_data(split='test') frame_level_predictions = trainer.predict(submission_segments) return get_cls_results(frame_level_predictions, submission_dir)
def main(): set_determinstic_mode() args = _parse_args() trainer = Trainer(args.config, args.device) train_videos = get_train_videos() test_videos = get_test_videos() trainer.train(train_videos, test_videos)
def main(): set_determinstic_mode() args = _parse_args() trainer = Trainer(args.config, args.device) train_data = _parse_split_data('train', trainer.i3d_length) test_data = _parse_split_data('test', trainer.i3d_length) trainer.train(train_data, test_data)
def main(): set_determinstic_mode() args = _parse_args() submission_dir = os.path.join(SUBMISSION_DIR, 'zhangcan', args.config) submission_feats, _, _ = breakfast.get_mstcn_data(split='test') frame_prediction_dir = submission_dir video_names = [ os.path.split(feat_file)[-1] for feat_file in submission_feats ] video_names = [feat_file.split('.')[0] for feat_file in video_names] mapping_dict = breakfast.read_mapping_file() frame_level_predictions = [] for i, video_name in enumerate(video_names): frame_prediction_file = os.path.join(frame_prediction_dir, video_name) with open(frame_prediction_file, 'r') as f: frame_predictions = f.readlines()[1] frame_predictions = frame_predictions.strip().split(' ') frame_predictions = [ mapping_dict[prediction] for prediction in frame_predictions ] frame_level_predictions.append(frame_predictions) with open(breakfast.SUBMISSION_LABEL_FILE, 'r') as f: submission_timestamps = f.readlines() submission_timestamps = [ line.strip().split(' ') for line in submission_timestamps ] submission_timestamps = [ np.array(timestamps).astype(int) for timestamps in submission_timestamps ] n_segments = 0 submission_str = 'Id,Category\n' for i, video_name in enumerate(video_names): video_timestamps = submission_timestamps[i] n_timestamps = len(video_timestamps) video_frame_predictions = frame_level_predictions[i] for j in range(n_timestamps - 1): start = video_timestamps[j] end = video_timestamps[j + 1] segment_frame_predictions = video_frame_predictions[start:end] counts = np.bincount(segment_frame_predictions) segment_prediction = np.argmax(counts).item() submission_str += '{0},{1}\n'.format(n_segments, segment_prediction) n_segments += 1 submission_file = os.path.join(submission_dir, 'submission.csv') with open(submission_file, 'w') as f: f.write(submission_str) get_submission_accuracy(submission_file)