<jupyter_start><jupyter_text>asknav_test_seen.jsonasknav_test_unseen.jsonasknav_train.jsonasknav_train_original.jsonasknav_train_small50.jsonasknav_train_small_single_example.jsonasknav_train_small_single_house_single_goal_short.jsonasknav_train_small_three_goals_short.jsonasknav_train_small_three_houses_single_goal_short.jsonasknav_val_seen.jsonasknav_val_seen_original.jsonasknav_val_seen_small50.jsonasknav_val_seen_small_three_goals_short.jsonasknav_val_seen_small_three_houses_single_goal_short.jsonasknav_val_unseen.jsonasknav_val_unseen_original.jsonasknav_val_unseen_small50.jsonasknav_val_unseen_small_three_goals_short.jsonasknav_val_unseen_small_three_houses_single_goal_short.jsontrain_vocab.txtverbal_easy_vocab.txtverbal_hard_vocab.txt/home/hoyeung/blob_matterport3d/asknav<jupyter_code>## Read the data<jupyter_output><empty_output><jupyter_text>data_dir = "/home/hoyeung/blob_matterport3d/asknav/"with open(data_dir + "asknav_train_original.json", "r") as handle:    data_full = json.load(handle)len(data_full) data_full[0] all_tr_scans = set()for d in data_full:    all_tr_scans.add(d['scan'])len(all_tr_scans) with open(data_dir + "asknav_val_seen_original.json", "r") as handle:    data_full_dev1 = json.load(handle)print(len(data_full_dev1))with open(data_dir + "asknav_val_unseen_original.json", "r") as handle:    data_full_dev2 = json.load(handle)print(len(data_full_dev2)) all_val_scans = set()for d in data_full_dev1:    all_val_scans.add(d['scan'])    len(all_val_scans) all_val2_scans = set()for d in data_full_dev2:    all_val2_scans.add(d['scan'])    len(all_val2_scans) with open(data_dir + "asknav_test_unseen.json", "r") as handle:    data_full_test2 = json.load(handle)print(len(data_full_test2)) all_test2_scans = set()for d in data_full_test2:    all_test2_scans.add(d['scan'])    len(all_test2_scans) with open(data_dir + "asknav_train_small_three_houses_single_goal_short.json", "r") as handle:    data_100 = json.load(handle)len(data_100) with open(data_dir + "asknav_train_small_three_goals_short.json", "r") as handle:    data_1078 = json.load(handle)len(data_1078)<jupyter_code>## Get the scans and viewpoints that appears in gold traj<jupyter_output><empty_output><jupyter_text>within training datascan_viewpt_pairs = []scan_viewpt_map = defaultdict(list)scan_set_100 = set()for d in data_100:    for p in d['paths']:        for v in p:            scan_set_100.add(d['scan'])            scan_viewpt_pairs.append((d['scan'], v))            scan_viewpt_map[d['scan']].append(v) print(len(scan_viewpt_pairs))scan_viewpt_pairs[0] print(len(scan_viewpt_map))len(scan_viewpt_map['ac26ZMwG7aT'])  in data 100scan_viewpt_map.keys()  within training datascan_viewpt_pairs_1078 = []scan_viewpt_map_1078 = defaultdict(list)scan_set_1078 = set()for d in data_1078:    for p in d['paths']:        for v in p:            scan_set_1078.add(d['scan'])            scan_viewpt_pairs_1078.append((d['scan'], v))            scan_viewpt_map_1078[d['scan']].append(v) print(len(scan_viewpt_pairs_1078))scan_viewpt_pairs_1078[0]  in data 100scan_viewpt_map_1078.keys() print(len(scan_viewpt_map_1078))len(scan_viewpt_map_1078['ac26ZMwG7aT']) scan_set_100 scan_set_1078 scan_diff_1078_100 = scan_set_1078 - scan_set_100len(scan_diff_1078_100)<jupyter_code>## Load nodes in all training scans<jupyter_output><empty_output><jupyter_text>scan_viewpt_map_all_tr_data = defaultdict(list)for scan in all_tr_scans:    scan_G = utils.load_nav_graphs(scan)    for n in scan_G.nodes:        scan_viewpt_map_all_tr_data[scan].append(n)<jupyter_code>## Set variables<jupyter_output><empty_output><jupyter_text>os.environ['PT_DATA_DIR']='/home/hoyeung/blob_matterport3d/'nav_actions = ['left', 'right', 'up', 'down', 'forward', '', '', '']env_actions = [        (0,-1, 0),  left   30 deg        (0, 1, 0),  right  30 deg        (0, 0, 1),  up     30 deg        (0, 0,-1),  down   30 deg        (1, 0, 0),  forward to navigable location at ix 1        (0, 0, 0),          (0, 0, 0),          (0, 0, 0)       ]<jupyter_code>## Initiate Sims<jupyter_output><empty_output><jupyter_text>batch_size = 100env = VNLAExplorationBatch(nav_actions, env_actions, obs=None, batch_size=batch_size)<jupyter_code>## Try something<jupyter_output><empty_output><jupyter_text>scan_time_map_all_tr_scans = {}for scan in all_tr_scans:     compute average time per vertex    scan_tot_time = []     get a list of all vertices in this scan, for each vertex    for n in scan_viewpt_map_all_tr_data[scan]:        for _ in range(100*50):             randomly choose some heading and elevation            heading = (np.random.random() * 2 - 1) * 2 * math.pi            elevation = (np.random.random() * 2 - 1) * 2 * math.pi            start_time = time.time()             call env.sims[0] to set it, time this            env.sims[0].newEpisode(scan, n, heading, elevation)            scan_tot_time.append(time.time() - start_time)     append the time to tot for scan    scan_time_map_all_tr_scans[scan] = np.average(scan_tot_time)  sorted(scan_time_map_all_tr_scans.items(), key=lambda x: x[1], reverse=True) (np.random.random() * 2 - 1) * 2 * math.pi time = 0.0for k in scan_viewpt_map.keys():    time += scan_time_map_all_tr_scans[k] * 100 * 50time / len(scan_viewpt_map) time = 0.0for k in scan_viewpt_map_1078.keys():    time += scan_time_map_all_tr_scans[k] * 100 * 50time / len(scan_viewpt_map_1078) time = 0.0for k in scan_time_map_all_tr_scans.keys():    time += scan_time_map_all_tr_scans[k] * 100 * 50time / len(scan_time_map_all_tr_scans)  data 100scan_viewpt_map.keys()dict_keys(['cV4RVeZvu5T', '8WUmhLawc2A', 'ac26ZMwG7aT'])('ac26ZMwG7aT', 2.4650458133581913e-05)('8WUmhLawc2A', 1.5587706314890007e-05)('cV4RVeZvu5T', 1.513724856906467e-05) data 1078scan_viewpt_map_1078.keys() dict_keys(['Vvot9Ly1tCj', 'qoiz87JEwZ2', 'sT4fr6TAbpF', '1LXtFkjw3qL', '7y3sRwLe3Va', 'JeFG25nYj2p', 'XcA2TqTSSAj', 'ac26ZMwG7aT', 'cV4RVeZvu5T', '5q7pvUzZiYa', '1pXnuDYAj8r', 'i5noydFURQK', 'VFuaQ6m2Qom', '82sE5b5pLXE', 'sKLMLpTHeUy', 'p5wJjkQkbXX', '5LpN3gDmAk7', 'gTV8FGcVJC9', 'S9hNv5qa7GM', 'aayBHfsNo7d', 'EDJbREhghzL', 'e9zR4mvMWw7', '8WUmhLawc2A', 'ULsKaCPVFJR', 'pRbA3pwrgk9', 'b8cTxDM8gDG', 'VzqfbhrpDEA', '2n8kARJN3HM', 'mJXqzFtmKg4', '759xd9YjKW5', 'JmbYfDe2QKZ'])<jupyter_code>## Dummy script to load nodes outside training code<jupyter_output><empty_output><jupyter_text>Try a different wayimport timescan_time_map_all_tr_scans = {}for scan in all_tr_scans:     compute average time per vertex    scan_tot_time = []     get a list of all vertices in this scan, for each vertex    for n in scan_viewpt_map_all_tr_data[scan]:        for _ in range(50):            for i in range(batch_size):                 randomly choose some heading and elevation                heading = (np.random.random() * 2 - 1) * 2 * math.pi                elevation = (np.random.random() * 2 - 1) * 2 * math.pi                start_time = time.time()                 call env.sims[0] to set it, time this                env.sims[i].newEpisode(scan, n, heading, elevation)                scan_tot_time.append(time.time() - start_time)     append the time to tot for scan    scan_time_map_all_tr_scans[scan] = np.average(scan_tot_time)  sorted(scan_time_map_all_tr_scans.items(), key=lambda x: x[1], reverse=True)  some nodes are harder than others. check gold traj nodes.<jupyter_code>## Look at only nodes in gold trajectories<jupyter_output><empty_output><jupyter_text>scan_viewpt_mapscan_viewpt_map_1078  Try a different wayimport timescan_time_map_data_100 = {}scan_time_map_data_100_sum = {}for scan in scan_viewpt_map:     compute average time per vertex    scan_tot_time = []     get a list of all vertices in this scan, for each vertex    for n in scan_viewpt_map[scan]:        for _ in range(50):            for i in range(batch_size):                 randomly choose some heading and elevation                heading = (np.random.random() * 2 - 1) * 2 * math.pi                elevation = (np.random.random() * 2 - 1) * 2 * math.pi                start_time = time.time()                 call env.sims[0] to set it, time this                env.sims[i].newEpisode(scan, n, heading, elevation)                scan_tot_time.append(time.time() - start_time)     append the time to tot for scan    scan_time_map_data_100[scan] = np.average(scan_tot_time)    scan_time_map_data_100_sum[scan] = np.sum(scan_tot_time) sorted(scan_time_map_data_100.items(), key=lambda x: x[1], reverse=True) scan_time_map_data_100 np.average([val for val in scan_time_map_data_100.values()])  Try a different wayimport timescan_time_map_data_1078 = {}for scan in scan_viewpt_map_1078:     compute average time per vertex    scan_tot_time = []     get a list of all vertices in this scan, for each vertex    for n in scan_viewpt_map_1078[scan]:        for _ in range(50):            for i in range(batch_size):                 randomly choose some heading and elevation                heading = (np.random.random() * 2 - 1) * 2 * math.pi                elevation = (np.random.random() * 2 - 1) * 2 * math.pi                start_time = time.time()                 call env.sims[0] to set it, time this                env.sims[i].newEpisode(scan, n, heading, elevation)                scan_tot_time.append(time.time() - start_time)     append the time to tot for scan    scan_time_map_data_1078[scan] = np.average(scan_tot_time)  sorted(scan_time_map_data_1078.items(), key=lambda x: x[1], reverse=True) np.average([val for val in scan_time_map_data_1078.values()])  Try a different wayimport timescan_node_time_map_data_1078 = {}for scan in scan_viewpt_map_1078:     compute average time per vertex    scan_node_time_map_data_1078[scan] = {}     get a list of all vertices in this scan, for each vertex    for n in scan_viewpt_map_1078[scan]:        scan_n_tot_time = []        for _ in range(50):            for i in range(batch_size):                 randomly choose some heading and elevation                heading = (np.random.random() * 2 - 1) * 2 * math.pi                elevation = (np.random.random() * 2 - 1) * 2 * math.pi                start_time = time.time()                 call env.sims[0] to set it, time this                env.sims[i].newEpisode(scan, n, heading, elevation)                scan_tot_time.append(time.time() - start_time)        scan_node_time_map_data_1078[scan][n] = np.average(scan_n_tot_time)  sorted(scan_time_map_data_1078.items(), key=lambda x: x[1], reverse=True) l = [1,2,3]l += [4,5,6] l from collections import defaultdictdefaultdict(lambda : defaultdict(list))<jupyter_code>## Hit Debug, run this and save scan_v_time<jupyter_output><empty_output><jupyter_text>((scan, node), (average time, total number of calls, total time)), scan_v_time = {}for scan in nodes_time_report.keys():    for v in nodes_time_report[scan]:        time_scalar_list = nodes_time_report[scan][v]        scan_v_time[(scan, v)] = (np.average(time_scalar_list), len(time_scalar_list), np.sum(time_scalar_list))  (scan, node): [avg time, number of calls, total time]<jupyter_code>## Local analysis<jupyter_output><empty_output><jupyter_text>import pickle data 1078with open("/home/hoyeung/Documents/vnla/dummy_scan_time.pickle", "rb") as handle:    scan_v_time_data_1078 = pickle.load(handle)     data 100with open("/home/hoyeung/Documents/vnla/dummy_scan_time_data_100.pickle", "rb") as handle:    scan_v_time_data_100 = pickle.load(handle)     data fullwith open("/home/hoyeung/Documents/vnla/dummy_scan_time_data_94798.pickle", "rb") as handle:    scan_v_time_data_94798 = pickle.load(handle)     data full 2with open("/home/hoyeung/Documents/vnla/dummy_scan_time_data_94798_2.pickle", "rb") as handle:    scan_v_time_data_94798_2 = pickle.load(handle) sort_tups_by_sum_1078 = sorted(scan_v_time_data_1078.items(), key=lambda x: x[1][2], reverse = True)sort_tups_by_sum_100 = sorted(scan_v_time_data_100.items(), key=lambda x: x[1][2], reverse = True)sort_tups_by_sum_94798 = sorted(scan_v_time_data_94798.items(), key=lambda x: x[1][2], reverse = True)sort_tups_by_sum_94798_2 = sorted(scan_v_time_data_94798_2.items(), key=lambda x: x[1][2], reverse = True)sort_tups_by_avg_1078 = sorted(scan_v_time_data_1078.items(), key=lambda x: x[1][0], reverse = True)sort_tups_by_avg_100 = sorted(scan_v_time_data_100.items(), key=lambda x: x[1][0], reverse = True)sort_tups_by_avg_94798 = sorted(scan_v_time_data_94798.items(), key=lambda x: x[1][0], reverse = True)sort_tups_by_avg_94798_2 = sorted(scan_v_time_data_94798_2.items(), key=lambda x: x[1][0], reverse = True) cumu_all_1078 = []cumu_sum_1078 = 0.0for i in range(len(sort_tups_by_sum_1078)):    cumu_sum_1078 += sort_tups_by_sum_1078[i][1][2]    cumu_all_1078.append(cumu_sum_1078) cumu_all_100 = []cumu_sum_100 = 0.0for i in range(len(sort_tups_by_sum_100)):    cumu_sum_100 += sort_tups_by_sum_100[i][1][2]    cumu_all_100.append(cumu_sum_100) cumu_all_94798 = []cumu_sum_94798 = 0.0for i in range(len(sort_tups_by_sum_94798)):    cumu_sum_94798 += sort_tups_by_sum_94798[i][1][2]    cumu_all_94798.append(cumu_sum_94798) cumu_all_94798_2 = []cumu_sum_94798_2 = 0.0for i in range(len(sort_tups_by_sum_94798_2)):    cumu_sum_94798_2 += sort_tups_by_sum_94798_2[i][1][2]    cumu_all_94798_2.append(cumu_sum_94798_2) print(cumu_sum_1078)print(cumu_sum_100)print(cumu_sum_94798)print(cumu_sum_94798_2) 56 / 31 40 * 1.8 1e-5 for tup in sort_tups_by_sum_1078:    if tup[0] in scan_v_time_data_100:        print (tup[0])        print (scan_v_time_data_100[tup[0]])        print (scan_v_time_data_1078[tup[0]])        print (scan_v_time_data_94798[tup[0]])         print (scan_v_time_data_94798_2[tup[0]])        print ("---------------------------------------------") for d in data_1078:     %matplotlib inlineimport matplotlib.pyplot as pltplt.style.use('seaborn-whitegrid')import numpy as np fig = plt.figure()ax = plt.axes() x axis - one (scan vertex) tup per unitplt.plot(range(len(cumu_all_100)), cumu_all_100)plt.plot(range(len(cumu_all_1078)), cumu_all_1078)  if all tuples take same amount of time and are called same number of times -- no elbow if some tuples take a lot longer -- elbow if some tuples are called much more -- elbow 800 of the 1400 tuples are responsible for this elbow sort_tups_by_sum_keys = [tup[0] for tup in sort_tups_by_sum]  Look at positions of data 1000 (scan, vertex) tuples on this curve herev_in_data_1078 = []c = 0for tup in scan_viewpt_pairs:    if tup in sort_tups_by_sum_keys:        v_in_data_1078.append(sort_tups_by_sum_keys.index(tup))        c += 1 len(v_in_data_1078)<jupyter_code>## Inspect size of scans in different datasets<jupyter_output><empty_output><jupyter_text>print(len(all_tr_scans))print(len(scan_set_100))print(len(scan_set_1078)) scan_set_100  on average, how many vertices are there for each scan setgraph = utils.load_nav_graphs('8WUmhLawc2A', path=None) len(graph.nodes) scan_sizes_100 = []for scan in scan_set_100:    graph = utils.load_nav_graphs(scan, path=None)    scan_sizes_100.append(len(graph.nodes))print ("scan sizes for dataset 100, {} scans: \n{}".format(len(scan_set_100), scan_sizes_100)) scan_sizes_100 = []for scan in scan_set_100:    print(scan)    graph = utils.load_nav_graphs(scan, path=None)    scan_sizes_100.append(len(graph.nodes))print ("scan sizes for dataset 100, {} scans: \n{}".format(len(scan_set_100), scan_sizes_100)) scan_sizes_1078 = []for scan in scan_set_1078:    graph = utils.load_nav_graphs(scan, path=None)    scan_sizes_1078.append(len(graph.nodes))print ("scan sizes for dataset 1078, {} scans: \n{}".format(len(scan_sizes_1078), scan_sizes_1078)) scan_sizes_tr = []all_tr_scans_list = list(all_tr_scans)for scan in all_tr_scans_list:    graph = utils.load_nav_graphs(scan, path=None)    scan_sizes_tr.append(len(graph.nodes))print ("scan sizes for dataset full training, {} scans: \n{}".format(len(all_tr_scans), scan_sizes_tr)) np.average(scan_sizes_tr) scan_sizes_diff_full_tr_1078 = []scan_diff_set = list(set(all_tr_scans) - set(scan_set_1078))for scan in scan_diff_set:    graph = utils.load_nav_graphs(scan, path=None)    scan_sizes_diff_full_tr_1078.append(len(graph.nodes))print ("scan sizes for dataset full training - 1078, {} scans: \n{}".format\       (len(scan_diff_set), list(zip(scan_diff_set,scan_sizes_diff_full_tr_1078))))<jupyter_code>[('vyrNrziPKCB', 5.678904290015337e-05),
 ('B6ByNegPMKs', 5.617932195248811e-05),
 ('PX4nDJXEHrG', 4.984587642317968e-05),
 ('VzqfbhrpDEA', 4.785925723277161e-05),
 ('D7N2EKCX4Sj', 4.535235606707059e-05),
 ('SN83YJsR3w2', 4.351669041615612e-05),
 ('kEZ7cmS4wCh', 3.839941096665272e-05),
 ('gTV8FGcVJC9', 3.740342974146723e-05),
 ('uNb9QFRL6hY', 3.712928485422627e-05),
 ('E9uDoFAP3SH', 3.496930829940304e-05),
 ('mJXqzFtmKg4', 3.23151984542766e-05),
 ('2n8kARJN3HM', 3.230650527502901e-05),
 ('VFuaQ6m2Qom', 2.916946011389087e-05),
 ('ac26ZMwG7aT', 2.849974603363962e-05),
 ('V2XKFyX4ASd', 2.8382171946726026e-05),
 ('29hnd4uzFmX', 2.7653134102914846e-05),
 ('p5wJjkQkbXX', 2.7583873271942138e-05),
 ('5LpN3gDmAk7', 2.6229000091552734e-05),
 ('Vvot9Ly1tCj', 2.5978281142863822e-05),
 ('Uxmj2M2itWa', 2.5940534842275356e-05),
 ('82sE5b5pLXE', 2.5053222091109665e-05),
 ('1LXtFkjw3qL', 2.427972546060577e-05),
 ('sKLMLpTHeUy', 2.3369035570640264e-05),
 ('VLzqgDo317F', 2.3363176981608073e-05),
 ('pRbA3pwrgk9', 2.3230160348783665e-05),
 ('ur6pFq6Qu1A', 2.3002934455871583e-05),
 ('qoiz87JEwZ2', 2.2683939314980543e-05),
 ('rPc6DW4iMge', 2.1974692102205956e-05),
 ('b8cTxDM8gDG', 2.1824954685411955e-05),
 ('7y3sRwLe3Va', 2.1472212953387567e-05),
 ('r1Q1Z4BcV1o', 2.1002310356207652e-05),
 ('XcA2TqTSSAj', 2.0827289458808548e-05),
 ('S9hNv5qa7GM', 2.0667191418734464e-05),
 ('ULsKaCPVFJR', 1.9494733716001604e-05),
 ('8WUmhLawc2A', 1.9309426357871606e-05),
 ('1pXnuDYAj8r', 1.824036999752647e-05),
 ('e9zR4mvMWw7', 1.7765151495221018e-05),
 ('JeFG25nYj2p', 1.772778488340832e-05),
 ('5q7pvUzZiYa', 1.7673686916908522e-05),
 ('cV4RVeZvu5T', 1.751097626156277e-05),
 ('JmbYfDe2QKZ', 1.7284818842441222e-05),
 ('aayBHfsNo7d', 1.5896319671415947e-05),
 ('ZMojNkEp431', 1.5741916755577187e-05),
 ('sT4fr6TAbpF', 1.543209699936855e-05),
 ('EDJbREhghzL', 1.5231962203979491e-05),
 ('759xd9YjKW5', 1.4456054812572042e-05),
 ('VVfe2KiqLaN', 1.4448602863999664e-05),
 ('r47D5H71a5s', 1.3573218955368292e-05),
 ('i5noydFURQK', 1.3102413926805769e-05),
 ('jh4fc5c5qoQ', 1.2697197993596394e-05),
 ('17DRP5sb8fy', 1.2687516212463379e-05),
 ('s8pcmisQ38h', 1.2670090675354004e-05),
 ('HxpKQynjfin', 1.1711249631993911e-05),
 ('JF19kD82Mey', 1.1698499990969289e-05),
 ('Pm6F8kyY3z2', 1.019445727853214e-05),
 ('GdvgFV5R1Z5', 9.290905793507893e-06)]<jupyter_output><empty_output><jupyter_text>How representative are large scans in data 1078 vs full training<jupyter_code>large_size_scan_set = [scan for (i, scan) in enumerate(all_tr_scans_list) if scan_sizes_tr[i] > 129]
print(len(large_size_scan_set))

extra_large_size_scan_set = [scan for (i, scan) in enumerate(all_tr_scans_list) if scan_sizes_tr[i] > 200]
print(len(extra_large_size_scan_set))
ct_large_scan = 0
ct_extra_large_scan = 0
for d in data_1078:
    if d['scan'] in large_size_scan_set:
        ct_large_scan += 1
    if d['scan'] in extra_large_size_scan_set:
        ct_extra_large_scan += 1
        
print (ct_large_scan)
print (ct_large_scan / 1078)
print (ct_extra_large_scan)
print (ct_extra_large_scan / 1078)
ct_large_scan = 0
ct_extra_large_scan = 0
for d in data_full:
    if d['scan'] in large_size_scan_set:
        ct_large_scan += 1
    if d['scan'] in extra_large_size_scan_set:
        ct_extra_large_scan += 1
        
print (ct_large_scan)
print (ct_large_scan / 94798)
print (ct_extra_large_scan)
print (ct_extra_large_scan / 94798)
scan_ctr = []
for d in data_full:
    scan_ctr.append(d['scan'])
    
scan_counter = Counter(scan_ctr)
len(scan_counter)
scan_counter.most_common()
scan_names = [tup[0] for tup in scan_counter.most_common()]
scan_ct = [tup[1] for tup in scan_counter.most_common()]
plt.figure(figsize=(20,10))
plt.bar(scan_names, scan_ct)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1240325560493334, 'fraction_numerical': 0.10785439656463774, 'mean_word_length': 5.056244330208648, 'pattern_counts': {'":': 0, '<': 53, '<?xml version=': 0, '>': 55, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 5, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '13', 'dir': 'jupyter-structured-clean-dedup', 'id': '241732', 'license': 'MIT', 'n_tokens_mistral': 9323, 'n_tokens_neox': 8043, 'n_words': 1383, 'path': 'code/tasks/VNLA/notebooks/Investigate_20200120_VNLA_dataset_new_episode_time.ipynb', 'repo_name': 'Chucooleg/vnla', 'size': '20027'}