Note
Go to the end to download the full example code.
Cross-nested logit¶
Estimation of a cross-nested logit model using sampling of alternatives.
Michel Bierlaire Sat Jul 26 2025, 14:57:17
import pandas as pd
from alternatives import (
ID_COLUMN,
all_alternatives,
alternatives,
asian_and_downtown,
only_asian,
only_downtown,
partitions,
)
from compare import compare
from IPython.core.display_functions import display
from specification_sampling import V, combined_variables
import biogeme.biogeme_logging as blog
from biogeme.biogeme import BIOGEME
from biogeme.expressions import Beta
from biogeme.nests import NestsForCrossNestedLogit, OneNestForCrossNestedLogit
from biogeme.results_processing import (
EstimationResults,
get_pandas_estimated_parameters,
)
from biogeme.sampling_of_alternatives import (
ChoiceSetsGeneration,
GenerateModel,
SamplingContext,
generate_segment_size,
)
from biogeme.tools import timeit
logger = blog.get_screen_logger(level=blog.INFO)
PARTITION = 'downtown'
MEV_PARTITION = 'uniform_asian_or_downtown'
SAMPLE_SIZE = 10 # out of 100 alternatives
SAMPLE_SIZE_MEV = 63 # out of 63 alternatives
CHOICE_COLUMN = 'cnl_3'
MODEL_NAME = f'cnl_{SAMPLE_SIZE}_{SAMPLE_SIZE_MEV}'
FILE_NAME = f'{MODEL_NAME}.dat'
the_partition = partitions.get(PARTITION)
if the_partition is None:
raise ValueError(f'Unknown partition: {PARTITION}')
segment_sizes = list(
generate_segment_size(SAMPLE_SIZE, the_partition.number_of_segments())
)
We use all alternatives in the nest.
mev_partition = partitions.get(MEV_PARTITION)
if mev_partition is None:
raise ValueError(f'Unknown partition: {MEV_PARTITION}')
mev_segment_sizes = [
SAMPLE_SIZE_MEV,
]
Nests
Downtown
mu_downtown = Beta('mu_downtown', 1, 1, None, 0)
downtown_alpha_dict = {i: 0.5 for i in asian_and_downtown} | {
i: 1 for i in only_downtown
}
downtown_nest = OneNestForCrossNestedLogit(
nest_param=mu_downtown, dict_of_alpha=downtown_alpha_dict, name='downtown'
)
Asian
mu_asian = Beta('mu_asian', 1, 1, None, 0)
asian_alpha_dict = {i: 0.5 for i in asian_and_downtown} | {i: 1.0 for i in only_asian}
asian_nest = OneNestForCrossNestedLogit(
nest_param=mu_asian, dict_of_alpha=asian_alpha_dict, name='asian'
)
cnl_nests = NestsForCrossNestedLogit(
choice_set=all_alternatives,
tuple_of_nests=(downtown_nest, asian_nest),
)
The following elements do not appear in any nest and are assumed each to be alone in a separate nest: {2, 4, 5, 6, 8, 10, 12, 16, 19, 21, 23, 25, 26, 28, 29, 35, 39, 41, 42, 43, 44, 52, 53, 58, 59, 62, 64, 65, 66, 67, 69, 71, 73, 82, 85, 95, 96}. If it is not the intention, check the assignment of alternatives to nests.
observations = pd.read_csv('obs_choice.dat')
context = SamplingContext(
the_partition=the_partition,
sample_sizes=segment_sizes,
individuals=observations,
choice_column=CHOICE_COLUMN,
alternatives=alternatives,
id_column=ID_COLUMN,
biogeme_file_name=FILE_NAME,
utility_function=V,
combined_variables=combined_variables,
mev_partition=mev_partition,
mev_sample_sizes=mev_segment_sizes,
cnl_nests=cnl_nests,
)
logger.info(context.reporting())
Size of the choice set: 100
Main partition: 2 segment(s) of size 46, 54
Main sample: 10: 5/46, 5/54
Nbr of MEV alternatives: 63
MEV partition: 1 segment(s) of size 63
MEV sample: 63: 63/63
the_data_generation = ChoiceSetsGeneration(context=context)
the_model_generation = GenerateModel(context=context)
biogeme_database = the_data_generation.sample_and_merge(recycle=False)
Generating 10 + 63 alternatives for 10000 observations
0%| | 0/10000 [00:00<?, ?it/s]
0%| | 12/10000 [00:00<01:29, 111.72it/s]
0%| | 24/10000 [00:00<01:26, 115.79it/s]
0%| | 36/10000 [00:00<01:24, 117.36it/s]
0%| | 48/10000 [00:00<01:24, 118.26it/s]
1%| | 61/10000 [00:00<01:23, 119.18it/s]
1%| | 74/10000 [00:00<01:22, 120.03it/s]
1%| | 87/10000 [00:00<01:22, 120.56it/s]
1%| | 100/10000 [00:00<01:21, 120.95it/s]
1%| | 113/10000 [00:00<01:21, 121.18it/s]
1%|▏ | 126/10000 [00:01<01:21, 121.06it/s]
1%|▏ | 139/10000 [00:01<01:21, 120.80it/s]
2%|▏ | 152/10000 [00:01<01:22, 118.97it/s]
2%|▏ | 164/10000 [00:01<01:22, 119.07it/s]
2%|▏ | 177/10000 [00:01<01:22, 119.36it/s]
2%|▏ | 190/10000 [00:01<01:21, 119.69it/s]
2%|▏ | 203/10000 [00:01<01:21, 119.98it/s]
2%|▏ | 216/10000 [00:01<01:21, 120.40it/s]
2%|▏ | 229/10000 [00:01<01:20, 120.66it/s]
2%|▏ | 242/10000 [00:02<01:20, 120.60it/s]
3%|▎ | 255/10000 [00:02<01:20, 120.36it/s]
3%|▎ | 268/10000 [00:02<01:20, 120.41it/s]
3%|▎ | 281/10000 [00:02<01:20, 120.33it/s]
3%|▎ | 294/10000 [00:02<01:20, 120.19it/s]
3%|▎ | 307/10000 [00:02<01:20, 119.90it/s]
3%|▎ | 319/10000 [00:02<01:21, 118.60it/s]
3%|▎ | 331/10000 [00:02<01:22, 117.59it/s]
3%|▎ | 343/10000 [00:02<01:21, 118.27it/s]
4%|▎ | 355/10000 [00:02<01:21, 118.66it/s]
4%|▎ | 367/10000 [00:03<01:21, 118.59it/s]
4%|▍ | 379/10000 [00:03<01:20, 118.79it/s]
4%|▍ | 391/10000 [00:03<01:20, 118.91it/s]
4%|▍ | 403/10000 [00:03<01:20, 119.16it/s]
4%|▍ | 415/10000 [00:03<01:20, 119.37it/s]
4%|▍ | 427/10000 [00:03<01:20, 119.55it/s]
4%|▍ | 440/10000 [00:03<01:19, 119.77it/s]
5%|▍ | 452/10000 [00:03<01:19, 119.83it/s]
5%|▍ | 465/10000 [00:03<01:19, 120.06it/s]
5%|▍ | 478/10000 [00:04<01:22, 115.70it/s]
5%|▍ | 490/10000 [00:04<01:24, 111.98it/s]
5%|▌ | 502/10000 [00:04<01:26, 109.32it/s]
5%|▌ | 513/10000 [00:04<01:27, 107.89it/s]
5%|▌ | 524/10000 [00:04<01:28, 106.88it/s]
5%|▌ | 535/10000 [00:04<01:29, 106.21it/s]
5%|▌ | 546/10000 [00:04<01:29, 105.63it/s]
6%|▌ | 557/10000 [00:04<01:29, 105.16it/s]
6%|▌ | 568/10000 [00:04<01:29, 105.07it/s]
6%|▌ | 579/10000 [00:04<01:29, 104.92it/s]
6%|▌ | 590/10000 [00:05<01:30, 104.27it/s]
6%|▌ | 601/10000 [00:05<01:30, 104.16it/s]
6%|▌ | 612/10000 [00:05<01:41, 92.83it/s]
6%|▌ | 623/10000 [00:05<01:37, 95.92it/s]
6%|▋ | 634/10000 [00:05<01:35, 98.21it/s]
6%|▋ | 645/10000 [00:05<01:33, 99.89it/s]
7%|▋ | 656/10000 [00:05<01:32, 101.17it/s]
7%|▋ | 667/10000 [00:05<01:31, 102.04it/s]
7%|▋ | 678/10000 [00:05<01:30, 102.70it/s]
7%|▋ | 689/10000 [00:06<01:30, 102.96it/s]
7%|▋ | 700/10000 [00:06<01:30, 103.19it/s]
7%|▋ | 711/10000 [00:06<01:29, 103.24it/s]
7%|▋ | 722/10000 [00:06<01:29, 103.44it/s]
7%|▋ | 733/10000 [00:06<01:29, 103.68it/s]
7%|▋ | 744/10000 [00:06<01:29, 103.27it/s]
8%|▊ | 755/10000 [00:06<01:29, 103.54it/s]
8%|▊ | 766/10000 [00:06<01:28, 103.91it/s]
8%|▊ | 777/10000 [00:06<01:32, 100.20it/s]
8%|▊ | 788/10000 [00:07<01:35, 96.26it/s]
8%|▊ | 798/10000 [00:07<01:37, 94.24it/s]
8%|▊ | 808/10000 [00:07<01:39, 92.55it/s]
8%|▊ | 818/10000 [00:07<01:40, 91.31it/s]
8%|▊ | 828/10000 [00:07<01:41, 90.39it/s]
8%|▊ | 838/10000 [00:07<01:44, 87.82it/s]
8%|▊ | 847/10000 [00:07<01:44, 87.98it/s]
9%|▊ | 856/10000 [00:07<01:43, 88.29it/s]
9%|▊ | 865/10000 [00:07<01:43, 88.61it/s]
9%|▊ | 874/10000 [00:08<01:43, 88.35it/s]
9%|▉ | 883/10000 [00:08<01:43, 88.13it/s]
9%|▉ | 892/10000 [00:08<01:43, 88.20it/s]
9%|▉ | 901/10000 [00:08<01:45, 86.16it/s]
9%|▉ | 910/10000 [00:08<01:45, 86.51it/s]
9%|▉ | 919/10000 [00:08<01:44, 86.94it/s]
9%|▉ | 928/10000 [00:08<01:43, 87.29it/s]
9%|▉ | 937/10000 [00:08<01:43, 87.54it/s]
9%|▉ | 946/10000 [00:08<01:43, 87.88it/s]
10%|▉ | 956/10000 [00:08<01:41, 89.32it/s]
10%|▉ | 967/10000 [00:09<01:36, 93.35it/s]
10%|▉ | 978/10000 [00:09<01:33, 96.65it/s]
10%|▉ | 989/10000 [00:09<01:30, 99.07it/s]
10%|█ | 1000/10000 [00:09<01:30, 99.68it/s]
10%|█ | 1010/10000 [00:09<01:30, 99.14it/s]
10%|█ | 1021/10000 [00:09<01:29, 100.50it/s]
10%|█ | 1032/10000 [00:09<01:28, 101.57it/s]
10%|█ | 1043/10000 [00:09<01:27, 102.39it/s]
11%|█ | 1054/10000 [00:09<01:26, 103.02it/s]
11%|█ | 1065/10000 [00:10<01:26, 103.28it/s]
11%|█ | 1076/10000 [00:10<01:26, 103.39it/s]
11%|█ | 1087/10000 [00:10<01:26, 103.57it/s]
11%|█ | 1098/10000 [00:10<01:25, 103.69it/s]
11%|█ | 1109/10000 [00:10<01:25, 103.86it/s]
11%|█ | 1120/10000 [00:10<01:25, 103.91it/s]
11%|█▏ | 1131/10000 [00:10<01:25, 104.08it/s]
11%|█▏ | 1142/10000 [00:10<01:25, 104.17it/s]
12%|█▏ | 1153/10000 [00:10<01:24, 104.31it/s]
12%|█▏ | 1164/10000 [00:10<01:24, 104.17it/s]
12%|█▏ | 1175/10000 [00:11<01:24, 103.85it/s]
12%|█▏ | 1186/10000 [00:11<01:24, 103.75it/s]
12%|█▏ | 1197/10000 [00:11<01:27, 100.46it/s]
12%|█▏ | 1208/10000 [00:11<01:31, 96.12it/s]
12%|█▏ | 1218/10000 [00:11<01:33, 93.94it/s]
12%|█▏ | 1228/10000 [00:11<01:36, 90.91it/s]
12%|█▏ | 1238/10000 [00:11<01:39, 87.88it/s]
12%|█▏ | 1247/10000 [00:11<01:46, 82.16it/s]
13%|█▎ | 1256/10000 [00:12<01:51, 78.74it/s]
13%|█▎ | 1264/10000 [00:12<01:53, 76.76it/s]
13%|█▎ | 1272/10000 [00:12<01:55, 75.49it/s]
13%|█▎ | 1280/10000 [00:12<01:56, 74.60it/s]
13%|█▎ | 1288/10000 [00:12<01:57, 73.96it/s]
13%|█▎ | 1296/10000 [00:12<01:58, 73.55it/s]
13%|█▎ | 1304/10000 [00:12<01:58, 73.25it/s]
13%|█▎ | 1312/10000 [00:12<01:58, 73.07it/s]
13%|█▎ | 1320/10000 [00:12<01:58, 73.07it/s]
13%|█▎ | 1328/10000 [00:13<01:59, 72.76it/s]
13%|█▎ | 1336/10000 [00:13<02:01, 71.09it/s]
13%|█▎ | 1344/10000 [00:13<02:00, 71.65it/s]
14%|█▎ | 1352/10000 [00:13<02:00, 71.81it/s]
14%|█▎ | 1360/10000 [00:13<02:00, 71.96it/s]
14%|█▎ | 1368/10000 [00:13<01:59, 72.10it/s]
14%|█▍ | 1376/10000 [00:13<01:59, 72.25it/s]
14%|█▍ | 1384/10000 [00:13<01:59, 72.31it/s]
14%|█▍ | 1392/10000 [00:13<01:58, 72.58it/s]
14%|█▍ | 1400/10000 [00:14<01:58, 72.80it/s]
14%|█▍ | 1409/10000 [00:14<01:51, 77.20it/s]
14%|█▍ | 1418/10000 [00:14<01:46, 80.49it/s]
14%|█▍ | 1427/10000 [00:14<01:43, 82.75it/s]
14%|█▍ | 1436/10000 [00:14<01:41, 84.47it/s]
14%|█▍ | 1445/10000 [00:14<01:39, 85.71it/s]
15%|█▍ | 1454/10000 [00:14<01:38, 86.63it/s]
15%|█▍ | 1463/10000 [00:14<01:37, 87.29it/s]
15%|█▍ | 1472/10000 [00:14<01:37, 87.86it/s]
15%|█▍ | 1481/10000 [00:14<01:36, 88.17it/s]
15%|█▍ | 1490/10000 [00:15<01:36, 88.04it/s]
15%|█▍ | 1499/10000 [00:15<01:36, 88.13it/s]
15%|█▌ | 1508/10000 [00:15<01:36, 88.15it/s]
15%|█▌ | 1517/10000 [00:15<01:35, 88.37it/s]
15%|█▌ | 1526/10000 [00:15<01:35, 88.54it/s]
15%|█▌ | 1535/10000 [00:15<01:35, 88.55it/s]
15%|█▌ | 1544/10000 [00:15<01:35, 88.60it/s]
16%|█▌ | 1553/10000 [00:15<01:35, 88.66it/s]
16%|█▌ | 1562/10000 [00:15<01:34, 88.89it/s]
16%|█▌ | 1571/10000 [00:15<01:34, 88.86it/s]
16%|█▌ | 1580/10000 [00:16<01:34, 88.66it/s]
16%|█▌ | 1590/10000 [00:16<01:33, 90.32it/s]
16%|█▌ | 1601/10000 [00:16<01:28, 94.61it/s]
16%|█▌ | 1612/10000 [00:16<01:26, 97.50it/s]
16%|█▌ | 1623/10000 [00:16<01:24, 99.47it/s]
16%|█▋ | 1634/10000 [00:16<01:23, 100.77it/s]
16%|█▋ | 1645/10000 [00:16<01:22, 101.69it/s]
17%|█▋ | 1656/10000 [00:16<01:21, 102.66it/s]
17%|█▋ | 1667/10000 [00:16<01:20, 103.28it/s]
17%|█▋ | 1678/10000 [00:17<01:20, 103.32it/s]
17%|█▋ | 1689/10000 [00:17<01:20, 103.37it/s]
17%|█▋ | 1700/10000 [00:17<01:20, 103.49it/s]
17%|█▋ | 1711/10000 [00:17<01:20, 103.61it/s]
17%|█▋ | 1722/10000 [00:17<01:19, 103.82it/s]
17%|█▋ | 1733/10000 [00:17<01:19, 103.96it/s]
17%|█▋ | 1744/10000 [00:17<01:19, 104.06it/s]
18%|█▊ | 1755/10000 [00:17<01:19, 104.14it/s]
18%|█▊ | 1766/10000 [00:17<01:18, 104.33it/s]
18%|█▊ | 1777/10000 [00:17<01:18, 104.34it/s]
18%|█▊ | 1788/10000 [00:18<01:18, 103.99it/s]
18%|█▊ | 1799/10000 [00:18<01:18, 104.03it/s]
18%|█▊ | 1810/10000 [00:18<01:18, 103.99it/s]
18%|█▊ | 1821/10000 [00:18<01:18, 104.15it/s]
18%|█▊ | 1832/10000 [00:18<01:20, 101.59it/s]
18%|█▊ | 1843/10000 [00:18<01:19, 102.56it/s]
19%|█▊ | 1854/10000 [00:18<01:19, 102.98it/s]
19%|█▊ | 1865/10000 [00:18<01:18, 103.42it/s]
19%|█▉ | 1876/10000 [00:18<01:18, 103.88it/s]
19%|█▉ | 1887/10000 [00:19<01:18, 103.81it/s]
19%|█▉ | 1898/10000 [00:19<01:18, 103.81it/s]
19%|█▉ | 1909/10000 [00:19<01:17, 103.92it/s]
19%|█▉ | 1920/10000 [00:19<01:16, 104.97it/s]
19%|█▉ | 1933/10000 [00:19<01:13, 109.75it/s]
19%|█▉ | 1946/10000 [00:19<01:11, 113.06it/s]
20%|█▉ | 1959/10000 [00:19<01:09, 115.25it/s]
20%|█▉ | 1971/10000 [00:19<01:09, 115.50it/s]
20%|█▉ | 1983/10000 [00:19<01:09, 114.76it/s]
20%|█▉ | 1995/10000 [00:20<01:11, 112.66it/s]
20%|██ | 2007/10000 [00:20<01:11, 112.29it/s]
20%|██ | 2019/10000 [00:20<01:10, 112.85it/s]
20%|██ | 2031/10000 [00:20<01:10, 112.55it/s]
20%|██ | 2043/10000 [00:20<01:09, 113.97it/s]
21%|██ | 2055/10000 [00:20<01:09, 114.77it/s]
21%|██ | 2067/10000 [00:20<01:09, 114.86it/s]
21%|██ | 2079/10000 [00:20<01:08, 115.53it/s]
21%|██ | 2091/10000 [00:20<01:08, 115.25it/s]
21%|██ | 2103/10000 [00:20<01:09, 113.48it/s]
21%|██ | 2115/10000 [00:21<01:09, 112.99it/s]
21%|██▏ | 2127/10000 [00:21<01:10, 111.69it/s]
21%|██▏ | 2139/10000 [00:21<01:21, 96.88it/s]
22%|██▏ | 2151/10000 [00:21<01:16, 102.13it/s]
22%|██▏ | 2163/10000 [00:21<01:14, 105.04it/s]
22%|██▏ | 2175/10000 [00:21<01:12, 107.24it/s]
22%|██▏ | 2186/10000 [00:21<01:12, 107.99it/s]
22%|██▏ | 2197/10000 [00:21<01:13, 106.85it/s]
22%|██▏ | 2208/10000 [00:21<01:13, 106.35it/s]
22%|██▏ | 2219/10000 [00:22<01:12, 107.21it/s]
22%|██▏ | 2230/10000 [00:22<01:12, 107.48it/s]
22%|██▏ | 2241/10000 [00:22<01:11, 107.97it/s]
23%|██▎ | 2253/10000 [00:22<01:10, 109.72it/s]
23%|██▎ | 2265/10000 [00:22<01:09, 110.80it/s]
23%|██▎ | 2277/10000 [00:22<01:09, 110.77it/s]
23%|██▎ | 2289/10000 [00:22<01:09, 110.77it/s]
23%|██▎ | 2301/10000 [00:22<01:09, 110.79it/s]
23%|██▎ | 2313/10000 [00:22<01:09, 110.50it/s]
23%|██▎ | 2325/10000 [00:23<01:10, 108.25it/s]
23%|██▎ | 2336/10000 [00:23<01:13, 104.13it/s]
23%|██▎ | 2347/10000 [00:23<01:13, 103.99it/s]
24%|██▎ | 2358/10000 [00:23<01:13, 103.96it/s]
24%|██▎ | 2369/10000 [00:23<01:13, 104.13it/s]
24%|██▍ | 2380/10000 [00:23<01:13, 104.10it/s]
24%|██▍ | 2391/10000 [00:23<01:13, 104.08it/s]
24%|██▍ | 2402/10000 [00:23<01:12, 104.35it/s]
24%|██▍ | 2413/10000 [00:23<01:12, 104.57it/s]
24%|██▍ | 2424/10000 [00:23<01:12, 104.69it/s]
24%|██▍ | 2435/10000 [00:24<01:12, 104.44it/s]
24%|██▍ | 2446/10000 [00:24<01:12, 104.14it/s]
25%|██▍ | 2457/10000 [00:24<01:12, 104.22it/s]
25%|██▍ | 2468/10000 [00:24<01:12, 104.33it/s]
25%|██▍ | 2479/10000 [00:24<01:12, 104.44it/s]
25%|██▍ | 2490/10000 [00:24<01:11, 104.42it/s]
25%|██▌ | 2501/10000 [00:24<01:11, 104.55it/s]
25%|██▌ | 2512/10000 [00:24<01:11, 104.43it/s]
25%|██▌ | 2523/10000 [00:24<01:11, 104.55it/s]
25%|██▌ | 2534/10000 [00:25<01:11, 104.52it/s]
25%|██▌ | 2545/10000 [00:25<01:11, 104.25it/s]
26%|██▌ | 2556/10000 [00:25<01:11, 104.20it/s]
26%|██▌ | 2567/10000 [00:25<01:11, 104.28it/s]
26%|██▌ | 2578/10000 [00:25<01:11, 104.32it/s]
26%|██▌ | 2589/10000 [00:25<01:11, 104.35it/s]
26%|██▌ | 2600/10000 [00:25<01:10, 104.45it/s]
26%|██▌ | 2611/10000 [00:25<01:10, 104.42it/s]
26%|██▌ | 2622/10000 [00:25<01:10, 104.63it/s]
26%|██▋ | 2633/10000 [00:25<01:10, 104.74it/s]
26%|██▋ | 2644/10000 [00:26<01:10, 104.38it/s]
27%|██▋ | 2655/10000 [00:26<01:10, 104.16it/s]
27%|██▋ | 2666/10000 [00:26<01:10, 104.20it/s]
27%|██▋ | 2677/10000 [00:26<01:10, 104.42it/s]
27%|██▋ | 2688/10000 [00:26<01:09, 104.50it/s]
27%|██▋ | 2699/10000 [00:26<01:09, 104.50it/s]
27%|██▋ | 2710/10000 [00:26<01:09, 104.45it/s]
27%|██▋ | 2721/10000 [00:26<01:09, 104.73it/s]
27%|██▋ | 2732/10000 [00:26<01:09, 104.78it/s]
27%|██▋ | 2743/10000 [00:27<01:09, 104.32it/s]
28%|██▊ | 2754/10000 [00:27<01:09, 103.99it/s]
28%|██▊ | 2765/10000 [00:27<01:09, 104.00it/s]
28%|██▊ | 2776/10000 [00:27<01:09, 104.26it/s]
28%|██▊ | 2787/10000 [00:27<01:09, 104.34it/s]
28%|██▊ | 2801/10000 [00:27<01:03, 114.19it/s]
28%|██▊ | 2818/10000 [00:27<00:55, 130.07it/s]
28%|██▊ | 2832/10000 [00:27<00:54, 130.33it/s]
28%|██▊ | 2849/10000 [00:27<00:50, 141.14it/s]
29%|██▊ | 2866/10000 [00:27<00:47, 149.03it/s]
29%|██▉ | 2883/10000 [00:28<00:46, 154.37it/s]
29%|██▉ | 2900/10000 [00:28<00:44, 158.23it/s]
29%|██▉ | 2917/10000 [00:28<00:44, 160.98it/s]
29%|██▉ | 2934/10000 [00:28<00:43, 162.94it/s]
30%|██▉ | 2951/10000 [00:28<00:42, 164.41it/s]
30%|██▉ | 2968/10000 [00:28<00:42, 165.42it/s]
30%|██▉ | 2985/10000 [00:28<00:42, 166.18it/s]
30%|███ | 3002/10000 [00:28<00:41, 166.64it/s]
30%|███ | 3019/10000 [00:28<00:41, 167.08it/s]
30%|███ | 3036/10000 [00:28<00:41, 167.39it/s]
31%|███ | 3053/10000 [00:29<00:41, 167.57it/s]
31%|███ | 3070/10000 [00:36<15:49, 7.30it/s]
31%|███ | 3085/10000 [00:36<11:40, 9.88it/s]
31%|███ | 3102/10000 [00:36<08:16, 13.89it/s]
31%|███ | 3119/10000 [00:36<05:56, 19.29it/s]
31%|███▏ | 3136/10000 [00:37<04:20, 26.38it/s]
32%|███▏ | 3153/10000 [00:37<03:13, 35.41it/s]
32%|███▏ | 3170/10000 [00:37<02:26, 46.48it/s]
32%|███▏ | 3187/10000 [00:37<01:54, 59.43it/s]
32%|███▏ | 3204/10000 [00:37<01:32, 73.75it/s]
32%|███▏ | 3221/10000 [00:37<01:16, 88.58it/s]
32%|███▏ | 3238/10000 [00:37<01:05, 103.11it/s]
33%|███▎ | 3255/10000 [00:37<00:57, 116.50it/s]
33%|███▎ | 3272/10000 [00:37<00:52, 128.16it/s]
33%|███▎ | 3289/10000 [00:37<00:48, 137.83it/s]
33%|███▎ | 3306/10000 [00:38<00:46, 145.50it/s]
33%|███▎ | 3323/10000 [00:38<00:44, 151.56it/s]
33%|███▎ | 3340/10000 [00:38<00:43, 153.84it/s]
34%|███▎ | 3357/10000 [00:38<00:42, 156.39it/s]
34%|███▎ | 3374/10000 [00:38<00:41, 158.71it/s]
34%|███▍ | 3391/10000 [00:38<00:41, 160.29it/s]
34%|███▍ | 3408/10000 [00:38<00:40, 162.17it/s]
34%|███▍ | 3425/10000 [00:38<00:40, 163.62it/s]
34%|███▍ | 3442/10000 [00:38<00:39, 164.67it/s]
35%|███▍ | 3459/10000 [00:38<00:39, 165.55it/s]
35%|███▍ | 3476/10000 [00:39<00:39, 166.21it/s]
35%|███▍ | 3493/10000 [00:39<00:39, 166.78it/s]
35%|███▌ | 3510/10000 [00:39<00:38, 166.90it/s]
35%|███▌ | 3527/10000 [00:39<00:38, 166.84it/s]
35%|███▌ | 3544/10000 [00:39<00:38, 166.96it/s]
36%|███▌ | 3561/10000 [00:39<00:38, 166.95it/s]
36%|███▌ | 3578/10000 [00:39<00:38, 167.08it/s]
36%|███▌ | 3595/10000 [00:39<00:38, 167.20it/s]
36%|███▌ | 3612/10000 [00:39<00:38, 167.25it/s]
36%|███▋ | 3629/10000 [00:39<00:38, 167.33it/s]
36%|███▋ | 3646/10000 [00:40<00:37, 167.32it/s]
37%|███▋ | 3663/10000 [00:40<00:37, 167.55it/s]
37%|███▋ | 3680/10000 [00:40<00:37, 167.87it/s]
37%|███▋ | 3697/10000 [00:40<00:37, 167.61it/s]
37%|███▋ | 3714/10000 [00:40<00:37, 167.36it/s]
37%|███▋ | 3731/10000 [00:40<00:37, 167.23it/s]
37%|███▋ | 3748/10000 [00:40<00:37, 167.21it/s]
38%|███▊ | 3765/10000 [00:40<00:37, 167.27it/s]
38%|███▊ | 3782/10000 [00:40<00:37, 167.30it/s]
38%|███▊ | 3799/10000 [00:40<00:37, 166.78it/s]
38%|███▊ | 3816/10000 [00:41<00:37, 164.08it/s]
38%|███▊ | 3833/10000 [00:41<00:38, 160.40it/s]
38%|███▊ | 3850/10000 [00:41<00:38, 159.54it/s]
39%|███▊ | 3866/10000 [00:41<00:38, 158.92it/s]
39%|███▉ | 3882/10000 [00:41<00:38, 158.49it/s]
39%|███▉ | 3898/10000 [00:41<00:38, 158.32it/s]
39%|███▉ | 3914/10000 [00:41<00:38, 158.36it/s]
39%|███▉ | 3930/10000 [00:41<00:38, 158.53it/s]
39%|███▉ | 3946/10000 [00:41<00:38, 158.69it/s]
40%|███▉ | 3962/10000 [00:42<00:38, 158.04it/s]
40%|███▉ | 3978/10000 [00:42<00:38, 154.80it/s]
40%|███▉ | 3994/10000 [00:42<00:39, 151.90it/s]
40%|████ | 4010/10000 [00:42<00:40, 149.31it/s]
40%|████ | 4025/10000 [00:42<00:40, 148.31it/s]
40%|████ | 4040/10000 [00:42<00:41, 144.89it/s]
41%|████ | 4055/10000 [00:42<00:41, 141.85it/s]
41%|████ | 4070/10000 [00:42<00:42, 139.73it/s]
41%|████ | 4084/10000 [00:42<00:42, 138.03it/s]
41%|████ | 4098/10000 [00:43<00:44, 132.61it/s]
41%|████ | 4112/10000 [00:43<00:45, 128.79it/s]
41%|████▏ | 4125/10000 [00:43<00:46, 126.39it/s]
41%|████▏ | 4138/10000 [00:43<00:47, 124.36it/s]
42%|████▏ | 4151/10000 [00:43<00:49, 118.86it/s]
42%|████▏ | 4163/10000 [00:43<00:51, 114.39it/s]
42%|████▏ | 4175/10000 [00:43<00:52, 111.36it/s]
42%|████▏ | 4187/10000 [00:43<00:53, 109.32it/s]
42%|████▏ | 4198/10000 [00:43<00:53, 108.02it/s]
42%|████▏ | 4209/10000 [00:44<00:55, 103.77it/s]
42%|████▏ | 4220/10000 [00:44<00:58, 99.24it/s]
42%|████▏ | 4230/10000 [00:44<00:59, 96.27it/s]
42%|████▏ | 4240/10000 [00:44<01:01, 93.93it/s]
42%|████▎ | 4250/10000 [00:44<01:02, 92.39it/s]
43%|████▎ | 4260/10000 [00:44<01:06, 86.68it/s]
43%|████▎ | 4269/10000 [00:44<01:09, 82.47it/s]
43%|████▎ | 4278/10000 [00:44<01:11, 79.49it/s]
43%|████▎ | 4286/10000 [00:44<01:13, 77.62it/s]
43%|████▎ | 4294/10000 [00:45<01:14, 76.28it/s]
43%|████▎ | 4302/10000 [00:45<01:16, 74.03it/s]
43%|████▎ | 4310/10000 [00:45<01:18, 72.60it/s]
43%|████▎ | 4318/10000 [00:45<01:18, 72.42it/s]
43%|████▎ | 4326/10000 [00:45<01:18, 72.38it/s]
43%|████▎ | 4334/10000 [00:45<01:20, 70.21it/s]
43%|████▎ | 4342/10000 [00:45<01:19, 70.76it/s]
44%|████▎ | 4350/10000 [00:45<01:19, 71.28it/s]
44%|████▎ | 4358/10000 [00:45<01:18, 71.73it/s]
44%|████▎ | 4366/10000 [00:46<01:18, 71.98it/s]
44%|████▎ | 4374/10000 [00:46<01:22, 67.91it/s]
44%|████▍ | 4381/10000 [00:46<01:25, 65.52it/s]
44%|████▍ | 4388/10000 [00:46<01:27, 64.38it/s]
44%|████▍ | 4395/10000 [00:46<01:27, 63.77it/s]
44%|████▍ | 4402/10000 [00:46<01:32, 60.69it/s]
44%|████▍ | 4409/10000 [00:46<01:35, 58.54it/s]
44%|████▍ | 4415/10000 [00:46<01:36, 57.97it/s]
44%|████▍ | 4421/10000 [00:47<01:38, 56.93it/s]
44%|████▍ | 4427/10000 [00:47<01:39, 55.86it/s]
44%|████▍ | 4433/10000 [00:47<01:41, 54.91it/s]
44%|████▍ | 4439/10000 [00:47<01:41, 54.61it/s]
44%|████▍ | 4445/10000 [00:47<01:41, 54.98it/s]
45%|████▍ | 4451/10000 [00:47<01:40, 55.14it/s]
45%|████▍ | 4457/10000 [00:47<01:40, 55.29it/s]
45%|████▍ | 4463/10000 [00:47<01:40, 55.00it/s]
45%|████▍ | 4469/10000 [00:47<01:41, 54.48it/s]
45%|████▍ | 4475/10000 [00:48<01:42, 54.16it/s]
45%|████▍ | 4481/10000 [00:48<01:42, 53.63it/s]
45%|████▍ | 4487/10000 [00:48<01:42, 53.57it/s]
45%|████▍ | 4493/10000 [00:48<01:44, 52.55it/s]
45%|████▍ | 4499/10000 [00:48<01:44, 52.77it/s]
45%|████▌ | 4505/10000 [00:48<01:44, 52.61it/s]
45%|████▌ | 4511/10000 [00:48<01:44, 52.75it/s]
45%|████▌ | 4517/10000 [00:48<01:44, 52.63it/s]
45%|████▌ | 4523/10000 [00:48<01:43, 53.11it/s]
45%|████▌ | 4529/10000 [00:49<01:44, 52.55it/s]
45%|████▌ | 4535/10000 [00:49<01:42, 53.27it/s]
45%|████▌ | 4541/10000 [00:49<01:41, 53.81it/s]
45%|████▌ | 4547/10000 [00:49<01:43, 52.89it/s]
46%|████▌ | 4553/10000 [00:49<01:41, 53.75it/s]
46%|████▌ | 4559/10000 [00:49<01:39, 54.87it/s]
46%|████▌ | 4565/10000 [00:49<01:41, 53.60it/s]
46%|████▌ | 4571/10000 [00:49<01:39, 54.68it/s]
46%|████▌ | 4577/10000 [00:49<01:44, 51.83it/s]
46%|████▌ | 4583/10000 [00:50<01:42, 52.66it/s]
46%|████▌ | 4589/10000 [00:50<01:44, 51.73it/s]
46%|████▌ | 4595/10000 [00:50<01:52, 48.08it/s]
46%|████▌ | 4601/10000 [00:50<01:47, 50.12it/s]
46%|████▌ | 4607/10000 [00:50<01:42, 52.52it/s]
46%|████▌ | 4614/10000 [00:50<01:36, 55.60it/s]
46%|████▌ | 4621/10000 [00:50<01:30, 59.38it/s]
46%|████▋ | 4628/10000 [00:50<01:26, 61.98it/s]
46%|████▋ | 4635/10000 [00:50<01:24, 63.27it/s]
46%|████▋ | 4642/10000 [00:51<01:22, 65.08it/s]
46%|████▋ | 4649/10000 [00:51<01:21, 65.72it/s]
47%|████▋ | 4656/10000 [00:51<01:20, 66.41it/s]
47%|████▋ | 4664/10000 [00:51<01:18, 67.90it/s]
47%|████▋ | 4672/10000 [00:51<01:17, 69.09it/s]
47%|████▋ | 4680/10000 [00:51<01:15, 70.04it/s]
47%|████▋ | 4688/10000 [00:51<01:15, 70.65it/s]
47%|████▋ | 4696/10000 [00:51<01:14, 71.12it/s]
47%|████▋ | 4704/10000 [00:51<01:14, 71.43it/s]
47%|████▋ | 4712/10000 [00:52<01:13, 71.71it/s]
47%|████▋ | 4720/10000 [00:52<01:13, 71.91it/s]
47%|████▋ | 4728/10000 [00:52<01:12, 72.51it/s]
47%|████▋ | 4737/10000 [00:52<01:08, 76.99it/s]
47%|████▋ | 4746/10000 [00:52<01:05, 80.44it/s]
48%|████▊ | 4755/10000 [00:52<01:03, 82.78it/s]
48%|████▊ | 4764/10000 [00:52<01:02, 84.38it/s]
48%|████▊ | 4773/10000 [00:52<01:01, 85.59it/s]
48%|████▊ | 4782/10000 [00:52<01:00, 86.42it/s]
48%|████▊ | 4792/10000 [00:53<00:58, 88.30it/s]
48%|████▊ | 4803/10000 [00:53<00:55, 93.07it/s]
48%|████▊ | 4814/10000 [00:53<00:53, 96.47it/s]
48%|████▊ | 4825/10000 [00:53<00:52, 98.47it/s]
48%|████▊ | 4835/10000 [00:53<00:53, 97.22it/s]
48%|████▊ | 4846/10000 [00:53<00:52, 98.99it/s]
49%|████▊ | 4857/10000 [00:53<00:51, 100.45it/s]
49%|████▊ | 4868/10000 [00:53<00:50, 101.50it/s]
49%|████▉ | 4879/10000 [00:53<00:50, 102.31it/s]
49%|████▉ | 4890/10000 [00:53<00:49, 102.76it/s]
49%|████▉ | 4902/10000 [00:54<00:47, 107.61it/s]
49%|████▉ | 4914/10000 [00:54<00:45, 110.82it/s]
49%|████▉ | 4926/10000 [00:54<00:45, 112.31it/s]
49%|████▉ | 4938/10000 [00:54<00:44, 114.36it/s]
50%|████▉ | 4950/10000 [00:54<00:43, 115.91it/s]
50%|████▉ | 4962/10000 [00:54<00:43, 117.05it/s]
50%|████▉ | 4975/10000 [00:54<00:42, 118.01it/s]
50%|████▉ | 4987/10000 [00:54<00:42, 118.55it/s]
50%|████▉ | 4999/10000 [00:54<00:42, 118.97it/s]
50%|█████ | 5011/10000 [00:54<00:41, 119.26it/s]
50%|█████ | 5023/10000 [00:55<00:41, 119.41it/s]
50%|█████ | 5036/10000 [00:55<00:41, 119.73it/s]
50%|█████ | 5049/10000 [00:55<00:41, 119.85it/s]
51%|█████ | 5061/10000 [00:55<00:41, 119.59it/s]
51%|█████ | 5073/10000 [00:55<00:41, 119.54it/s]
51%|█████ | 5085/10000 [00:55<00:41, 119.62it/s]
51%|█████ | 5098/10000 [00:55<00:40, 119.81it/s]
51%|█████ | 5111/10000 [00:55<00:40, 119.99it/s]
51%|█████ | 5124/10000 [00:55<00:40, 120.10it/s]
51%|█████▏ | 5137/10000 [00:56<00:40, 120.21it/s]
52%|█████▏ | 5150/10000 [00:56<00:40, 120.28it/s]
52%|█████▏ | 5163/10000 [00:56<00:40, 120.46it/s]
52%|█████▏ | 5176/10000 [00:56<00:40, 120.13it/s]
52%|█████▏ | 5189/10000 [00:56<00:40, 120.24it/s]
52%|█████▏ | 5202/10000 [00:56<00:40, 118.23it/s]
52%|█████▏ | 5214/10000 [00:56<00:40, 118.45it/s]
52%|█████▏ | 5226/10000 [00:56<00:40, 118.84it/s]
52%|█████▏ | 5239/10000 [00:56<00:39, 119.22it/s]
53%|█████▎ | 5252/10000 [00:56<00:39, 119.60it/s]
53%|█████▎ | 5264/10000 [00:57<00:39, 119.69it/s]
53%|█████▎ | 5277/10000 [00:57<00:39, 119.88it/s]
53%|█████▎ | 5289/10000 [00:57<00:39, 119.90it/s]
53%|█████▎ | 5301/10000 [00:57<00:39, 119.65it/s]
53%|█████▎ | 5314/10000 [00:57<00:39, 119.78it/s]
53%|█████▎ | 5327/10000 [00:57<00:38, 119.86it/s]
53%|█████▎ | 5339/10000 [00:57<00:39, 116.85it/s]
54%|█████▎ | 5352/10000 [00:57<00:39, 118.12it/s]
54%|█████▎ | 5365/10000 [00:57<00:38, 119.00it/s]
54%|█████▍ | 5377/10000 [00:58<00:38, 119.02it/s]
54%|█████▍ | 5389/10000 [00:58<00:38, 118.81it/s]
54%|█████▍ | 5401/10000 [00:58<00:38, 118.08it/s]
54%|█████▍ | 5413/10000 [00:58<00:38, 118.15it/s]
54%|█████▍ | 5425/10000 [00:58<00:38, 118.35it/s]
54%|█████▍ | 5437/10000 [00:58<00:38, 117.50it/s]
54%|█████▍ | 5449/10000 [00:58<00:38, 117.90it/s]
55%|█████▍ | 5461/10000 [00:58<00:38, 117.83it/s]
55%|█████▍ | 5473/10000 [00:58<00:38, 118.40it/s]
55%|█████▍ | 5486/10000 [00:58<00:37, 119.03it/s]
55%|█████▍ | 5499/10000 [00:59<00:37, 119.66it/s]
55%|█████▌ | 5512/10000 [00:59<00:37, 120.04it/s]
55%|█████▌ | 5525/10000 [00:59<00:37, 120.10it/s]
55%|█████▌ | 5538/10000 [00:59<00:38, 116.80it/s]
56%|█████▌ | 5550/10000 [00:59<00:39, 112.89it/s]
56%|█████▌ | 5562/10000 [00:59<00:40, 110.23it/s]
56%|█████▌ | 5574/10000 [00:59<00:40, 108.53it/s]
56%|█████▌ | 5585/10000 [00:59<00:41, 107.34it/s]
56%|█████▌ | 5596/10000 [00:59<00:41, 106.55it/s]
56%|█████▌ | 5607/10000 [01:00<00:41, 105.87it/s]
56%|█████▌ | 5618/10000 [01:00<00:41, 105.50it/s]
56%|█████▋ | 5629/10000 [01:00<00:41, 105.16it/s]
56%|█████▋ | 5640/10000 [01:00<00:41, 104.70it/s]
57%|█████▋ | 5651/10000 [01:00<00:41, 104.56it/s]
57%|█████▋ | 5662/10000 [01:00<00:41, 104.51it/s]
57%|█████▋ | 5673/10000 [01:00<00:41, 104.56it/s]
57%|█████▋ | 5684/10000 [01:00<00:41, 104.59it/s]
57%|█████▋ | 5695/10000 [01:00<00:41, 104.56it/s]
57%|█████▋ | 5706/10000 [01:01<00:41, 104.47it/s]
57%|█████▋ | 5717/10000 [01:01<00:41, 104.44it/s]
57%|█████▋ | 5728/10000 [01:01<00:40, 104.53it/s]
57%|█████▋ | 5739/10000 [01:01<00:40, 104.32it/s]
57%|█████▊ | 5750/10000 [01:01<00:40, 104.25it/s]
58%|█████▊ | 5761/10000 [01:01<00:40, 104.27it/s]
58%|█████▊ | 5772/10000 [01:01<00:40, 104.35it/s]
58%|█████▊ | 5783/10000 [01:01<00:40, 104.43it/s]
58%|█████▊ | 5794/10000 [01:01<00:40, 104.46it/s]
58%|█████▊ | 5805/10000 [01:01<00:40, 104.52it/s]
58%|█████▊ | 5816/10000 [01:02<00:40, 104.45it/s]
58%|█████▊ | 5827/10000 [01:02<00:39, 104.58it/s]
58%|█████▊ | 5838/10000 [01:02<00:41, 101.46it/s]
58%|█████▊ | 5849/10000 [01:02<00:40, 101.99it/s]
59%|█████▊ | 5860/10000 [01:02<00:40, 102.57it/s]
59%|█████▊ | 5871/10000 [01:02<00:40, 103.03it/s]
59%|█████▉ | 5882/10000 [01:02<00:39, 103.43it/s]
59%|█████▉ | 5893/10000 [01:02<00:39, 103.70it/s]
59%|█████▉ | 5904/10000 [01:02<00:40, 100.51it/s]
59%|█████▉ | 5915/10000 [01:03<00:42, 96.83it/s]
59%|█████▉ | 5925/10000 [01:03<00:43, 94.66it/s]
59%|█████▉ | 5935/10000 [01:03<00:43, 93.05it/s]
59%|█████▉ | 5945/10000 [01:03<00:44, 91.67it/s]
60%|█████▉ | 5955/10000 [01:03<00:44, 90.81it/s]
60%|█████▉ | 5965/10000 [01:03<00:44, 90.30it/s]
60%|█████▉ | 5975/10000 [01:03<00:44, 89.86it/s]
60%|█████▉ | 5984/10000 [01:03<00:44, 89.68it/s]
60%|█████▉ | 5993/10000 [01:03<00:44, 89.53it/s]
60%|██████ | 6002/10000 [01:04<00:44, 89.37it/s]
60%|██████ | 6011/10000 [01:04<00:44, 89.44it/s]
60%|██████ | 6020/10000 [01:04<00:44, 89.51it/s]
60%|██████ | 6029/10000 [01:04<00:44, 89.15it/s]
60%|██████ | 6038/10000 [01:04<00:44, 89.01it/s]
60%|██████ | 6047/10000 [01:04<00:44, 88.99it/s]
61%|██████ | 6056/10000 [01:04<00:44, 89.00it/s]
61%|██████ | 6066/10000 [01:04<00:43, 89.91it/s]
61%|██████ | 6077/10000 [01:04<00:41, 94.44it/s]
61%|██████ | 6088/10000 [01:04<00:40, 97.54it/s]
61%|██████ | 6099/10000 [01:05<00:39, 99.68it/s]
61%|██████ | 6110/10000 [01:05<00:38, 101.14it/s]
61%|██████ | 6121/10000 [01:05<00:37, 102.09it/s]
61%|██████▏ | 6132/10000 [01:05<00:37, 102.61it/s]
61%|██████▏ | 6143/10000 [01:05<00:37, 103.08it/s]
62%|██████▏ | 6154/10000 [01:05<00:37, 103.50it/s]
62%|██████▏ | 6165/10000 [01:05<00:36, 103.81it/s]
62%|██████▏ | 6176/10000 [01:05<00:36, 104.11it/s]
62%|██████▏ | 6187/10000 [01:05<00:36, 104.28it/s]
62%|██████▏ | 6198/10000 [01:06<00:36, 104.36it/s]
62%|██████▏ | 6209/10000 [01:06<00:36, 104.47it/s]
62%|██████▏ | 6220/10000 [01:06<00:36, 104.70it/s]
62%|██████▏ | 6231/10000 [01:06<00:36, 104.24it/s]
62%|██████▏ | 6242/10000 [01:06<00:36, 104.26it/s]
63%|██████▎ | 6253/10000 [01:06<00:35, 104.50it/s]
63%|██████▎ | 6264/10000 [01:06<00:35, 104.36it/s]
63%|██████▎ | 6275/10000 [01:06<00:35, 104.27it/s]
63%|██████▎ | 6286/10000 [01:06<00:35, 104.27it/s]
63%|██████▎ | 6297/10000 [01:06<00:35, 104.29it/s]
63%|██████▎ | 6308/10000 [01:07<00:35, 104.28it/s]
63%|██████▎ | 6319/10000 [01:07<00:35, 104.44it/s]
63%|██████▎ | 6330/10000 [01:07<00:36, 101.89it/s]
63%|██████▎ | 6341/10000 [01:07<00:35, 102.21it/s]
64%|██████▎ | 6352/10000 [01:07<00:35, 102.83it/s]
64%|██████▎ | 6363/10000 [01:07<00:35, 103.32it/s]
64%|██████▎ | 6374/10000 [01:07<00:34, 103.74it/s]
64%|██████▍ | 6385/10000 [01:07<00:34, 104.03it/s]
64%|██████▍ | 6396/10000 [01:07<00:34, 104.26it/s]
64%|██████▍ | 6407/10000 [01:08<00:34, 104.39it/s]
64%|██████▍ | 6418/10000 [01:08<00:34, 104.51it/s]
64%|██████▍ | 6429/10000 [01:08<00:34, 104.34it/s]
64%|██████▍ | 6440/10000 [01:08<00:34, 104.08it/s]
65%|██████▍ | 6451/10000 [01:08<00:34, 104.21it/s]
65%|██████▍ | 6462/10000 [01:08<00:34, 103.20it/s]
65%|██████▍ | 6473/10000 [01:08<00:34, 102.93it/s]
65%|██████▍ | 6484/10000 [01:08<00:34, 103.07it/s]
65%|██████▍ | 6495/10000 [01:08<00:33, 103.28it/s]
65%|██████▌ | 6506/10000 [01:08<00:33, 102.81it/s]
65%|██████▌ | 6517/10000 [01:09<00:33, 103.33it/s]
65%|██████▌ | 6528/10000 [01:09<00:33, 103.64it/s]
65%|██████▌ | 6539/10000 [01:09<00:33, 103.72it/s]
66%|██████▌ | 6550/10000 [01:09<00:33, 103.77it/s]
66%|██████▌ | 6561/10000 [01:09<00:33, 103.92it/s]
66%|██████▌ | 6572/10000 [01:09<00:32, 104.11it/s]
66%|██████▌ | 6583/10000 [01:09<00:32, 104.27it/s]
66%|██████▌ | 6594/10000 [01:09<00:32, 104.46it/s]
66%|██████▌ | 6605/10000 [01:09<00:32, 104.36it/s]
66%|██████▌ | 6616/10000 [01:10<00:32, 104.35it/s]
66%|██████▋ | 6627/10000 [01:10<00:32, 104.47it/s]
66%|██████▋ | 6638/10000 [01:10<00:32, 104.56it/s]
66%|██████▋ | 6649/10000 [01:10<00:32, 104.22it/s]
67%|██████▋ | 6660/10000 [01:10<00:32, 104.18it/s]
67%|██████▋ | 6671/10000 [01:10<00:31, 104.13it/s]
67%|██████▋ | 6682/10000 [01:10<00:31, 104.22it/s]
67%|██████▋ | 6693/10000 [01:10<00:31, 104.36it/s]
67%|██████▋ | 6704/10000 [01:10<00:31, 104.36it/s]
67%|██████▋ | 6715/10000 [01:10<00:31, 104.38it/s]
67%|██████▋ | 6726/10000 [01:11<00:31, 104.31it/s]
67%|██████▋ | 6737/10000 [01:11<00:31, 104.42it/s]
67%|██████▋ | 6748/10000 [01:11<00:31, 104.28it/s]
68%|██████▊ | 6759/10000 [01:11<00:31, 104.22it/s]
68%|██████▊ | 6770/10000 [01:11<00:30, 104.30it/s]
68%|██████▊ | 6781/10000 [01:11<00:30, 104.42it/s]
68%|██████▊ | 6792/10000 [01:11<00:30, 104.48it/s]
68%|██████▊ | 6803/10000 [01:11<00:30, 104.52it/s]
68%|██████▊ | 6814/10000 [01:11<00:30, 104.58it/s]
68%|██████▊ | 6825/10000 [01:12<00:30, 104.60it/s]
68%|██████▊ | 6836/10000 [01:12<00:31, 101.98it/s]
68%|██████▊ | 6847/10000 [01:12<00:30, 102.70it/s]
69%|██████▊ | 6858/10000 [01:12<00:30, 103.00it/s]
69%|██████▊ | 6869/10000 [01:12<00:30, 103.40it/s]
69%|██████▉ | 6880/10000 [01:12<00:30, 103.65it/s]
69%|██████▉ | 6891/10000 [01:12<00:29, 103.96it/s]
69%|██████▉ | 6902/10000 [01:12<00:29, 104.14it/s]
69%|██████▉ | 6913/10000 [01:12<00:29, 103.95it/s]
69%|██████▉ | 6924/10000 [01:13<00:29, 103.94it/s]
69%|██████▉ | 6935/10000 [01:13<00:29, 104.12it/s]
69%|██████▉ | 6946/10000 [01:13<00:29, 104.27it/s]
70%|██████▉ | 6957/10000 [01:13<00:29, 104.15it/s]
70%|██████▉ | 6968/10000 [01:13<00:29, 104.12it/s]
70%|██████▉ | 6979/10000 [01:13<00:29, 103.34it/s]
70%|██████▉ | 6990/10000 [01:13<00:29, 102.97it/s]
70%|███████ | 7001/10000 [01:13<00:29, 102.77it/s]
70%|███████ | 7012/10000 [01:13<00:28, 103.30it/s]
70%|███████ | 7023/10000 [01:13<00:28, 103.58it/s]
70%|███████ | 7034/10000 [01:14<00:28, 103.98it/s]
70%|███████ | 7045/10000 [01:14<00:28, 104.10it/s]
71%|███████ | 7056/10000 [01:14<00:28, 104.03it/s]
71%|███████ | 7067/10000 [01:14<00:28, 103.86it/s]
71%|███████ | 7078/10000 [01:14<00:28, 103.88it/s]
71%|███████ | 7089/10000 [01:14<00:27, 104.01it/s]
71%|███████ | 7100/10000 [01:14<00:27, 104.17it/s]
71%|███████ | 7111/10000 [01:14<00:27, 104.20it/s]
71%|███████ | 7122/10000 [01:14<00:27, 104.29it/s]
71%|███████▏ | 7133/10000 [01:15<00:27, 104.33it/s]
71%|███████▏ | 7144/10000 [01:15<00:27, 104.19it/s]
72%|███████▏ | 7155/10000 [01:15<00:27, 104.45it/s]
72%|███████▏ | 7166/10000 [01:15<00:27, 104.61it/s]
72%|███████▏ | 7177/10000 [01:15<00:27, 104.40it/s]
72%|███████▏ | 7188/10000 [01:15<00:26, 104.46it/s]
72%|███████▏ | 7199/10000 [01:15<00:26, 104.24it/s]
72%|███████▏ | 7210/10000 [01:15<00:26, 104.25it/s]
72%|███████▏ | 7221/10000 [01:15<00:26, 104.40it/s]
72%|███████▏ | 7232/10000 [01:15<00:26, 104.38it/s]
72%|███████▏ | 7243/10000 [01:16<00:26, 104.32it/s]
73%|███████▎ | 7254/10000 [01:16<00:26, 104.48it/s]
73%|███████▎ | 7265/10000 [01:16<00:26, 104.49it/s]
73%|███████▎ | 7276/10000 [01:16<00:26, 104.39it/s]
73%|███████▎ | 7287/10000 [01:16<00:25, 104.55it/s]
73%|███████▎ | 7298/10000 [01:16<00:26, 103.61it/s]
73%|███████▎ | 7309/10000 [01:16<00:26, 103.39it/s]
73%|███████▎ | 7320/10000 [01:16<00:25, 103.28it/s]
73%|███████▎ | 7331/10000 [01:16<00:26, 100.44it/s]
73%|███████▎ | 7342/10000 [01:17<00:26, 101.16it/s]
74%|███████▎ | 7353/10000 [01:17<00:25, 101.98it/s]
74%|███████▎ | 7364/10000 [01:17<00:25, 102.19it/s]
74%|███████▍ | 7375/10000 [01:17<00:25, 102.50it/s]
74%|███████▍ | 7386/10000 [01:17<00:25, 102.88it/s]
74%|███████▍ | 7397/10000 [01:17<00:25, 103.19it/s]
74%|███████▍ | 7408/10000 [01:17<00:25, 103.45it/s]
74%|███████▍ | 7419/10000 [01:17<00:24, 103.65it/s]
74%|███████▍ | 7430/10000 [01:17<00:24, 103.84it/s]
74%|███████▍ | 7441/10000 [01:17<00:24, 104.10it/s]
75%|███████▍ | 7452/10000 [01:18<00:24, 104.14it/s]
75%|███████▍ | 7463/10000 [01:18<00:24, 104.43it/s]
75%|███████▍ | 7474/10000 [01:18<00:24, 104.05it/s]
75%|███████▍ | 7485/10000 [01:18<00:24, 103.94it/s]
75%|███████▍ | 7496/10000 [01:18<00:24, 101.28it/s]
75%|███████▌ | 7507/10000 [01:18<00:25, 96.15it/s]
75%|███████▌ | 7517/10000 [01:18<00:25, 96.79it/s]
75%|███████▌ | 7527/10000 [01:18<00:25, 96.60it/s]
75%|███████▌ | 7537/10000 [01:18<00:25, 97.41it/s]
75%|███████▌ | 7547/10000 [01:19<00:25, 95.31it/s]
76%|███████▌ | 7557/10000 [01:19<00:26, 93.66it/s]
76%|███████▌ | 7567/10000 [01:19<00:26, 92.11it/s]
76%|███████▌ | 7577/10000 [01:19<00:26, 91.00it/s]
76%|███████▌ | 7587/10000 [01:19<00:26, 90.38it/s]
76%|███████▌ | 7597/10000 [01:19<00:26, 90.04it/s]
76%|███████▌ | 7607/10000 [01:19<00:26, 91.37it/s]
76%|███████▌ | 7618/10000 [01:19<00:25, 95.27it/s]
76%|███████▋ | 7629/10000 [01:19<00:24, 98.03it/s]
76%|███████▋ | 7640/10000 [01:20<00:23, 99.93it/s]
77%|███████▋ | 7651/10000 [01:20<00:23, 101.42it/s]
77%|███████▋ | 7662/10000 [01:20<00:22, 102.45it/s]
77%|███████▋ | 7673/10000 [01:20<00:22, 102.81it/s]
77%|███████▋ | 7684/10000 [01:20<00:22, 103.36it/s]
77%|███████▋ | 7695/10000 [01:20<00:22, 103.67it/s]
77%|███████▋ | 7706/10000 [01:20<00:22, 103.90it/s]
77%|███████▋ | 7717/10000 [01:20<00:21, 103.96it/s]
77%|███████▋ | 7728/10000 [01:20<00:21, 104.23it/s]
77%|███████▋ | 7739/10000 [01:21<00:21, 104.38it/s]
78%|███████▊ | 7750/10000 [01:21<00:21, 104.40it/s]
78%|███████▊ | 7761/10000 [01:21<00:21, 104.52it/s]
78%|███████▊ | 7772/10000 [01:21<00:21, 104.43it/s]
78%|███████▊ | 7783/10000 [01:21<00:21, 104.23it/s]
78%|███████▊ | 7794/10000 [01:21<00:21, 104.29it/s]
78%|███████▊ | 7805/10000 [01:21<00:21, 104.37it/s]
78%|███████▊ | 7819/10000 [01:21<00:19, 114.24it/s]
78%|███████▊ | 7835/10000 [01:21<00:17, 127.31it/s]
79%|███████▊ | 7852/10000 [01:21<00:15, 138.91it/s]
79%|███████▊ | 7869/10000 [01:22<00:14, 147.29it/s]
79%|███████▉ | 7886/10000 [01:22<00:13, 153.24it/s]
79%|███████▉ | 7903/10000 [01:22<00:13, 157.45it/s]
79%|███████▉ | 7920/10000 [01:22<00:12, 160.00it/s]
79%|███████▉ | 7937/10000 [01:22<00:12, 161.92it/s]
80%|███████▉ | 7954/10000 [01:22<00:12, 163.29it/s]
80%|███████▉ | 7971/10000 [01:22<00:12, 164.38it/s]
80%|███████▉ | 7988/10000 [01:22<00:12, 165.10it/s]
80%|████████ | 8005/10000 [01:22<00:12, 165.58it/s]
80%|████████ | 8022/10000 [01:22<00:11, 166.05it/s]
80%|████████ | 8039/10000 [01:23<00:11, 166.27it/s]
81%|████████ | 8056/10000 [01:23<00:11, 166.62it/s]
81%|████████ | 8073/10000 [01:23<00:11, 166.91it/s]
81%|████████ | 8090/10000 [01:30<04:15, 7.46it/s]
81%|████████ | 8107/10000 [01:30<03:00, 10.46it/s]
81%|████████ | 8124/10000 [01:30<02:08, 14.56it/s]
81%|████████▏ | 8141/10000 [01:30<01:32, 20.06it/s]
82%|████████▏ | 8158/10000 [01:31<01:07, 27.27it/s]
82%|████████▏ | 8175/10000 [01:31<00:50, 36.43it/s]
82%|████████▏ | 8192/10000 [01:31<00:37, 47.64it/s]
82%|████████▏ | 8209/10000 [01:31<00:29, 60.70it/s]
82%|████████▏ | 8226/10000 [01:31<00:23, 75.11it/s]
82%|████████▏ | 8243/10000 [01:31<00:19, 90.09it/s]
83%|████████▎ | 8260/10000 [01:31<00:16, 104.61it/s]
83%|████████▎ | 8277/10000 [01:31<00:14, 117.80it/s]
83%|████████▎ | 8294/10000 [01:31<00:13, 129.25it/s]
83%|████████▎ | 8311/10000 [01:31<00:12, 138.77it/s]
83%|████████▎ | 8328/10000 [01:32<00:11, 146.24it/s]
83%|████████▎ | 8345/10000 [01:32<00:11, 149.88it/s]
84%|████████▎ | 8362/10000 [01:32<00:10, 154.84it/s]
84%|████████▍ | 8379/10000 [01:32<00:10, 158.46it/s]
84%|████████▍ | 8396/10000 [01:32<00:09, 160.90it/s]
84%|████████▍ | 8413/10000 [01:32<00:09, 162.59it/s]
84%|████████▍ | 8430/10000 [01:32<00:09, 164.01it/s]
84%|████████▍ | 8447/10000 [01:32<00:09, 165.03it/s]
85%|████████▍ | 8464/10000 [01:32<00:09, 165.77it/s]
85%|████████▍ | 8481/10000 [01:32<00:09, 166.37it/s]
85%|████████▍ | 8498/10000 [01:33<00:09, 166.80it/s]
85%|████████▌ | 8515/10000 [01:33<00:08, 166.90it/s]
85%|████████▌ | 8532/10000 [01:33<00:08, 167.31it/s]
85%|████████▌ | 8549/10000 [01:33<00:08, 167.25it/s]
86%|████████▌ | 8566/10000 [01:33<00:08, 167.23it/s]
86%|████████▌ | 8583/10000 [01:33<00:08, 167.24it/s]
86%|████████▌ | 8600/10000 [01:33<00:08, 167.13it/s]
86%|████████▌ | 8617/10000 [01:33<00:08, 167.13it/s]
86%|████████▋ | 8634/10000 [01:33<00:08, 167.24it/s]
87%|████████▋ | 8651/10000 [01:33<00:08, 167.38it/s]
87%|████████▋ | 8668/10000 [01:34<00:07, 167.39it/s]
87%|████████▋ | 8685/10000 [01:34<00:07, 167.47it/s]
87%|████████▋ | 8702/10000 [01:34<00:07, 167.85it/s]
87%|████████▋ | 8719/10000 [01:34<00:07, 167.71it/s]
87%|████████▋ | 8736/10000 [01:34<00:07, 167.42it/s]
88%|████████▊ | 8753/10000 [01:34<00:07, 167.31it/s]
88%|████████▊ | 8770/10000 [01:34<00:07, 167.35it/s]
88%|████████▊ | 8787/10000 [01:34<00:07, 167.49it/s]
88%|████████▊ | 8804/10000 [01:34<00:07, 167.64it/s]
88%|████████▊ | 8821/10000 [01:34<00:07, 167.68it/s]
88%|████████▊ | 8838/10000 [01:35<00:08, 143.89it/s]
89%|████████▊ | 8854/10000 [01:35<00:07, 147.59it/s]
89%|████████▊ | 8870/10000 [01:35<00:07, 150.43it/s]
89%|████████▉ | 8886/10000 [01:35<00:07, 152.38it/s]
89%|████████▉ | 8902/10000 [01:35<00:07, 153.88it/s]
89%|████████▉ | 8918/10000 [01:35<00:07, 153.83it/s]
89%|████████▉ | 8934/10000 [01:35<00:06, 154.20it/s]
90%|████████▉ | 8950/10000 [01:35<00:06, 154.89it/s]
90%|████████▉ | 8966/10000 [01:35<00:06, 155.53it/s]
90%|████████▉ | 8982/10000 [01:36<00:06, 156.16it/s]
90%|████████▉ | 8998/10000 [01:36<00:06, 156.29it/s]
90%|█████████ | 9014/10000 [01:36<00:06, 152.35it/s]
90%|█████████ | 9030/10000 [01:36<00:06, 150.22it/s]
90%|█████████ | 9046/10000 [01:36<00:06, 148.88it/s]
91%|█████████ | 9061/10000 [01:36<00:06, 148.15it/s]
91%|█████████ | 9076/10000 [01:36<00:06, 145.18it/s]
91%|█████████ | 9091/10000 [01:36<00:06, 142.32it/s]
91%|█████████ | 9106/10000 [01:36<00:06, 140.50it/s]
91%|█████████ | 9121/10000 [01:37<00:06, 137.40it/s]
91%|█████████▏| 9135/10000 [01:37<00:06, 132.23it/s]
91%|█████████▏| 9149/10000 [01:37<00:06, 128.78it/s]
92%|█████████▏| 9162/10000 [01:37<00:06, 126.27it/s]
92%|█████████▏| 9175/10000 [01:37<00:06, 123.19it/s]
92%|█████████▏| 9188/10000 [01:37<00:06, 117.03it/s]
92%|█████████▏| 9200/10000 [01:37<00:07, 113.14it/s]
92%|█████████▏| 9212/10000 [01:37<00:07, 110.44it/s]
92%|█████████▏| 9224/10000 [01:37<00:07, 108.53it/s]
92%|█████████▏| 9235/10000 [01:38<00:07, 106.31it/s]
92%|█████████▏| 9246/10000 [01:38<00:07, 100.74it/s]
93%|█████████▎| 9257/10000 [01:38<00:07, 97.14it/s]
93%|█████████▎| 9267/10000 [01:38<00:07, 94.51it/s]
93%|█████████▎| 9277/10000 [01:38<00:07, 92.81it/s]
93%|█████████▎| 9287/10000 [01:38<00:07, 90.34it/s]
93%|█████████▎| 9297/10000 [01:38<00:08, 84.49it/s]
93%|█████████▎| 9306/10000 [01:38<00:08, 80.94it/s]
93%|█████████▎| 9315/10000 [01:39<00:08, 78.51it/s]
93%|█████████▎| 9323/10000 [01:39<00:08, 76.86it/s]
93%|█████████▎| 9331/10000 [01:39<00:09, 73.80it/s]
93%|█████████▎| 9339/10000 [01:39<00:09, 73.16it/s]
93%|█████████▎| 9347/10000 [01:39<00:08, 72.89it/s]
94%|█████████▎| 9355/10000 [01:39<00:08, 72.76it/s]
94%|█████████▎| 9363/10000 [01:39<00:08, 72.70it/s]
94%|█████████▎| 9371/10000 [01:39<00:08, 72.76it/s]
94%|█████████▍| 9379/10000 [01:39<00:08, 72.71it/s]
94%|█████████▍| 9387/10000 [01:40<00:08, 72.74it/s]
94%|█████████▍| 9395/10000 [01:40<00:08, 72.71it/s]
94%|█████████▍| 9403/10000 [01:40<00:08, 71.23it/s]
94%|█████████▍| 9411/10000 [01:40<00:08, 69.51it/s]
94%|█████████▍| 9418/10000 [01:40<00:08, 68.77it/s]
94%|█████████▍| 9426/10000 [01:40<00:08, 69.51it/s]
94%|█████████▍| 9434/10000 [01:40<00:08, 70.37it/s]
94%|█████████▍| 9442/10000 [01:40<00:08, 69.23it/s]
94%|█████████▍| 9449/10000 [01:40<00:08, 66.91it/s]
95%|█████████▍| 9456/10000 [01:41<00:08, 64.09it/s]
95%|█████████▍| 9463/10000 [01:41<00:08, 62.33it/s]
95%|█████████▍| 9470/10000 [01:41<00:09, 57.47it/s]
95%|█████████▍| 9476/10000 [01:41<00:09, 55.29it/s]
95%|█████████▍| 9482/10000 [01:41<00:09, 55.09it/s]
95%|█████████▍| 9488/10000 [01:41<00:09, 55.28it/s]
95%|█████████▍| 9494/10000 [01:41<00:09, 55.09it/s]
95%|█████████▌| 9500/10000 [01:41<00:09, 55.50it/s]
95%|█████████▌| 9506/10000 [01:42<00:08, 55.45it/s]
95%|█████████▌| 9512/10000 [01:42<00:09, 50.98it/s]
95%|█████████▌| 9518/10000 [01:42<00:09, 50.92it/s]
95%|█████████▌| 9524/10000 [01:42<00:09, 51.41it/s]
95%|█████████▌| 9530/10000 [01:42<00:09, 51.90it/s]
95%|█████████▌| 9536/10000 [01:42<00:08, 51.78it/s]
95%|█████████▌| 9542/10000 [01:42<00:08, 52.41it/s]
95%|█████████▌| 9548/10000 [01:42<00:08, 53.51it/s]
96%|█████████▌| 9554/10000 [01:42<00:08, 54.28it/s]
96%|█████████▌| 9560/10000 [01:43<00:07, 55.05it/s]
96%|█████████▌| 9566/10000 [01:43<00:07, 55.64it/s]
96%|█████████▌| 9572/10000 [01:43<00:07, 55.97it/s]
96%|█████████▌| 9578/10000 [01:43<00:07, 56.41it/s]
96%|█████████▌| 9584/10000 [01:43<00:07, 55.96it/s]
96%|█████████▌| 9590/10000 [01:43<00:07, 55.88it/s]
96%|█████████▌| 9596/10000 [01:43<00:07, 56.55it/s]
96%|█████████▌| 9602/10000 [01:43<00:06, 57.04it/s]
96%|█████████▌| 9608/10000 [01:43<00:07, 54.80it/s]
96%|█████████▌| 9614/10000 [01:43<00:07, 54.92it/s]
96%|█████████▌| 9620/10000 [01:44<00:06, 55.72it/s]
96%|█████████▋| 9627/10000 [01:44<00:06, 58.05it/s]
96%|█████████▋| 9633/10000 [01:44<00:06, 55.84it/s]
96%|█████████▋| 9640/10000 [01:44<00:06, 58.68it/s]
96%|█████████▋| 9647/10000 [01:44<00:05, 61.49it/s]
97%|█████████▋| 9654/10000 [01:44<00:05, 63.76it/s]
97%|█████████▋| 9662/10000 [01:44<00:05, 66.59it/s]
97%|█████████▋| 9670/10000 [01:44<00:04, 67.87it/s]
97%|█████████▋| 9678/10000 [01:44<00:04, 69.02it/s]
97%|█████████▋| 9686/10000 [01:45<00:04, 69.93it/s]
97%|█████████▋| 9694/10000 [01:45<00:04, 70.68it/s]
97%|█████████▋| 9702/10000 [01:45<00:04, 70.41it/s]
97%|█████████▋| 9710/10000 [01:45<00:04, 70.54it/s]
97%|█████████▋| 9718/10000 [01:45<00:03, 70.97it/s]
97%|█████████▋| 9726/10000 [01:45<00:03, 70.57it/s]
97%|█████████▋| 9734/10000 [01:45<00:03, 70.67it/s]
97%|█████████▋| 9742/10000 [01:45<00:03, 71.03it/s]
98%|█████████▊| 9750/10000 [01:45<00:03, 71.39it/s]
98%|█████████▊| 9759/10000 [01:46<00:03, 74.41it/s]
98%|█████████▊| 9768/10000 [01:46<00:02, 78.50it/s]
98%|█████████▊| 9777/10000 [01:46<00:02, 80.95it/s]
98%|█████████▊| 9786/10000 [01:46<00:02, 82.94it/s]
98%|█████████▊| 9795/10000 [01:46<00:02, 84.48it/s]
98%|█████████▊| 9804/10000 [01:46<00:02, 85.66it/s]
98%|█████████▊| 9813/10000 [01:46<00:02, 86.63it/s]
98%|█████████▊| 9823/10000 [01:46<00:01, 89.31it/s]
98%|█████████▊| 9833/10000 [01:46<00:01, 91.21it/s]
98%|█████████▊| 9844/10000 [01:47<00:01, 94.91it/s]
99%|█████████▊| 9855/10000 [01:47<00:01, 97.66it/s]
99%|█████████▊| 9866/10000 [01:47<00:01, 99.71it/s]
99%|█████████▉| 9877/10000 [01:47<00:01, 101.12it/s]
99%|█████████▉| 9888/10000 [01:47<00:01, 102.04it/s]
99%|█████████▉| 9899/10000 [01:47<00:00, 102.98it/s]
99%|█████████▉| 9910/10000 [01:47<00:00, 103.29it/s]
99%|█████████▉| 9921/10000 [01:47<00:00, 103.58it/s]
99%|█████████▉| 9932/10000 [01:47<00:00, 104.54it/s]
99%|█████████▉| 9945/10000 [01:47<00:00, 109.51it/s]
100%|█████████▉| 9958/10000 [01:48<00:00, 113.00it/s]
100%|█████████▉| 9971/10000 [01:48<00:00, 115.36it/s]
100%|█████████▉| 9984/10000 [01:48<00:00, 117.06it/s]
100%|█████████▉| 9996/10000 [01:48<00:00, 117.89it/s]
100%|██████████| 10000/10000 [01:51<00:00, 90.08it/s]
Define new variables
Defining new variables...: 0%| | 0/10 [00:00<?, ?it/s]
Defining new variables...: 10%|█ | 1/10 [00:00<00:01, 7.64it/s]
Defining new variables...: 20%|██ | 2/10 [00:00<00:01, 7.06it/s]
Defining new variables...: 30%|███ | 3/10 [00:00<00:01, 6.86it/s]
Defining new variables...: 40%|████ | 4/10 [00:00<00:00, 6.80it/s]
Defining new variables...: 50%|█████ | 5/10 [00:00<00:00, 6.80it/s]
Defining new variables...: 60%|██████ | 6/10 [00:00<00:00, 6.73it/s]
Defining new variables...: 70%|███████ | 7/10 [00:01<00:00, 6.70it/s]
Defining new variables...: 80%|████████ | 8/10 [00:01<00:00, 6.27it/s]
Defining new variables...: 90%|█████████ | 9/10 [00:01<00:00, 6.14it/s]
Defining new variables...: 100%|██████████| 10/10 [00:01<00:00, 6.11it/s]
Defining new variables...: 100%|██████████| 10/10 [00:17<00:00, 1.77s/it]
File cnl_10_63.dat has been created.
logprob = the_model_generation.get_cross_nested_logit()
the_biogeme = BIOGEME(biogeme_database, logprob)
the_biogeme.model_name = MODEL_NAME
Biogeme parameters read from biogeme.toml.
Calculate the null log likelihood for reporting.
the_biogeme.calculate_null_loglikelihood(
{i: 1 for i in range(context.total_sample_size)}
)
-23025.850929940458
Estimate the parameters.
try:
results = EstimationResults.from_yaml_file(
filename=f'saved_results/{the_biogeme.model_name}.yaml'
)
except FileNotFoundError:
with timeit(f'Estimate of model {the_biogeme.model_name}'):
results = the_biogeme.estimate()
print(results.short_summary())
Results for model cnl_10_63
Nbr of parameters: 13
Sample size: 10000
Excluded data: 0
Null log likelihood: -23025.85
Final log likelihood: -14057.39
Likelihood ratio test (null): 17936.92
Rho square (null): 0.389
Rho bar square (null): 0.389
Akaike Information Criterion: 28140.78
Bayesian Information Criterion: 28234.52
parameters_tables = get_pandas_estimated_parameters(estimation_results=results)
estimated_parameters = parameters_tables['Estimated parameters']
display(estimated_parameters)
Name Value Robust std err. Robust t-stat. Robust p-value
0 beta_rating 0.747977 0.015016 49.812686 0.0
1 beta_price -0.419067 0.012566 -33.348382 0.0
2 beta_chinese 0.765590 0.061540 12.440480 0.0
3 beta_japanese 1.320403 0.046410 28.450886 0.0
4 beta_korean 0.816529 0.052793 15.466682 0.0
5 beta_indian 1.119530 0.051895 21.572894 0.0
6 beta_french 0.795533 0.050193 15.849578 0.0
7 beta_mexican 1.272519 0.030108 42.265037 0.0
8 beta_lebanese 0.749133 0.048414 15.473500 0.0
9 beta_ethiopian 0.534911 0.041925 12.758787 0.0
10 beta_log_dist -0.579815 0.012460 -46.534733 0.0
11 mu_downtown 1.934682 0.030134 64.203560 0.0
12 mu_asian 2.117769 0.066331 31.927280 0.0
df, msg = compare(estimated_parameters)
print(df)
Name True Value Estimated Value T-Test
0 beta_rating 0.75 0.747977 0.134758
1 beta_price -0.40 -0.419067 1.517325
2 beta_chinese 0.75 0.765590 -0.253338
3 beta_japanese 1.25 1.320403 -1.516974
4 beta_korean 0.75 0.816529 -1.260183
5 beta_indian 1.00 1.119530 -2.303297
6 beta_french 0.75 0.795533 -0.907166
7 beta_mexican 1.25 1.272519 -0.747930
8 beta_lebanese 0.75 0.749133 0.017912
9 beta_ethiopian 0.50 0.534911 -0.832709
10 beta_log_dist -0.60 -0.579815 -1.620033
11 mu_asian 2.00 2.117769 -1.775471
12 mu_downtown 2.00 1.934682 2.167614
print(msg)
Total running time of the script: (2 minutes 16.869 seconds)