Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Path: blob/main/diffusers/reinforcement_learning_with_diffusers.ipynb
Views: 2535
Introduction
This notebook is designed to run inference on the Diffuser planning model for model-based RL. The notebook is modified from the authors' original. For those new to reinforcement learning, consider checking out the HuggingFace Reinforcement Learning Course for a primer.
Colab made by Nathan Lambert and Ben Glickenhaus.
Installing Packages
apt-get install
requirements
These requirements primarily pertain to install mujoco and run it in the colab. Source was inspired by this (fairly recent) demo.
Install Diffusers
/content
Found existing installation: diffusers 0.5.0.dev0
Uninstalling diffusers-0.5.0.dev0:
Successfully uninstalled diffusers-0.5.0.dev0
Cloning into 'diffusers'...
remote: Enumerating objects: 10356, done.
remote: Counting objects: 100% (502/502), done.
remote: Compressing objects: 100% (251/251), done.
remote: Total 10356 (delta 277), reused 384 (delta 201), pack-reused 9854
Receiving objects: 100% (10356/10356), 7.81 MiB | 17.77 MiB/s, done.
Resolving deltas: 100% (6885/6885), done.
DEPRECATION: A future pip version will change local packages to be built in-place without first copying to a temporary directory. We recommend you use --use-feature=in-tree-build to test your packages with this new behavior before it becomes the default.
pip 21.3 will remove support for this functionality. You can find discussion regarding this at https://github.com/pypa/pip/issues/7555.
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Building wheel for diffusers (PEP 517) ... done
pip install
requirements
Warning: Gym version v0.24.1 has a number of critical issues with `gym.make` such that environment observation and action spaces are incorrectly evaluated, raising incorrect errors and warning . It is recommend to downgrading to v0.23.1 or upgrading to v0.25.1
Warning: Flow failed to import. Set the environment variable D4RL_SUPPRESS_IMPORT_ERROR=1 to suppress this message.
No module named 'flow'
Warning: CARLA failed to import. Set the environment variable D4RL_SUPPRESS_IMPORT_ERROR=1 to suppress this message.
No module named 'carla'
/usr/local/lib/python3.7/dist-packages/gym/envs/registration.py:416: UserWarning: WARN: The `registry.env_specs` property along with `EnvSpecTree` is deprecated. Please use `registry` directly as a dictionary instead.
"The `registry.env_specs` property along with `EnvSpecTree` is deprecated. Please use `registry` directly as a dictionary instead."
Environment & Model Setup
In this section, we will create the environment, handle the data, and run the diffusion model.
Imports
Create environment
This colab is designed to run with pretrained models from the hopper environment. As more models are trained, this can be extended.
/usr/local/lib/python3.7/dist-packages/gym/envs/mujoco/mujoco_env.py:47: UserWarning: WARN: This version of the mujoco environments depends on the mujoco-py bindings, which are no longer maintained and may stop working. Please upgrade to the v4 versions of the environments (which depend on the mujoco python bindings instead), unless you are trying to precisely replicate previous works).
"This version of the mujoco environments depends "
/usr/local/lib/python3.7/dist-packages/gym/spaces/box.py:112: UserWarning: WARN: Box bound precision lowered by casting to float32
logger.warn(f"Box bound precision lowered by casting to {self.dtype}")
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:70: UserWarning: WARN: Agent's minimum action space value is -infinity. This is probably too low.
"Agent's minimum action space value is -infinity. This is probably too low."
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:74: UserWarning: WARN: Agent's maximum action space value is infinity. This is probably too high
"Agent's maximum action space value is infinity. This is probably too high"
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:98: UserWarning: WARN: We recommend you to use a symmetric and normalized Box action space (range=[-1, 1]) https://stable-baselines3.readthedocs.io/en/master/guide/rl_tips.html
"We recommend you to use a symmetric and normalized Box action space (range=[-1, 1]) "
load datafile: 19%|█▉ | 4/21 [00:00<00:03, 5.38it/s]/usr/local/lib/python3.7/dist-packages/h5py/_hl/dataset.py:767: DeprecationWarning: Passing None into shape arguments as an alias for () is deprecated.
arr = numpy.ndarray(selection.mshape, dtype=new_dtype)
load datafile: 100%|██████████| 21/21 [00:01<00:00, 15.70it/s]
Define constants
Helper functions
normalize
scales the state values corresponding to the training data-set in D4RL,de_normalize
unscales the data for correct rendering,to_torch
handles casting to torch for both numpy arrays and dicts (used for conditionning the model, seereset_x0
).
Sample env. initial state
Run the Diffusion Process -- from Scratch
Initialize model
In this section, we create a scheduler and load a pretrained model from the Hub. An important detail in the RL application space is to save conditions
which will allow the model to optimize trajectories only from the current state (which is cruical to making decisions!).
Planning helper function
reset_x0
is used to constrain the diffusion process to trajectories starting at the current state of the agent. Without this, the diffusion process would generate arbitrary high-reward trajectories, rather than trajectories beginning at the current state.
Setup for denoising
conditions
is the variable used to hold the first state of the planned trajectories to the current state (it is passed into reset_x0
).
Sample initial noise
Generate trajectories
The diffusion process for trajectories has 4 central components:
sampling an predicted original sample from the model (note that this model directly predicts the sample, rather than the error term
epsilon
used in many diffusion models),use the scheduler to predict the sample at the previous timestep,
[optional] add posterior noise to the sample,
condition the trajectory to constrain the initial state.
Render the samples
Renderering Tools
Rendering from Mujoco is historically not easy. Here is a modified version from the original paper. Additionally, a TODO is to investigate this web-based viewer.
Video helpers
Renderer helpers
These functions involve setting the state of the environment and reading it out in a pixel form.
Rendering class
Use the previously defined helpers to programatically render pixel sequences from a trajectory of states. This class takes the re-scaled outputs of the diffusion process and visualizes them.
Show Plans
This section renders 4 trajectories chosen from the same initial state in the environment.
Initialize renderer class for the environment
Show the video
Show the states generated by the diffusion model in the real environment. Not that the actions are dropped from the data.
Run Value Guided Diffusion -- with Pipeline
In this section, we repeat the above code, but we use a pre-trained pipeline in Diffusers!
/usr/local/lib/python3.7/dist-packages/gym/envs/mujoco/mujoco_env.py:47: UserWarning: WARN: This version of the mujoco environments depends on the mujoco-py bindings, which are no longer maintained and may stop working. Please upgrade to the v4 versions of the environments (which depend on the mujoco python bindings instead), unless you are trying to precisely replicate previous works).
"This version of the mujoco environments depends "
/usr/local/lib/python3.7/dist-packages/gym/spaces/box.py:112: UserWarning: WARN: Box bound precision lowered by casting to float32
logger.warn(f"Box bound precision lowered by casting to {self.dtype}")
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:70: UserWarning: WARN: Agent's minimum action space value is -infinity. This is probably too low.
"Agent's minimum action space value is -infinity. This is probably too low."
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:74: UserWarning: WARN: Agent's maximum action space value is infinity. This is probably too high
"Agent's maximum action space value is infinity. This is probably too high"
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:98: UserWarning: WARN: We recommend you to use a symmetric and normalized Box action space (range=[-1, 1]) https://stable-baselines3.readthedocs.io/en/master/guide/rl_tips.html
"We recommend you to use a symmetric and normalized Box action space (range=[-1, 1]) "
load datafile: 19%|█▉ | 4/21 [00:00<00:03, 5.16it/s]/usr/local/lib/python3.7/dist-packages/h5py/_hl/dataset.py:767: DeprecationWarning: Passing None into shape arguments as an alias for () is deprecated.
arr = numpy.ndarray(selection.mshape, dtype=new_dtype)
load datafile: 100%|██████████| 21/21 [00:01<00:00, 15.05it/s]
Load the pipeline!
/usr/local/lib/python3.7/dist-packages/gym/core.py:201: DeprecationWarning: WARN: Function `env.seed(seed)` is marked as deprecated and will be removed in the future. Please use `env.reset(seed=seed)` instead.
"Function `env.seed(seed)` is marked as deprecated and will be removed in the future. "
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:217: UserWarning: WARN: Future gym versions will require that `Env.reset` can be passed a `seed` instead of using `Env.seed` for resetting the environment random number generator.
"Future gym versions will require that `Env.reset` can be passed a `seed` instead of using `Env.seed` for resetting the environment random number generator. "
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:229: UserWarning: WARN: Future gym versions will require that `Env.reset` can be passed `return_info` to return information from the environment resetting.
"Future gym versions will require that `Env.reset` can be passed `return_info` to return information from the environment resetting."
/usr/local/lib/python3.7/dist-packages/gym/utils/passive_env_checker.py:234: UserWarning: WARN: Future gym versions will require that `Env.reset` can be passed `options` to allow the environment initialisation to be passed additional information.
"Future gym versions will require that `Env.reset` can be passed `options` to allow the environment initialisation to be passed additional information."
0%| | 0/100 [00:00<?, ?it/s]
0%| | 0/20 [00:00<?, ?it/s]
5%|▌ | 1/20 [00:00<00:13, 1.39it/s]
15%|█▌ | 3/20 [00:00<00:04, 4.17it/s]
25%|██▌ | 5/20 [00:01<00:02, 6.59it/s]
35%|███▌ | 7/20 [00:01<00:01, 8.64it/s]
45%|████▌ | 9/20 [00:01<00:01, 10.20it/s]
55%|█████▌ | 11/20 [00:01<00:00, 11.50it/s]
65%|██████▌ | 13/20 [00:01<00:00, 12.48it/s]
75%|███████▌ | 15/20 [00:01<00:00, 13.27it/s]
85%|████████▌ | 17/20 [00:01<00:00, 13.62it/s]
100%|██████████| 20/20 [00:02<00:00, 9.93it/s]
1%| | 1/100 [00:02<03:21, 2.03s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.76it/s]
20%|██ | 4/20 [00:00<00:01, 15.77it/s]
30%|███ | 6/20 [00:00<00:00, 15.71it/s]
40%|████ | 8/20 [00:00<00:00, 15.19it/s]
50%|█████ | 10/20 [00:00<00:00, 15.52it/s]
60%|██████ | 12/20 [00:00<00:00, 15.21it/s]
70%|███████ | 14/20 [00:00<00:00, 15.33it/s]
80%|████████ | 16/20 [00:01<00:00, 15.33it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.48it/s]
100%|██████████| 20/20 [00:01<00:00, 15.31it/s]
2%|▏ | 2/100 [00:03<02:38, 1.62s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.27it/s]
20%|██ | 4/20 [00:00<00:01, 14.22it/s]
30%|███ | 6/20 [00:00<00:00, 14.68it/s]
40%|████ | 8/20 [00:00<00:00, 14.77it/s]
50%|█████ | 10/20 [00:00<00:00, 15.20it/s]
60%|██████ | 12/20 [00:00<00:00, 15.26it/s]
70%|███████ | 14/20 [00:00<00:00, 14.85it/s]
80%|████████ | 16/20 [00:01<00:00, 15.19it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.27it/s]
100%|██████████| 20/20 [00:01<00:00, 14.93it/s]
3%|▎ | 3/100 [00:04<02:25, 1.50s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.02it/s]
20%|██ | 4/20 [00:00<00:01, 14.26it/s]
30%|███ | 6/20 [00:00<00:00, 14.72it/s]
40%|████ | 8/20 [00:00<00:00, 14.73it/s]
50%|█████ | 10/20 [00:00<00:00, 14.49it/s]
60%|██████ | 12/20 [00:00<00:00, 14.61it/s]
70%|███████ | 14/20 [00:00<00:00, 14.49it/s]
80%|████████ | 16/20 [00:01<00:00, 14.08it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.02it/s]
100%|██████████| 20/20 [00:01<00:00, 14.21it/s]
4%|▍ | 4/100 [00:06<02:21, 1.47s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.14it/s]
20%|██ | 4/20 [00:00<00:01, 13.20it/s]
30%|███ | 6/20 [00:00<00:01, 13.67it/s]
40%|████ | 8/20 [00:00<00:00, 13.73it/s]
50%|█████ | 10/20 [00:00<00:00, 13.29it/s]
60%|██████ | 12/20 [00:00<00:00, 13.36it/s]
70%|███████ | 14/20 [00:01<00:00, 13.45it/s]
80%|████████ | 16/20 [00:01<00:00, 13.17it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.93it/s]
100%|██████████| 20/20 [00:01<00:00, 13.21it/s]
5%|▌ | 5/100 [00:07<02:21, 1.49s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.49it/s]
20%|██ | 4/20 [00:00<00:01, 12.85it/s]
30%|███ | 6/20 [00:00<00:01, 12.57it/s]
40%|████ | 8/20 [00:00<00:00, 12.54it/s]
50%|█████ | 10/20 [00:00<00:00, 12.54it/s]
60%|██████ | 12/20 [00:00<00:00, 12.67it/s]
70%|███████ | 14/20 [00:01<00:00, 12.66it/s]
80%|████████ | 16/20 [00:01<00:00, 12.56it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.55it/s]
100%|██████████| 20/20 [00:01<00:00, 12.57it/s]
6%|▌ | 6/100 [00:09<02:24, 1.53s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.02it/s]
20%|██ | 4/20 [00:00<00:01, 12.83it/s]
30%|███ | 6/20 [00:00<00:01, 12.89it/s]
40%|████ | 8/20 [00:00<00:00, 12.84it/s]
50%|█████ | 10/20 [00:00<00:00, 12.43it/s]
60%|██████ | 12/20 [00:00<00:00, 12.67it/s]
70%|███████ | 14/20 [00:01<00:00, 12.68it/s]
80%|████████ | 16/20 [00:01<00:00, 12.55it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.85it/s]
100%|██████████| 20/20 [00:01<00:00, 12.76it/s]
7%|▋ | 7/100 [00:10<02:24, 1.55s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.11it/s]
20%|██ | 4/20 [00:00<00:01, 14.07it/s]
30%|███ | 6/20 [00:00<00:00, 14.43it/s]
40%|████ | 8/20 [00:00<00:00, 14.70it/s]
50%|█████ | 10/20 [00:00<00:00, 15.02it/s]
60%|██████ | 12/20 [00:00<00:00, 15.08it/s]
70%|███████ | 14/20 [00:00<00:00, 15.09it/s]
80%|████████ | 16/20 [00:01<00:00, 15.20it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.00it/s]
100%|██████████| 20/20 [00:01<00:00, 14.78it/s]
8%|▊ | 8/100 [00:12<02:17, 1.50s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.47it/s]
20%|██ | 4/20 [00:00<00:01, 15.45it/s]
30%|███ | 6/20 [00:00<00:00, 15.04it/s]
40%|████ | 8/20 [00:00<00:00, 15.08it/s]
50%|█████ | 10/20 [00:00<00:00, 15.36it/s]
60%|██████ | 12/20 [00:00<00:00, 14.88it/s]
70%|███████ | 14/20 [00:00<00:00, 15.34it/s]
80%|████████ | 16/20 [00:01<00:00, 15.40it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.55it/s]
100%|██████████| 20/20 [00:01<00:00, 15.27it/s]
9%|▉ | 9/100 [00:13<02:11, 1.44s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.68it/s]
20%|██ | 4/20 [00:00<00:01, 15.32it/s]
30%|███ | 6/20 [00:00<00:00, 15.33it/s]
40%|████ | 8/20 [00:00<00:00, 14.49it/s]
50%|█████ | 10/20 [00:00<00:00, 14.81it/s]
60%|██████ | 12/20 [00:00<00:00, 14.81it/s]
70%|███████ | 14/20 [00:00<00:00, 14.88it/s]
80%|████████ | 16/20 [00:01<00:00, 14.93it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.73it/s]
100%|██████████| 20/20 [00:01<00:00, 14.82it/s]
10%|█ | 10/100 [00:14<02:07, 1.42s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.32it/s]
20%|██ | 4/20 [00:00<00:01, 14.64it/s]
30%|███ | 6/20 [00:00<00:00, 14.61it/s]
40%|████ | 8/20 [00:00<00:00, 14.82it/s]
50%|█████ | 10/20 [00:00<00:00, 14.95it/s]
60%|██████ | 12/20 [00:00<00:00, 15.11it/s]
70%|███████ | 14/20 [00:00<00:00, 15.02it/s]
80%|████████ | 16/20 [00:01<00:00, 15.12it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.38it/s]
100%|██████████| 20/20 [00:01<00:00, 14.64it/s]
11%|█ | 11/100 [00:16<02:05, 1.41s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.00it/s]
20%|██ | 4/20 [00:00<00:01, 15.09it/s]
30%|███ | 6/20 [00:00<00:00, 14.94it/s]
40%|████ | 8/20 [00:00<00:00, 14.94it/s]
50%|█████ | 10/20 [00:00<00:00, 15.10it/s]
60%|██████ | 12/20 [00:00<00:00, 14.90it/s]
70%|███████ | 14/20 [00:00<00:00, 15.13it/s]
80%|████████ | 16/20 [00:01<00:00, 15.33it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.36it/s]
100%|██████████| 20/20 [00:01<00:00, 15.11it/s]
12%|█▏ | 12/100 [00:17<02:02, 1.39s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.79it/s]
20%|██ | 4/20 [00:00<00:01, 15.72it/s]
30%|███ | 6/20 [00:00<00:00, 15.92it/s]
40%|████ | 8/20 [00:00<00:00, 15.27it/s]
50%|█████ | 10/20 [00:00<00:00, 15.51it/s]
60%|██████ | 12/20 [00:00<00:00, 15.35it/s]
70%|███████ | 14/20 [00:00<00:00, 15.33it/s]
80%|████████ | 16/20 [00:01<00:00, 15.35it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.29it/s]
100%|██████████| 20/20 [00:01<00:00, 15.36it/s]
13%|█▎ | 13/100 [00:19<01:59, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.58it/s]
20%|██ | 4/20 [00:00<00:01, 15.13it/s]
30%|███ | 6/20 [00:00<00:01, 8.76it/s]
40%|████ | 8/20 [00:00<00:01, 10.59it/s]
50%|█████ | 10/20 [00:00<00:00, 11.91it/s]
60%|██████ | 12/20 [00:00<00:00, 12.94it/s]
70%|███████ | 14/20 [00:01<00:00, 13.73it/s]
80%|████████ | 16/20 [00:01<00:00, 9.57it/s]
90%|█████████ | 18/20 [00:01<00:00, 10.75it/s]
100%|██████████| 20/20 [00:01<00:00, 11.48it/s]
14%|█▍ | 14/100 [00:20<02:07, 1.49s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.79it/s]
20%|██ | 4/20 [00:00<00:01, 13.70it/s]
30%|███ | 6/20 [00:00<00:01, 9.58it/s]
40%|████ | 8/20 [00:00<00:01, 11.24it/s]
50%|█████ | 10/20 [00:00<00:00, 12.52it/s]
60%|██████ | 12/20 [00:00<00:00, 13.38it/s]
70%|███████ | 14/20 [00:01<00:00, 14.02it/s]
80%|████████ | 16/20 [00:01<00:00, 14.46it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.58it/s]
100%|██████████| 20/20 [00:01<00:00, 13.37it/s]
15%|█▌ | 15/100 [00:22<02:07, 1.50s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.44it/s]
20%|██ | 4/20 [00:00<00:01, 15.39it/s]
30%|███ | 6/20 [00:00<00:00, 15.36it/s]
40%|████ | 8/20 [00:00<00:00, 15.42it/s]
50%|█████ | 10/20 [00:00<00:00, 15.40it/s]
60%|██████ | 12/20 [00:00<00:00, 14.90it/s]
70%|███████ | 14/20 [00:00<00:00, 14.35it/s]
80%|████████ | 16/20 [00:01<00:00, 14.59it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.46it/s]
100%|██████████| 20/20 [00:01<00:00, 14.72it/s]
16%|█▌ | 16/100 [00:23<02:02, 1.46s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.40it/s]
20%|██ | 4/20 [00:00<00:01, 14.16it/s]
30%|███ | 6/20 [00:00<00:01, 13.98it/s]
40%|████ | 8/20 [00:00<00:00, 13.70it/s]
50%|█████ | 10/20 [00:00<00:00, 13.87it/s]
60%|██████ | 12/20 [00:00<00:00, 13.83it/s]
70%|███████ | 14/20 [00:01<00:00, 13.29it/s]
80%|████████ | 16/20 [00:01<00:00, 13.54it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.50it/s]
100%|██████████| 20/20 [00:01<00:00, 13.47it/s]
17%|█▋ | 17/100 [00:25<02:02, 1.47s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.85it/s]
20%|██ | 4/20 [00:00<00:01, 12.72it/s]
30%|███ | 6/20 [00:00<00:01, 12.70it/s]
40%|████ | 8/20 [00:00<00:00, 13.17it/s]
50%|█████ | 10/20 [00:00<00:00, 13.36it/s]
60%|██████ | 12/20 [00:00<00:00, 13.32it/s]
70%|███████ | 14/20 [00:01<00:00, 13.10it/s]
80%|████████ | 16/20 [00:01<00:00, 12.81it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.93it/s]
100%|██████████| 20/20 [00:01<00:00, 12.89it/s]
18%|█▊ | 18/100 [00:26<02:03, 1.50s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.75it/s]
20%|██ | 4/20 [00:00<00:01, 12.71it/s]
30%|███ | 6/20 [00:00<00:01, 12.53it/s]
40%|████ | 8/20 [00:00<00:00, 12.35it/s]
50%|█████ | 10/20 [00:00<00:00, 12.43it/s]
60%|██████ | 12/20 [00:00<00:00, 12.47it/s]
70%|███████ | 14/20 [00:01<00:00, 12.67it/s]
80%|████████ | 16/20 [00:01<00:00, 12.87it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.97it/s]
100%|██████████| 20/20 [00:01<00:00, 12.61it/s]
19%|█▉ | 19/100 [00:28<02:04, 1.54s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.42it/s]
20%|██ | 4/20 [00:00<00:01, 13.16it/s]
30%|███ | 6/20 [00:00<00:01, 13.34it/s]
40%|████ | 8/20 [00:00<00:00, 13.64it/s]
50%|█████ | 10/20 [00:00<00:00, 13.32it/s]
60%|██████ | 12/20 [00:00<00:00, 13.95it/s]
70%|███████ | 14/20 [00:01<00:00, 14.17it/s]
80%|████████ | 16/20 [00:01<00:00, 14.50it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.89it/s]
100%|██████████| 20/20 [00:01<00:00, 14.15it/s]
20%|██ | 20/100 [00:29<02:00, 1.51s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.84it/s]
20%|██ | 4/20 [00:00<00:01, 15.14it/s]
30%|███ | 6/20 [00:00<00:00, 15.10it/s]
40%|████ | 8/20 [00:00<00:00, 15.06it/s]
50%|█████ | 10/20 [00:00<00:00, 14.75it/s]
60%|██████ | 12/20 [00:00<00:00, 14.87it/s]
70%|███████ | 14/20 [00:00<00:00, 15.11it/s]
80%|████████ | 16/20 [00:01<00:00, 15.36it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.49it/s]
100%|██████████| 20/20 [00:01<00:00, 15.08it/s]
21%|██ | 21/100 [00:31<01:55, 1.46s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.74it/s]
20%|██ | 4/20 [00:00<00:01, 15.76it/s]
30%|███ | 6/20 [00:00<00:00, 15.25it/s]
40%|████ | 8/20 [00:00<00:00, 15.38it/s]
50%|█████ | 10/20 [00:00<00:00, 15.50it/s]
60%|██████ | 12/20 [00:00<00:00, 15.49it/s]
70%|███████ | 14/20 [00:00<00:00, 15.44it/s]
80%|████████ | 16/20 [00:01<00:00, 15.51it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.61it/s]
100%|██████████| 20/20 [00:01<00:00, 15.32it/s]
22%|██▏ | 22/100 [00:32<01:50, 1.42s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.04it/s]
20%|██ | 4/20 [00:00<00:01, 15.48it/s]
30%|███ | 6/20 [00:00<00:00, 15.66it/s]
40%|████ | 8/20 [00:00<00:00, 15.56it/s]
50%|█████ | 10/20 [00:00<00:00, 15.75it/s]
60%|██████ | 12/20 [00:00<00:00, 15.70it/s]
70%|███████ | 14/20 [00:00<00:00, 15.73it/s]
80%|████████ | 16/20 [00:01<00:00, 15.52it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.72it/s]
100%|██████████| 20/20 [00:01<00:00, 15.56it/s]
23%|██▎ | 23/100 [00:33<01:46, 1.38s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.76it/s]
20%|██ | 4/20 [00:00<00:01, 15.29it/s]
30%|███ | 6/20 [00:00<00:00, 15.15it/s]
40%|████ | 8/20 [00:00<00:00, 15.25it/s]
50%|█████ | 10/20 [00:00<00:00, 15.34it/s]
60%|██████ | 12/20 [00:00<00:00, 15.01it/s]
70%|███████ | 14/20 [00:00<00:00, 14.90it/s]
80%|████████ | 16/20 [00:01<00:00, 14.85it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.04it/s]
100%|██████████| 20/20 [00:01<00:00, 14.78it/s]
24%|██▍ | 24/100 [00:35<01:44, 1.38s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.40it/s]
20%|██ | 4/20 [00:00<00:01, 15.69it/s]
30%|███ | 6/20 [00:00<00:00, 15.45it/s]
40%|████ | 8/20 [00:00<00:00, 15.56it/s]
50%|█████ | 10/20 [00:00<00:00, 15.69it/s]
60%|██████ | 12/20 [00:00<00:00, 15.53it/s]
70%|███████ | 14/20 [00:00<00:00, 15.66it/s]
80%|████████ | 16/20 [00:01<00:00, 15.72it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.65it/s]
100%|██████████| 20/20 [00:01<00:00, 15.52it/s]
25%|██▌ | 25/100 [00:36<01:41, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.05it/s]
20%|██ | 4/20 [00:00<00:01, 15.17it/s]
30%|███ | 6/20 [00:00<00:00, 15.45it/s]
40%|████ | 8/20 [00:00<00:00, 15.68it/s]
50%|█████ | 10/20 [00:00<00:00, 15.54it/s]
60%|██████ | 12/20 [00:00<00:00, 15.60it/s]
70%|███████ | 14/20 [00:00<00:00, 15.61it/s]
80%|████████ | 16/20 [00:01<00:00, 15.39it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.20it/s]
100%|██████████| 20/20 [00:01<00:00, 15.26it/s]
26%|██▌ | 26/100 [00:37<01:39, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.48it/s]
20%|██ | 4/20 [00:00<00:01, 15.31it/s]
30%|███ | 6/20 [00:00<00:00, 15.43it/s]
40%|████ | 8/20 [00:00<00:00, 15.55it/s]
50%|█████ | 10/20 [00:00<00:00, 15.42it/s]
60%|██████ | 12/20 [00:00<00:00, 14.96it/s]
70%|███████ | 14/20 [00:00<00:00, 14.67it/s]
80%|████████ | 16/20 [00:01<00:00, 15.02it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.02it/s]
100%|██████████| 20/20 [00:01<00:00, 15.05it/s]
27%|██▋ | 27/100 [00:39<01:38, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.23it/s]
20%|██ | 4/20 [00:00<00:01, 15.38it/s]
30%|███ | 6/20 [00:00<00:00, 15.55it/s]
40%|████ | 8/20 [00:00<00:00, 15.19it/s]
50%|█████ | 10/20 [00:00<00:00, 14.98it/s]
60%|██████ | 12/20 [00:00<00:00, 15.14it/s]
70%|███████ | 14/20 [00:00<00:00, 15.17it/s]
80%|████████ | 16/20 [00:01<00:00, 15.15it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.35it/s]
100%|██████████| 20/20 [00:01<00:00, 15.25it/s]
28%|██▊ | 28/100 [00:40<01:36, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.79it/s]
20%|██ | 4/20 [00:00<00:01, 15.28it/s]
30%|███ | 6/20 [00:00<00:00, 15.38it/s]
40%|████ | 8/20 [00:00<00:00, 14.96it/s]
50%|█████ | 10/20 [00:00<00:00, 14.82it/s]
60%|██████ | 12/20 [00:00<00:00, 15.07it/s]
70%|███████ | 14/20 [00:00<00:00, 15.27it/s]
80%|████████ | 16/20 [00:01<00:00, 14.97it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.74it/s]
100%|██████████| 20/20 [00:01<00:00, 14.84it/s]
29%|██▉ | 29/100 [00:41<01:35, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.81it/s]
20%|██ | 4/20 [00:00<00:01, 14.21it/s]
30%|███ | 6/20 [00:00<00:00, 14.17it/s]
40%|████ | 8/20 [00:00<00:00, 14.18it/s]
50%|█████ | 10/20 [00:00<00:00, 14.16it/s]
60%|██████ | 12/20 [00:00<00:00, 13.63it/s]
70%|███████ | 14/20 [00:01<00:00, 13.73it/s]
80%|████████ | 16/20 [00:01<00:00, 13.80it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.76it/s]
100%|██████████| 20/20 [00:01<00:00, 13.75it/s]
30%|███ | 30/100 [00:43<01:37, 1.39s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.64it/s]
20%|██ | 4/20 [00:00<00:01, 12.85it/s]
30%|███ | 6/20 [00:00<00:01, 12.67it/s]
40%|████ | 8/20 [00:00<00:00, 13.10it/s]
50%|█████ | 10/20 [00:00<00:00, 13.16it/s]
60%|██████ | 12/20 [00:00<00:00, 13.18it/s]
70%|███████ | 14/20 [00:01<00:00, 13.14it/s]
80%|████████ | 16/20 [00:01<00:00, 12.58it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.56it/s]
100%|██████████| 20/20 [00:01<00:00, 12.73it/s]
31%|███ | 31/100 [00:44<01:39, 1.45s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.95it/s]
20%|██ | 4/20 [00:00<00:01, 13.68it/s]
30%|███ | 6/20 [00:00<00:01, 13.79it/s]
40%|████ | 8/20 [00:00<00:00, 13.58it/s]
50%|█████ | 10/20 [00:00<00:00, 12.85it/s]
60%|██████ | 12/20 [00:00<00:00, 12.85it/s]
70%|███████ | 14/20 [00:01<00:00, 13.08it/s]
80%|████████ | 16/20 [00:01<00:00, 13.18it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.08it/s]
100%|██████████| 20/20 [00:01<00:00, 13.01it/s]
32%|███▏ | 32/100 [00:46<01:40, 1.48s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.94it/s]
20%|██ | 4/20 [00:00<00:01, 13.84it/s]
30%|███ | 6/20 [00:00<00:01, 13.93it/s]
40%|████ | 8/20 [00:00<00:00, 14.62it/s]
50%|█████ | 10/20 [00:00<00:00, 14.69it/s]
60%|██████ | 12/20 [00:00<00:00, 15.09it/s]
70%|███████ | 14/20 [00:00<00:00, 14.55it/s]
80%|████████ | 16/20 [00:01<00:00, 15.02it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.92it/s]
100%|██████████| 20/20 [00:01<00:00, 14.64it/s]
33%|███▎ | 33/100 [00:47<01:37, 1.45s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.55it/s]
20%|██ | 4/20 [00:00<00:01, 15.41it/s]
30%|███ | 6/20 [00:00<00:00, 15.63it/s]
40%|████ | 8/20 [00:00<00:00, 15.59it/s]
50%|█████ | 10/20 [00:00<00:00, 15.69it/s]
60%|██████ | 12/20 [00:00<00:00, 15.78it/s]
70%|███████ | 14/20 [00:00<00:00, 15.61it/s]
80%|████████ | 16/20 [00:01<00:00, 14.95it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.19it/s]
100%|██████████| 20/20 [00:01<00:00, 15.29it/s]
34%|███▍ | 34/100 [00:49<01:33, 1.41s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.54it/s]
20%|██ | 4/20 [00:00<00:01, 15.41it/s]
30%|███ | 6/20 [00:00<00:00, 15.67it/s]
40%|████ | 8/20 [00:00<00:00, 15.91it/s]
50%|█████ | 10/20 [00:00<00:00, 15.91it/s]
60%|██████ | 12/20 [00:00<00:00, 15.50it/s]
70%|███████ | 14/20 [00:00<00:00, 15.60it/s]
80%|████████ | 16/20 [00:01<00:00, 15.53it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.50it/s]
100%|██████████| 20/20 [00:01<00:00, 15.27it/s]
35%|███▌ | 35/100 [00:50<01:30, 1.39s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.93it/s]
20%|██ | 4/20 [00:00<00:01, 14.99it/s]
30%|███ | 6/20 [00:00<00:00, 14.45it/s]
40%|████ | 8/20 [00:00<00:00, 14.46it/s]
50%|█████ | 10/20 [00:00<00:00, 14.86it/s]
60%|██████ | 12/20 [00:00<00:00, 15.17it/s]
70%|███████ | 14/20 [00:00<00:00, 15.28it/s]
80%|████████ | 16/20 [00:01<00:00, 15.10it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.28it/s]
100%|██████████| 20/20 [00:01<00:00, 15.02it/s]
36%|███▌ | 36/100 [00:51<01:28, 1.38s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.73it/s]
20%|██ | 4/20 [00:00<00:01, 15.60it/s]
30%|███ | 6/20 [00:00<00:00, 15.58it/s]
40%|████ | 8/20 [00:00<00:00, 15.70it/s]
50%|█████ | 10/20 [00:00<00:00, 15.57it/s]
60%|██████ | 12/20 [00:00<00:00, 15.43it/s]
70%|███████ | 14/20 [00:00<00:00, 15.24it/s]
80%|████████ | 16/20 [00:01<00:00, 15.09it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.32it/s]
100%|██████████| 20/20 [00:01<00:00, 15.21it/s]
37%|███▋ | 37/100 [00:53<01:26, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.93it/s]
20%|██ | 4/20 [00:00<00:01, 15.57it/s]
30%|███ | 6/20 [00:00<00:00, 15.41it/s]
40%|████ | 8/20 [00:00<00:00, 15.43it/s]
50%|█████ | 10/20 [00:00<00:00, 15.58it/s]
60%|██████ | 12/20 [00:00<00:00, 15.46it/s]
70%|███████ | 14/20 [00:00<00:00, 15.47it/s]
80%|████████ | 16/20 [00:01<00:00, 15.27it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.45it/s]
100%|██████████| 20/20 [00:01<00:00, 15.34it/s]
38%|███▊ | 38/100 [00:54<01:23, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.87it/s]
20%|██ | 4/20 [00:00<00:01, 15.80it/s]
30%|███ | 6/20 [00:00<00:00, 15.95it/s]
40%|████ | 8/20 [00:00<00:00, 15.39it/s]
50%|█████ | 10/20 [00:00<00:00, 15.62it/s]
60%|██████ | 12/20 [00:00<00:00, 15.55it/s]
70%|███████ | 14/20 [00:00<00:00, 15.33it/s]
80%|████████ | 16/20 [00:01<00:00, 15.40it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.39it/s]
100%|██████████| 20/20 [00:01<00:00, 15.41it/s]
39%|███▉ | 39/100 [00:55<01:21, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.67it/s]
20%|██ | 4/20 [00:00<00:01, 14.66it/s]
30%|███ | 6/20 [00:00<00:00, 14.98it/s]
40%|████ | 8/20 [00:00<00:00, 15.33it/s]
50%|█████ | 10/20 [00:00<00:00, 15.26it/s]
60%|██████ | 12/20 [00:00<00:00, 15.12it/s]
70%|███████ | 14/20 [00:00<00:00, 15.36it/s]
80%|████████ | 16/20 [00:01<00:00, 15.46it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.40it/s]
100%|██████████| 20/20 [00:01<00:00, 15.10it/s]
40%|████ | 40/100 [00:57<01:20, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.34it/s]
20%|██ | 4/20 [00:00<00:01, 13.82it/s]
30%|███ | 6/20 [00:00<00:00, 14.29it/s]
40%|████ | 8/20 [00:00<00:00, 14.64it/s]
50%|█████ | 10/20 [00:00<00:00, 14.84it/s]
60%|██████ | 12/20 [00:00<00:00, 14.60it/s]
70%|███████ | 14/20 [00:00<00:00, 15.09it/s]
80%|████████ | 16/20 [00:01<00:00, 15.32it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.39it/s]
100%|██████████| 20/20 [00:01<00:00, 14.90it/s]
41%|████ | 41/100 [00:58<01:19, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.63it/s]
20%|██ | 4/20 [00:00<00:01, 15.76it/s]
30%|███ | 6/20 [00:00<00:00, 15.88it/s]
40%|████ | 8/20 [00:00<00:00, 15.61it/s]
50%|█████ | 10/20 [00:00<00:00, 15.66it/s]
60%|██████ | 12/20 [00:00<00:00, 15.70it/s]
70%|███████ | 14/20 [00:00<00:00, 15.11it/s]
80%|████████ | 16/20 [00:01<00:00, 15.12it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.11it/s]
100%|██████████| 20/20 [00:01<00:00, 15.19it/s]
42%|████▏ | 42/100 [00:59<01:17, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.69it/s]
20%|██ | 4/20 [00:00<00:01, 13.65it/s]
30%|███ | 6/20 [00:00<00:01, 13.64it/s]
40%|████ | 8/20 [00:00<00:00, 13.78it/s]
50%|█████ | 10/20 [00:00<00:00, 13.89it/s]
60%|██████ | 12/20 [00:00<00:00, 13.75it/s]
70%|███████ | 14/20 [00:01<00:00, 13.97it/s]
80%|████████ | 16/20 [00:01<00:00, 14.08it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.81it/s]
100%|██████████| 20/20 [00:01<00:00, 13.69it/s]
43%|████▎ | 43/100 [01:01<01:18, 1.38s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.23it/s]
20%|██ | 4/20 [00:00<00:01, 13.12it/s]
30%|███ | 6/20 [00:00<00:01, 13.14it/s]
40%|████ | 8/20 [00:00<00:00, 12.96it/s]
50%|█████ | 10/20 [00:00<00:00, 12.94it/s]
60%|██████ | 12/20 [00:00<00:00, 13.03it/s]
70%|███████ | 14/20 [00:01<00:00, 12.87it/s]
80%|████████ | 16/20 [00:01<00:00, 12.98it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.02it/s]
100%|██████████| 20/20 [00:01<00:00, 12.95it/s]
44%|████▍ | 44/100 [01:02<01:20, 1.44s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.98it/s]
20%|██ | 4/20 [00:00<00:01, 12.58it/s]
30%|███ | 6/20 [00:00<00:01, 12.60it/s]
40%|████ | 8/20 [00:00<00:00, 12.52it/s]
50%|█████ | 10/20 [00:00<00:00, 12.71it/s]
60%|██████ | 12/20 [00:00<00:00, 12.92it/s]
70%|███████ | 14/20 [00:01<00:00, 12.92it/s]
80%|████████ | 16/20 [00:01<00:00, 12.95it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.02it/s]
100%|██████████| 20/20 [00:01<00:00, 12.80it/s]
45%|████▌ | 45/100 [01:04<01:21, 1.48s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.28it/s]
20%|██ | 4/20 [00:00<00:01, 13.24it/s]
30%|███ | 6/20 [00:00<00:01, 13.22it/s]
40%|████ | 8/20 [00:00<00:00, 13.41it/s]
50%|█████ | 10/20 [00:00<00:00, 13.22it/s]
60%|██████ | 12/20 [00:00<00:00, 13.55it/s]
70%|███████ | 14/20 [00:01<00:00, 13.86it/s]
80%|████████ | 16/20 [00:01<00:00, 14.10it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.54it/s]
100%|██████████| 20/20 [00:01<00:00, 13.96it/s]
46%|████▌ | 46/100 [01:05<01:19, 1.47s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.29it/s]
20%|██ | 4/20 [00:00<00:01, 15.50it/s]
30%|███ | 6/20 [00:00<00:00, 15.73it/s]
40%|████ | 8/20 [00:00<00:00, 15.55it/s]
50%|█████ | 10/20 [00:00<00:00, 15.10it/s]
60%|██████ | 12/20 [00:00<00:00, 14.50it/s]
70%|███████ | 14/20 [00:00<00:00, 14.78it/s]
80%|████████ | 16/20 [00:01<00:00, 14.89it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.29it/s]
100%|██████████| 20/20 [00:01<00:00, 15.01it/s]
47%|████▋ | 47/100 [01:07<01:16, 1.44s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.50it/s]
20%|██ | 4/20 [00:00<00:01, 15.85it/s]
30%|███ | 6/20 [00:00<00:00, 15.98it/s]
40%|████ | 8/20 [00:00<00:00, 15.74it/s]
50%|█████ | 10/20 [00:00<00:00, 15.68it/s]
60%|██████ | 12/20 [00:00<00:00, 15.43it/s]
70%|███████ | 14/20 [00:00<00:00, 15.08it/s]
80%|████████ | 16/20 [00:01<00:00, 15.22it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.16it/s]
100%|██████████| 20/20 [00:01<00:00, 15.26it/s]
48%|████▊ | 48/100 [01:08<01:13, 1.41s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.20it/s]
20%|██ | 4/20 [00:00<00:01, 15.58it/s]
30%|███ | 6/20 [00:00<00:00, 15.75it/s]
40%|████ | 8/20 [00:00<00:00, 15.51it/s]
50%|█████ | 10/20 [00:00<00:00, 15.43it/s]
60%|██████ | 12/20 [00:00<00:00, 15.59it/s]
70%|███████ | 14/20 [00:00<00:00, 15.47it/s]
80%|████████ | 16/20 [00:01<00:00, 15.54it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.75it/s]
100%|██████████| 20/20 [00:01<00:00, 15.59it/s]
49%|████▉ | 49/100 [01:09<01:10, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.03it/s]
20%|██ | 4/20 [00:00<00:01, 15.53it/s]
30%|███ | 6/20 [00:00<00:00, 15.15it/s]
40%|████ | 8/20 [00:00<00:00, 15.38it/s]
50%|█████ | 10/20 [00:00<00:00, 15.55it/s]
60%|██████ | 12/20 [00:00<00:00, 15.69it/s]
70%|███████ | 14/20 [00:00<00:00, 15.70it/s]
80%|████████ | 16/20 [00:01<00:00, 15.85it/s]
90%|█████████ | 18/20 [00:01<00:00, 16.01it/s]
100%|██████████| 20/20 [00:01<00:00, 15.56it/s]
50%|█████ | 50/100 [01:11<01:07, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.94it/s]
20%|██ | 4/20 [00:00<00:01, 15.13it/s]
30%|███ | 6/20 [00:00<00:00, 15.44it/s]
40%|████ | 8/20 [00:00<00:00, 15.64it/s]
50%|█████ | 10/20 [00:00<00:00, 15.68it/s]
60%|██████ | 12/20 [00:00<00:00, 15.83it/s]
70%|███████ | 14/20 [00:00<00:00, 15.85it/s]
80%|████████ | 16/20 [00:01<00:00, 15.90it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.34it/s]
100%|██████████| 20/20 [00:01<00:00, 15.39it/s]
51%|█████ | 51/100 [01:12<01:05, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.89it/s]
20%|██ | 4/20 [00:00<00:01, 15.69it/s]
30%|███ | 6/20 [00:00<00:00, 16.04it/s]
40%|████ | 8/20 [00:00<00:00, 15.70it/s]
50%|█████ | 10/20 [00:00<00:00, 15.99it/s]
60%|██████ | 12/20 [00:00<00:00, 15.73it/s]
70%|███████ | 14/20 [00:00<00:00, 15.72it/s]
80%|████████ | 16/20 [00:01<00:00, 15.58it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.62it/s]
100%|██████████| 20/20 [00:01<00:00, 15.71it/s]
52%|█████▏ | 52/100 [01:13<01:03, 1.33s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.94it/s]
20%|██ | 4/20 [00:00<00:01, 15.87it/s]
30%|███ | 6/20 [00:00<00:00, 15.93it/s]
40%|████ | 8/20 [00:00<00:00, 15.59it/s]
50%|█████ | 10/20 [00:00<00:00, 15.67it/s]
60%|██████ | 12/20 [00:00<00:00, 15.54it/s]
70%|███████ | 14/20 [00:00<00:00, 15.71it/s]
80%|████████ | 16/20 [00:01<00:00, 15.75it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.64it/s]
100%|██████████| 20/20 [00:01<00:00, 15.42it/s]
53%|█████▎ | 53/100 [01:15<01:02, 1.33s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.72it/s]
20%|██ | 4/20 [00:00<00:01, 15.57it/s]
30%|███ | 6/20 [00:00<00:00, 15.54it/s]
40%|████ | 8/20 [00:00<00:00, 15.87it/s]
50%|█████ | 10/20 [00:00<00:00, 16.10it/s]
60%|██████ | 12/20 [00:00<00:00, 16.17it/s]
70%|███████ | 14/20 [00:00<00:00, 16.06it/s]
80%|████████ | 16/20 [00:00<00:00, 16.24it/s]
90%|█████████ | 18/20 [00:01<00:00, 16.37it/s]
100%|██████████| 20/20 [00:01<00:00, 15.96it/s]
54%|█████▍ | 54/100 [01:16<01:00, 1.31s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.61it/s]
20%|██ | 4/20 [00:00<00:00, 16.13it/s]
30%|███ | 6/20 [00:00<00:00, 15.65it/s]
40%|████ | 8/20 [00:00<00:00, 15.59it/s]
50%|█████ | 10/20 [00:00<00:00, 15.73it/s]
60%|██████ | 12/20 [00:00<00:00, 15.48it/s]
70%|███████ | 14/20 [00:00<00:00, 15.69it/s]
80%|████████ | 16/20 [00:01<00:00, 15.18it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.15it/s]
100%|██████████| 20/20 [00:01<00:00, 15.13it/s]
55%|█████▌ | 55/100 [01:17<00:59, 1.32s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.93it/s]
20%|██ | 4/20 [00:00<00:01, 15.19it/s]
30%|███ | 6/20 [00:00<00:00, 14.97it/s]
40%|████ | 8/20 [00:00<00:00, 14.93it/s]
50%|█████ | 10/20 [00:00<00:00, 14.65it/s]
60%|██████ | 12/20 [00:00<00:00, 14.45it/s]
70%|███████ | 14/20 [00:00<00:00, 14.44it/s]
80%|████████ | 16/20 [00:01<00:00, 14.29it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.32it/s]
100%|██████████| 20/20 [00:01<00:00, 14.32it/s]
56%|█████▌ | 56/100 [01:19<00:59, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.14it/s]
20%|██ | 4/20 [00:00<00:01, 13.51it/s]
30%|███ | 6/20 [00:00<00:01, 13.67it/s]
40%|████ | 8/20 [00:00<00:00, 13.47it/s]
50%|█████ | 10/20 [00:00<00:00, 13.67it/s]
60%|██████ | 12/20 [00:00<00:00, 13.57it/s]
70%|███████ | 14/20 [00:01<00:00, 13.52it/s]
80%|████████ | 16/20 [00:01<00:00, 13.44it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.18it/s]
100%|██████████| 20/20 [00:01<00:00, 13.38it/s]
57%|█████▋ | 57/100 [01:20<00:59, 1.39s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.50it/s]
20%|██ | 4/20 [00:00<00:01, 13.07it/s]
30%|███ | 6/20 [00:00<00:01, 13.20it/s]
40%|████ | 8/20 [00:00<00:00, 13.10it/s]
50%|█████ | 10/20 [00:00<00:00, 12.71it/s]
60%|██████ | 12/20 [00:00<00:00, 12.77it/s]
70%|███████ | 14/20 [00:01<00:00, 12.96it/s]
80%|████████ | 16/20 [00:01<00:00, 13.13it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.12it/s]
100%|██████████| 20/20 [00:01<00:00, 12.96it/s]
58%|█████▊ | 58/100 [01:22<01:00, 1.45s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.36it/s]
20%|██ | 4/20 [00:00<00:01, 12.42it/s]
30%|███ | 6/20 [00:00<00:01, 12.57it/s]
40%|████ | 8/20 [00:00<00:00, 12.90it/s]
50%|█████ | 10/20 [00:00<00:00, 12.90it/s]
60%|██████ | 12/20 [00:00<00:00, 13.14it/s]
70%|███████ | 14/20 [00:01<00:00, 13.30it/s]
80%|████████ | 16/20 [00:01<00:00, 13.83it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.01it/s]
100%|██████████| 20/20 [00:01<00:00, 13.56it/s]
59%|█████▉ | 59/100 [01:23<00:59, 1.46s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.42it/s]
20%|██ | 4/20 [00:00<00:01, 15.82it/s]
30%|███ | 6/20 [00:00<00:00, 16.02it/s]
40%|████ | 8/20 [00:00<00:00, 16.01it/s]
50%|█████ | 10/20 [00:00<00:00, 16.01it/s]
60%|██████ | 12/20 [00:00<00:00, 15.92it/s]
70%|███████ | 14/20 [00:00<00:00, 15.55it/s]
80%|████████ | 16/20 [00:01<00:00, 15.69it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.72it/s]
100%|██████████| 20/20 [00:01<00:00, 15.61it/s]
60%|██████ | 60/100 [01:25<00:56, 1.41s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.95it/s]
20%|██ | 4/20 [00:00<00:00, 16.27it/s]
30%|███ | 6/20 [00:00<00:00, 15.98it/s]
40%|████ | 8/20 [00:00<00:00, 16.20it/s]
50%|█████ | 10/20 [00:00<00:00, 15.79it/s]
60%|██████ | 12/20 [00:00<00:00, 15.70it/s]
70%|███████ | 14/20 [00:00<00:00, 15.57it/s]
80%|████████ | 16/20 [00:01<00:00, 15.57it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.68it/s]
100%|██████████| 20/20 [00:01<00:00, 15.73it/s]
61%|██████ | 61/100 [01:26<00:53, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.55it/s]
20%|██ | 4/20 [00:00<00:01, 14.72it/s]
30%|███ | 6/20 [00:00<00:00, 14.87it/s]
40%|████ | 8/20 [00:00<00:00, 15.04it/s]
50%|█████ | 10/20 [00:00<00:00, 15.22it/s]
60%|██████ | 12/20 [00:00<00:00, 15.57it/s]
70%|███████ | 14/20 [00:00<00:00, 15.55it/s]
80%|████████ | 16/20 [00:01<00:00, 15.75it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.38it/s]
100%|██████████| 20/20 [00:01<00:00, 15.21it/s]
62%|██████▏ | 62/100 [01:27<00:51, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.39it/s]
20%|██ | 4/20 [00:00<00:01, 15.29it/s]
30%|███ | 6/20 [00:00<00:00, 14.79it/s]
40%|████ | 8/20 [00:00<00:00, 14.64it/s]
50%|█████ | 10/20 [00:00<00:00, 14.84it/s]
60%|██████ | 12/20 [00:00<00:00, 15.18it/s]
70%|███████ | 14/20 [00:00<00:00, 15.23it/s]
80%|████████ | 16/20 [00:01<00:00, 15.37it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.49it/s]
100%|██████████| 20/20 [00:01<00:00, 15.16it/s]
63%|██████▎ | 63/100 [01:28<00:50, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.74it/s]
20%|██ | 4/20 [00:00<00:00, 16.05it/s]
30%|███ | 6/20 [00:00<00:00, 16.04it/s]
40%|████ | 8/20 [00:00<00:00, 16.01it/s]
50%|█████ | 10/20 [00:00<00:00, 15.55it/s]
60%|██████ | 12/20 [00:00<00:00, 15.64it/s]
70%|███████ | 14/20 [00:00<00:00, 15.79it/s]
80%|████████ | 16/20 [00:01<00:00, 15.69it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.69it/s]
100%|██████████| 20/20 [00:01<00:00, 15.69it/s]
64%|██████▍ | 64/100 [01:30<00:48, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.81it/s]
20%|██ | 4/20 [00:00<00:00, 16.15it/s]
30%|███ | 6/20 [00:00<00:00, 15.34it/s]
40%|████ | 8/20 [00:00<00:00, 15.39it/s]
50%|█████ | 10/20 [00:00<00:00, 15.54it/s]
60%|██████ | 12/20 [00:00<00:00, 15.56it/s]
70%|███████ | 14/20 [00:00<00:00, 15.57it/s]
80%|████████ | 16/20 [00:01<00:00, 15.61it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.57it/s]
100%|██████████| 20/20 [00:01<00:00, 15.50it/s]
65%|██████▌ | 65/100 [01:31<00:46, 1.33s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.01it/s]
20%|██ | 4/20 [00:00<00:01, 15.33it/s]
30%|███ | 6/20 [00:00<00:00, 15.44it/s]
40%|████ | 8/20 [00:00<00:00, 15.47it/s]
50%|█████ | 10/20 [00:00<00:00, 15.38it/s]
60%|██████ | 12/20 [00:00<00:00, 15.35it/s]
70%|███████ | 14/20 [00:00<00:00, 15.34it/s]
80%|████████ | 16/20 [00:01<00:00, 15.56it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.22it/s]
100%|██████████| 20/20 [00:01<00:00, 15.28it/s]
66%|██████▌ | 66/100 [01:32<00:45, 1.33s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.78it/s]
20%|██ | 4/20 [00:00<00:01, 15.71it/s]
30%|███ | 6/20 [00:00<00:00, 15.51it/s]
40%|████ | 8/20 [00:00<00:00, 15.59it/s]
50%|█████ | 10/20 [00:00<00:00, 15.68it/s]
60%|██████ | 12/20 [00:00<00:00, 15.85it/s]
70%|███████ | 14/20 [00:00<00:00, 15.66it/s]
80%|████████ | 16/20 [00:01<00:00, 15.56it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.75it/s]
100%|██████████| 20/20 [00:01<00:00, 15.52it/s]
67%|██████▋ | 67/100 [01:34<00:43, 1.32s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.49it/s]
20%|██ | 4/20 [00:00<00:01, 15.18it/s]
30%|███ | 6/20 [00:00<00:00, 15.20it/s]
40%|████ | 8/20 [00:00<00:00, 15.19it/s]
50%|█████ | 10/20 [00:00<00:00, 15.28it/s]
60%|██████ | 12/20 [00:00<00:00, 14.92it/s]
70%|███████ | 14/20 [00:00<00:00, 15.05it/s]
80%|████████ | 16/20 [00:01<00:00, 15.29it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.03it/s]
100%|██████████| 20/20 [00:01<00:00, 15.03it/s]
68%|██████▊ | 68/100 [01:35<00:42, 1.33s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.41it/s]
20%|██ | 4/20 [00:00<00:01, 13.38it/s]
30%|███ | 6/20 [00:00<00:01, 13.72it/s]
40%|████ | 8/20 [00:00<00:00, 13.96it/s]
50%|█████ | 10/20 [00:00<00:00, 13.98it/s]
60%|██████ | 12/20 [00:00<00:00, 13.89it/s]
70%|███████ | 14/20 [00:01<00:00, 13.83it/s]
80%|████████ | 16/20 [00:01<00:00, 13.92it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.65it/s]
100%|██████████| 20/20 [00:01<00:00, 13.69it/s]
69%|██████▉ | 69/100 [01:37<00:42, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.99it/s]
20%|██ | 4/20 [00:00<00:01, 13.12it/s]
30%|███ | 6/20 [00:00<00:01, 13.06it/s]
40%|████ | 8/20 [00:00<00:00, 13.00it/s]
50%|█████ | 10/20 [00:00<00:00, 12.75it/s]
60%|██████ | 12/20 [00:00<00:00, 12.40it/s]
70%|███████ | 14/20 [00:01<00:00, 12.54it/s]
80%|████████ | 16/20 [00:01<00:00, 12.70it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.73it/s]
100%|██████████| 20/20 [00:01<00:00, 12.72it/s]
70%|███████ | 70/100 [01:38<00:43, 1.44s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 11.37it/s]
20%|██ | 4/20 [00:00<00:01, 12.45it/s]
30%|███ | 6/20 [00:00<00:01, 12.70it/s]
40%|████ | 8/20 [00:00<00:00, 12.77it/s]
50%|█████ | 10/20 [00:00<00:00, 12.81it/s]
60%|██████ | 12/20 [00:00<00:00, 13.00it/s]
70%|███████ | 14/20 [00:01<00:00, 13.05it/s]
80%|████████ | 16/20 [00:01<00:00, 12.90it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.96it/s]
100%|██████████| 20/20 [00:01<00:00, 12.71it/s]
71%|███████ | 71/100 [01:40<00:43, 1.48s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.02it/s]
20%|██ | 4/20 [00:00<00:01, 13.19it/s]
30%|███ | 6/20 [00:00<00:01, 13.17it/s]
40%|████ | 8/20 [00:00<00:00, 13.26it/s]
50%|█████ | 10/20 [00:00<00:00, 13.51it/s]
60%|██████ | 12/20 [00:00<00:00, 13.98it/s]
70%|███████ | 14/20 [00:01<00:00, 14.35it/s]
80%|████████ | 16/20 [00:01<00:00, 14.60it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.71it/s]
100%|██████████| 20/20 [00:01<00:00, 14.02it/s]
72%|███████▏ | 72/100 [01:41<00:41, 1.47s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.97it/s]
20%|██ | 4/20 [00:00<00:01, 14.51it/s]
30%|███ | 6/20 [00:00<00:00, 15.00it/s]
40%|████ | 8/20 [00:00<00:00, 14.94it/s]
50%|█████ | 10/20 [00:00<00:00, 14.89it/s]
60%|██████ | 12/20 [00:00<00:00, 14.95it/s]
70%|███████ | 14/20 [00:00<00:00, 14.98it/s]
80%|████████ | 16/20 [00:01<00:00, 15.28it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.40it/s]
100%|██████████| 20/20 [00:01<00:00, 14.94it/s]
73%|███████▎ | 73/100 [01:43<00:38, 1.44s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.23it/s]
20%|██ | 4/20 [00:00<00:01, 15.53it/s]
30%|███ | 6/20 [00:00<00:00, 15.26it/s]
40%|████ | 8/20 [00:00<00:00, 15.33it/s]
50%|█████ | 10/20 [00:00<00:00, 15.48it/s]
60%|██████ | 12/20 [00:00<00:00, 15.58it/s]
70%|███████ | 14/20 [00:00<00:00, 15.22it/s]
80%|████████ | 16/20 [00:01<00:00, 15.27it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.25it/s]
100%|██████████| 20/20 [00:01<00:00, 15.18it/s]
74%|███████▍ | 74/100 [01:44<00:36, 1.41s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.55it/s]
20%|██ | 4/20 [00:00<00:01, 14.96it/s]
30%|███ | 6/20 [00:00<00:00, 15.56it/s]
40%|████ | 8/20 [00:00<00:00, 15.63it/s]
50%|█████ | 10/20 [00:00<00:00, 15.24it/s]
60%|██████ | 12/20 [00:00<00:00, 15.52it/s]
70%|███████ | 14/20 [00:00<00:00, 15.50it/s]
80%|████████ | 16/20 [00:01<00:00, 15.62it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.63it/s]
100%|██████████| 20/20 [00:01<00:00, 15.36it/s]
75%|███████▌ | 75/100 [01:45<00:34, 1.38s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.02it/s]
20%|██ | 4/20 [00:00<00:01, 15.38it/s]
30%|███ | 6/20 [00:00<00:00, 15.54it/s]
40%|████ | 8/20 [00:00<00:00, 15.23it/s]
50%|█████ | 10/20 [00:00<00:00, 15.24it/s]
60%|██████ | 12/20 [00:00<00:00, 15.22it/s]
70%|███████ | 14/20 [00:00<00:00, 15.09it/s]
80%|████████ | 16/20 [00:01<00:00, 15.22it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.30it/s]
100%|██████████| 20/20 [00:01<00:00, 15.14it/s]
76%|███████▌ | 76/100 [01:47<00:32, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.32it/s]
20%|██ | 4/20 [00:00<00:00, 16.05it/s]
30%|███ | 6/20 [00:00<00:00, 14.85it/s]
40%|████ | 8/20 [00:00<00:00, 14.40it/s]
50%|█████ | 10/20 [00:00<00:00, 14.71it/s]
60%|██████ | 12/20 [00:00<00:00, 15.15it/s]
70%|███████ | 14/20 [00:00<00:00, 15.07it/s]
80%|████████ | 16/20 [00:01<00:00, 15.03it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.16it/s]
100%|██████████| 20/20 [00:01<00:00, 15.06it/s]
77%|███████▋ | 77/100 [01:48<00:31, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.13it/s]
20%|██ | 4/20 [00:00<00:01, 13.86it/s]
30%|███ | 6/20 [00:00<00:00, 14.70it/s]
40%|████ | 8/20 [00:00<00:00, 14.89it/s]
50%|█████ | 10/20 [00:00<00:00, 14.90it/s]
60%|██████ | 12/20 [00:00<00:00, 15.11it/s]
70%|███████ | 14/20 [00:00<00:00, 15.25it/s]
80%|████████ | 16/20 [00:01<00:00, 15.54it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.67it/s]
100%|██████████| 20/20 [00:01<00:00, 15.09it/s]
78%|███████▊ | 78/100 [01:49<00:29, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.24it/s]
20%|██ | 4/20 [00:00<00:01, 15.69it/s]
30%|███ | 6/20 [00:00<00:00, 15.14it/s]
40%|████ | 8/20 [00:00<00:00, 15.64it/s]
50%|█████ | 10/20 [00:00<00:00, 15.69it/s]
60%|██████ | 12/20 [00:00<00:00, 15.76it/s]
70%|███████ | 14/20 [00:00<00:00, 15.55it/s]
80%|████████ | 16/20 [00:01<00:00, 15.77it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.73it/s]
100%|██████████| 20/20 [00:01<00:00, 15.43it/s]
79%|███████▉ | 79/100 [01:51<00:28, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.23it/s]
20%|██ | 4/20 [00:00<00:01, 14.56it/s]
30%|███ | 6/20 [00:00<00:00, 15.07it/s]
40%|████ | 8/20 [00:00<00:00, 15.50it/s]
50%|█████ | 10/20 [00:00<00:00, 15.36it/s]
60%|██████ | 12/20 [00:00<00:00, 15.57it/s]
70%|███████ | 14/20 [00:00<00:00, 15.72it/s]
80%|████████ | 16/20 [00:01<00:00, 15.79it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.32it/s]
100%|██████████| 20/20 [00:01<00:00, 15.33it/s]
80%|████████ | 80/100 [01:52<00:26, 1.34s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.07it/s]
20%|██ | 4/20 [00:00<00:01, 14.11it/s]
30%|███ | 6/20 [00:00<00:00, 14.84it/s]
40%|████ | 8/20 [00:00<00:00, 15.46it/s]
50%|█████ | 10/20 [00:00<00:00, 15.33it/s]
60%|██████ | 12/20 [00:00<00:00, 14.80it/s]
70%|███████ | 14/20 [00:00<00:00, 14.56it/s]
80%|████████ | 16/20 [00:01<00:00, 14.17it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.18it/s]
100%|██████████| 20/20 [00:01<00:00, 14.48it/s]
81%|████████ | 81/100 [01:53<00:25, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.67it/s]
20%|██ | 4/20 [00:00<00:01, 13.60it/s]
30%|███ | 6/20 [00:00<00:01, 13.82it/s]
40%|████ | 8/20 [00:00<00:00, 13.76it/s]
50%|█████ | 10/20 [00:00<00:00, 13.58it/s]
60%|██████ | 12/20 [00:00<00:00, 13.50it/s]
70%|███████ | 14/20 [00:01<00:00, 13.53it/s]
80%|████████ | 16/20 [00:01<00:00, 13.53it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.50it/s]
100%|██████████| 20/20 [00:01<00:00, 13.36it/s]
82%|████████▏ | 82/100 [01:55<00:25, 1.40s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.56it/s]
20%|██ | 4/20 [00:00<00:01, 12.89it/s]
30%|███ | 6/20 [00:00<00:01, 13.02it/s]
40%|████ | 8/20 [00:00<00:00, 13.27it/s]
50%|█████ | 10/20 [00:00<00:00, 13.15it/s]
60%|██████ | 12/20 [00:00<00:00, 12.95it/s]
70%|███████ | 14/20 [00:01<00:00, 12.93it/s]
80%|████████ | 16/20 [00:01<00:00, 13.07it/s]
90%|█████████ | 18/20 [00:01<00:00, 13.14it/s]
100%|██████████| 20/20 [00:01<00:00, 13.01it/s]
83%|████████▎ | 83/100 [01:56<00:24, 1.45s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.64it/s]
20%|██ | 4/20 [00:00<00:01, 12.52it/s]
30%|███ | 6/20 [00:00<00:01, 12.60it/s]
40%|████ | 8/20 [00:00<00:00, 12.56it/s]
50%|█████ | 10/20 [00:00<00:00, 12.65it/s]
60%|██████ | 12/20 [00:00<00:00, 13.02it/s]
70%|███████ | 14/20 [00:01<00:00, 13.00it/s]
80%|████████ | 16/20 [00:01<00:00, 13.03it/s]
90%|█████████ | 18/20 [00:01<00:00, 12.74it/s]
100%|██████████| 20/20 [00:01<00:00, 12.72it/s]
84%|████████▍ | 84/100 [01:58<00:23, 1.49s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.99it/s]
20%|██ | 4/20 [00:00<00:01, 14.40it/s]
30%|███ | 6/20 [00:00<00:00, 14.80it/s]
40%|████ | 8/20 [00:00<00:00, 14.25it/s]
50%|█████ | 10/20 [00:00<00:00, 14.42it/s]
60%|██████ | 12/20 [00:00<00:00, 14.56it/s]
70%|███████ | 14/20 [00:00<00:00, 14.90it/s]
80%|████████ | 16/20 [00:01<00:00, 15.06it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.21it/s]
100%|██████████| 20/20 [00:01<00:00, 14.74it/s]
85%|████████▌ | 85/100 [01:59<00:21, 1.46s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 16.30it/s]
20%|██ | 4/20 [00:00<00:01, 15.54it/s]
30%|███ | 6/20 [00:00<00:00, 15.66it/s]
40%|████ | 8/20 [00:00<00:00, 15.51it/s]
50%|█████ | 10/20 [00:00<00:00, 15.74it/s]
60%|██████ | 12/20 [00:00<00:00, 15.74it/s]
70%|███████ | 14/20 [00:00<00:00, 15.67it/s]
80%|████████ | 16/20 [00:01<00:00, 15.54it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.70it/s]
100%|██████████| 20/20 [00:01<00:00, 15.58it/s]
86%|████████▌ | 86/100 [02:01<00:19, 1.41s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.21it/s]
20%|██ | 4/20 [00:00<00:01, 14.86it/s]
30%|███ | 6/20 [00:00<00:00, 15.12it/s]
40%|████ | 8/20 [00:00<00:00, 14.83it/s]
50%|█████ | 10/20 [00:00<00:00, 15.08it/s]
60%|██████ | 12/20 [00:00<00:00, 15.49it/s]
70%|███████ | 14/20 [00:00<00:00, 15.39it/s]
80%|████████ | 16/20 [00:01<00:00, 15.26it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.97it/s]
100%|██████████| 20/20 [00:01<00:00, 14.98it/s]
87%|████████▋ | 87/100 [02:02<00:18, 1.39s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.11it/s]
20%|██ | 4/20 [00:00<00:01, 15.04it/s]
30%|███ | 6/20 [00:00<00:00, 15.00it/s]
40%|████ | 8/20 [00:00<00:00, 15.37it/s]
50%|█████ | 10/20 [00:00<00:00, 15.17it/s]
60%|██████ | 12/20 [00:00<00:00, 15.24it/s]
70%|███████ | 14/20 [00:00<00:00, 14.94it/s]
80%|████████ | 16/20 [00:01<00:00, 15.15it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.16it/s]
100%|██████████| 20/20 [00:01<00:00, 15.03it/s]
88%|████████▊ | 88/100 [02:03<00:16, 1.38s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.39it/s]
20%|██ | 4/20 [00:00<00:01, 15.66it/s]
30%|███ | 6/20 [00:00<00:00, 15.47it/s]
40%|████ | 8/20 [00:00<00:00, 15.35it/s]
50%|█████ | 10/20 [00:00<00:00, 15.14it/s]
60%|██████ | 12/20 [00:00<00:00, 15.40it/s]
70%|███████ | 14/20 [00:00<00:00, 15.59it/s]
80%|████████ | 16/20 [00:01<00:00, 15.62it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.74it/s]
100%|██████████| 20/20 [00:01<00:00, 15.53it/s]
89%|████████▉ | 89/100 [02:05<00:14, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.61it/s]
20%|██ | 4/20 [00:00<00:01, 14.63it/s]
30%|███ | 6/20 [00:00<00:00, 14.95it/s]
40%|████ | 8/20 [00:00<00:00, 15.22it/s]
50%|█████ | 10/20 [00:00<00:00, 15.19it/s]
60%|██████ | 12/20 [00:00<00:00, 15.33it/s]
70%|███████ | 14/20 [00:00<00:00, 15.30it/s]
80%|████████ | 16/20 [00:01<00:00, 15.49it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.56it/s]
100%|██████████| 20/20 [00:01<00:00, 15.12it/s]
90%|█████████ | 90/100 [02:06<00:13, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.45it/s]
20%|██ | 4/20 [00:00<00:01, 15.25it/s]
30%|███ | 6/20 [00:00<00:00, 15.37it/s]
40%|████ | 8/20 [00:00<00:00, 14.97it/s]
50%|█████ | 10/20 [00:00<00:00, 15.21it/s]
60%|██████ | 12/20 [00:00<00:00, 15.42it/s]
70%|███████ | 14/20 [00:00<00:00, 15.32it/s]
80%|████████ | 16/20 [00:01<00:00, 14.83it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.98it/s]
100%|██████████| 20/20 [00:01<00:00, 15.03it/s]
91%|█████████ | 91/100 [02:07<00:12, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.14it/s]
20%|██ | 4/20 [00:00<00:01, 15.36it/s]
30%|███ | 6/20 [00:00<00:00, 14.96it/s]
40%|████ | 8/20 [00:00<00:00, 15.10it/s]
50%|█████ | 10/20 [00:00<00:00, 14.70it/s]
60%|██████ | 12/20 [00:00<00:00, 15.00it/s]
70%|███████ | 14/20 [00:00<00:00, 15.08it/s]
80%|████████ | 16/20 [00:01<00:00, 15.19it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.06it/s]
100%|██████████| 20/20 [00:01<00:00, 14.98it/s]
92%|█████████▏| 92/100 [02:09<00:10, 1.35s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 13.79it/s]
20%|██ | 4/20 [00:00<00:01, 14.53it/s]
30%|███ | 6/20 [00:00<00:00, 14.53it/s]
40%|████ | 8/20 [00:00<00:00, 14.66it/s]
50%|█████ | 10/20 [00:00<00:00, 15.11it/s]
60%|██████ | 12/20 [00:00<00:00, 15.08it/s]
70%|███████ | 14/20 [00:00<00:00, 15.26it/s]
80%|████████ | 16/20 [00:01<00:00, 15.33it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.31it/s]
100%|██████████| 20/20 [00:01<00:00, 14.74it/s]
93%|█████████▎| 93/100 [02:10<00:09, 1.36s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.83it/s]
20%|██ | 4/20 [00:00<00:01, 14.78it/s]
30%|███ | 6/20 [00:00<00:00, 14.76it/s]
40%|████ | 8/20 [00:00<00:00, 14.86it/s]
50%|█████ | 10/20 [00:00<00:00, 14.98it/s]
60%|██████ | 12/20 [00:00<00:00, 14.93it/s]
70%|███████ | 14/20 [00:00<00:00, 14.63it/s]
80%|████████ | 16/20 [00:01<00:00, 14.11it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.05it/s]
100%|██████████| 20/20 [00:01<00:00, 14.33it/s]
94%|█████████▍| 94/100 [02:11<00:08, 1.37s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 12.72it/s]
20%|██ | 4/20 [00:00<00:01, 13.70it/s]
30%|███ | 6/20 [00:00<00:01, 13.56it/s]
40%|████ | 8/20 [00:00<00:00, 12.96it/s]
50%|█████ | 10/20 [00:00<00:00, 13.09it/s]
60%|██████ | 12/20 [00:00<00:00, 13.01it/s]
70%|███████ | 14/20 [00:01<00:00, 12.00it/s]
80%|████████ | 16/20 [00:01<00:00, 11.09it/s]
90%|█████████ | 18/20 [00:01<00:00, 10.80it/s]
100%|██████████| 20/20 [00:01<00:00, 11.62it/s]
95%|█████████▌| 95/100 [02:13<00:07, 1.48s/it]
0%| | 0/20 [00:00<?, ?it/s]
5%|▌ | 1/20 [00:00<00:01, 9.76it/s]
10%|█ | 2/20 [00:00<00:01, 9.55it/s]
15%|█▌ | 3/20 [00:00<00:01, 9.64it/s]
25%|██▌ | 5/20 [00:00<00:01, 9.93it/s]
30%|███ | 6/20 [00:00<00:01, 9.81it/s]
35%|███▌ | 7/20 [00:00<00:01, 9.29it/s]
40%|████ | 8/20 [00:00<00:01, 9.40it/s]
45%|████▌ | 9/20 [00:00<00:01, 9.26it/s]
50%|█████ | 10/20 [00:01<00:01, 9.20it/s]
55%|█████▌ | 11/20 [00:01<00:00, 9.37it/s]
65%|██████▌ | 13/20 [00:01<00:00, 9.93it/s]
70%|███████ | 14/20 [00:01<00:00, 9.72it/s]
75%|███████▌ | 15/20 [00:01<00:00, 9.75it/s]
80%|████████ | 16/20 [00:01<00:00, 9.65it/s]
85%|████████▌ | 17/20 [00:01<00:00, 9.54it/s]
90%|█████████ | 18/20 [00:01<00:00, 9.59it/s]
95%|█████████▌| 19/20 [00:01<00:00, 9.50it/s]
100%|██████████| 20/20 [00:02<00:00, 9.50it/s]
96%|█████████▌| 96/100 [02:15<00:06, 1.68s/it]
0%| | 0/20 [00:00<?, ?it/s]
5%|▌ | 1/20 [00:00<00:02, 9.05it/s]
10%|█ | 2/20 [00:00<00:02, 8.69it/s]
15%|█▌ | 3/20 [00:00<00:01, 8.90it/s]
20%|██ | 4/20 [00:00<00:01, 9.18it/s]
25%|██▌ | 5/20 [00:00<00:01, 8.80it/s]
30%|███ | 6/20 [00:00<00:01, 9.11it/s]
35%|███▌ | 7/20 [00:00<00:01, 9.34it/s]
45%|████▌ | 9/20 [00:00<00:01, 10.04it/s]
55%|█████▌ | 11/20 [00:01<00:00, 10.33it/s]
65%|██████▌ | 13/20 [00:01<00:00, 10.58it/s]
75%|███████▌ | 15/20 [00:01<00:00, 10.54it/s]
85%|████████▌ | 17/20 [00:01<00:00, 10.08it/s]
100%|██████████| 20/20 [00:02<00:00, 9.93it/s]
97%|█████████▋| 97/100 [02:17<00:05, 1.78s/it]
0%| | 0/20 [00:00<?, ?it/s]
5%|▌ | 1/20 [00:00<00:01, 9.85it/s]
10%|█ | 2/20 [00:00<00:01, 9.60it/s]
15%|█▌ | 3/20 [00:00<00:01, 9.70it/s]
25%|██▌ | 5/20 [00:00<00:01, 10.27it/s]
35%|███▌ | 7/20 [00:00<00:01, 10.26it/s]
45%|████▌ | 9/20 [00:00<00:00, 11.77it/s]
55%|█████▌ | 11/20 [00:00<00:00, 12.70it/s]
65%|██████▌ | 13/20 [00:01<00:00, 13.11it/s]
75%|███████▌ | 15/20 [00:01<00:00, 13.53it/s]
85%|████████▌ | 17/20 [00:01<00:00, 14.12it/s]
100%|██████████| 20/20 [00:01<00:00, 12.73it/s]
98%|█████████▊| 98/100 [02:19<00:03, 1.73s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 14.44it/s]
20%|██ | 4/20 [00:00<00:01, 14.78it/s]
30%|███ | 6/20 [00:00<00:00, 14.94it/s]
40%|████ | 8/20 [00:00<00:00, 14.87it/s]
50%|█████ | 10/20 [00:00<00:00, 14.95it/s]
60%|██████ | 12/20 [00:00<00:00, 14.97it/s]
70%|███████ | 14/20 [00:00<00:00, 15.18it/s]
80%|████████ | 16/20 [00:01<00:00, 14.82it/s]
90%|█████████ | 18/20 [00:01<00:00, 15.00it/s]
100%|██████████| 20/20 [00:01<00:00, 14.79it/s]
99%|█████████▉| 99/100 [02:20<00:01, 1.62s/it]
0%| | 0/20 [00:00<?, ?it/s]
10%|█ | 2/20 [00:00<00:01, 15.29it/s]
20%|██ | 4/20 [00:00<00:01, 15.03it/s]
30%|███ | 6/20 [00:00<00:00, 15.02it/s]
40%|████ | 8/20 [00:00<00:00, 15.03it/s]
50%|█████ | 10/20 [00:00<00:00, 14.75it/s]
60%|██████ | 12/20 [00:00<00:00, 14.66it/s]
70%|███████ | 14/20 [00:00<00:00, 14.63it/s]
80%|████████ | 16/20 [00:01<00:00, 14.75it/s]
90%|█████████ | 18/20 [00:01<00:00, 14.54it/s]
100%|██████████| 20/20 [00:01<00:00, 14.71it/s]
100%|██████████| 100/100 [02:22<00:00, 1.42s/it]