def set_true_labels(): db = Database(name=get_db_path(), delete_existing=False) eval_window.remove_all_stored_records(db=db) settings = eval_setting.get_all_settings(db) for setting in settings: driving_log = "/home/zhongzzy9/Documents/self-driving-car/2020_CARLA_challenge/collected_data_customized/customized_0/"+str(setting.track)+'/driving_log.csv' logger.info("labelling windows for setting " + str(setting.id)) current_window_count = 0 print('single') current_ad_type = "single-img" single_img_entries = eval_single_img_distances.load_all_for_setting(db, setting_id=setting.id) current_window_count = _set_true_labels(entries=single_img_entries, current_setting_id=setting.id, current_ad_type=current_ad_type, current_window_count=current_window_count, db=db, driving_log=driving_log) eval_single_img_distances.update_true_label_on_db(db=db, records=single_img_entries) print('seq') # current_ad_type = "seq" # seq_img_entries = eval_seq_img_distances.load_all_for_setting(db, setting_id=setting.id) # _set_true_labels(entries=seq_img_entries, current_setting_id=setting.id, current_ad_type=current_ad_type, current_window_count=current_window_count, db=db, driving_log=driving_log) # eval_seq_img_distances.update_true_label_on_db(db=db, records=seq_img_entries) db.commit()
def store_losses(setting, per_ad_distances, row_ids, are_crashes, db: Database): for i in range(len(per_ad_distances["VAE"])): setting_id = setting.id row_id = row_ids[i] row_id = row_id.item() if are_crashes[i] == 0: is_crash = False else: is_crash = True vae_loss = per_ad_distances["VAE"][i] sae_loss = per_ad_distances["SAE"][i] cae_loss = per_ad_distances["CAE"][i] dae_loss = per_ad_distances["DAE"][i] deeproad_loss = per_ad_distances["DEEPROAD"][i] deeproad_loss = deeproad_loss.item() to_store = SingleImgDistance(setting_id=setting_id, row_id=row_id, is_crash=is_crash, vae_loss=vae_loss, cae_loss=cae_loss, dae_loss=dae_loss, sae_loss=sae_loss, deeproad_loss=deeproad_loss) to_store.insert_into_db(db) if i % 1000: db.commit() db.commit()
def store_losses(setting, per_ad_distances, row_ids, are_crashes, db: Database): assert per_ad_distances # modification: len(per_ad_distances["VAE"]) -> len(list(per_ad_distances.items())[0][1]) for i in range(len(list(per_ad_distances.items())[0][1])): setting_id = setting.id row_id = row_ids[i] row_id = row_id.item() if are_crashes[i] == 0: is_crash = False else: is_crash = True # add if conditions to make these losses are None when they are not evaluated vae_loss = None sae_loss = None cae_loss = None dae_loss = None deeproad_loss = None if "VAE" in per_ad_distances: vae_loss = per_ad_distances["VAE"][i] if "SAE" in per_ad_distances: sae_loss = per_ad_distances["SAE"][i] if "CAE" in per_ad_distances: cae_loss = per_ad_distances["CAE"][i] if "DAE" in per_ad_distances: dae_loss = per_ad_distances["DAE"][i] if "DEEPROAD" in per_ad_distances: deeproad_loss = per_ad_distances["DEEPROAD"][i] deeproad_loss = deeproad_loss.item() to_store = SingleImgDistance(setting_id=setting_id, row_id=row_id, is_crash=is_crash, vae_loss=vae_loss, cae_loss=cae_loss, dae_loss=dae_loss, sae_loss=sae_loss, deeproad_loss=deeproad_loss) to_store.insert_into_db(db) if i % 1000: db.commit() db.commit()
def _create_all_settings(db: Database): settings = [] id = SETTING_START_ID for agent in EVAL_AGENTS: for track in EVAL_TRACKS: setting = Setting(id=id, agent=agent, track=track) setting.insert_into_db(db=db) id = id + 1 settings.append(setting) db.commit() return settings
def store_seq_losses(setting, per_ad_distances, row_ids, are_crashes, db: Database): for i in range(len(per_ad_distances["IMG-LSTM"])): setting_id = setting.id row_id = row_ids[i] row_id = row_id.item() if are_crashes[i] == 0: is_crash = False else: is_crash = True lstm_loss = per_ad_distances["IMG-LSTM"][i] to_store = SeqBasedDistance(setting_id=setting_id, row_id=row_id, is_crash=is_crash, lstm_loss=lstm_loss) to_store.insert_into_db(db) if i % 1000: db.commit() db.commit()
def calc_precision_recall(): logger.warning( "ATTENTION: Thresholds are hardcoded. Copy-paste after recalculating thresholds " + "(hence, after each training of the models)!") db_name = db_path.DB_PATH db = Database(name=db_name, delete_existing=False) eval_prec_recall.remove_all_from_prec_recall(db=db) for ad_name, ad_thresholds in THRESHOLDS.items(): _eval(ad_name=ad_name, ad_thresholds=ad_thresholds, db=db) db.commit() for ad_name, ad_thresholds in SEQ_THRESHOLDS.items(): _eval(ad_name=ad_name, ad_thresholds=ad_thresholds, db=db) db.commit()
def _create_all_settings(db: Database): settings = [] id = SETTING_START_ID for agent in EVAL_AGENTS: for track in EVAL_TRACKS: for time in EVAL_TIME: for weather in EVAL_WEATHER: if not (time == "DayOnly" and weather == "Sunny"): setting = Setting(id=id, agent=agent, track=track, time=time, weather=weather) setting.insert_into_db(db=db) id = id + 1 settings.append(setting) db.commit() return settings
def set_true_labels(): db = Database(name=db_path.DB_PATH, delete_existing=False) eval_window.remove_all_stored_records(db=db) settings = eval_setting.get_all_settings(db) for setting in settings: logger.info("labelling windows for setting " + str(setting.id)) current_window_count = 0 current_ad_type = "single-img" single_img_entries = eval_single_img_distances.load_all_for_setting(db, setting_id=setting.id) current_window_count = _set_true_labels(entries=single_img_entries, current_setting_id=setting.id, current_ad_type=current_ad_type, current_window_count=current_window_count, db=db) eval_single_img_distances.update_true_label_on_db(db=db, records=single_img_entries) current_ad_type = "seq" single_img_entries = eval_seq_img_distances.load_all_for_setting(db, setting_id=setting.id) _set_true_labels(entries=single_img_entries, current_setting_id=setting.id, current_ad_type=current_ad_type, current_window_count=current_window_count, db=db) eval_seq_img_distances.update_true_label_on_db(db=db, records=single_img_entries) db.commit()