Shortcuts

Tutorial for Human Activity Recognition

!/usr/bin/env python

coding: utf-8

# ------------------------
# In[1]:


import yaml
import torch
import torch.nn as nn
from tqdm import tqdm
import os

Dataset with radHAR:

radHAR dataset is designed to use mmWave PC data collected by IWR1443Ti to predict the actions of the users. There are totally 5 actions in the dataset: [‘boxing’,’jack’,’jump’,’squats’,’walk’] In the library, we provide a dataloader to use mmWave PC data , converted into voxel image, and predict these actions.

Load the data

In[2]:

from pysensing.mmwave.PC.dataset.har import load_har_dataset
# The path contains the radHAR dataset
train_dataset, test_dataset = load_har_dataset("radHAR")
Try to download radHAR dateset in /home/kemove/yyz/av-gihub/tutorials/mmwave_PC_source/radHAR
Downloading radHAR to /home/kemove/yyz/av-gihub/tutorials/mmwave_PC_source/radHAR.zip...

Downloading:   0%|          | 0.00/115M [00:00<?, ?iB/s]
Downloading:   0%|          | 492k/115M [00:00<00:36, 3.16MiB/s]
Downloading:   1%|          | 1.25M/115M [00:00<00:21, 5.24MiB/s]
Downloading:   2%|▏         | 1.82M/115M [00:00<00:23, 4.76MiB/s]
Downloading:   2%|▏         | 2.32M/115M [00:00<00:23, 4.79MiB/s]
Downloading:   2%|▏         | 2.82M/115M [00:00<00:23, 4.76MiB/s]
Downloading:   3%|▎         | 3.31M/115M [00:00<00:28, 3.89MiB/s]
Downloading:   3%|▎         | 3.72M/115M [00:00<00:32, 3.46MiB/s]
Downloading:   4%|▎         | 4.09M/115M [00:01<00:36, 3.06MiB/s]
Downloading:   4%|▍         | 4.42M/115M [00:01<00:38, 2.86MiB/s]
Downloading:   4%|▍         | 4.73M/115M [00:01<00:37, 2.92MiB/s]
Downloading:   4%|▍         | 5.06M/115M [00:01<00:36, 3.01MiB/s]
Downloading:   5%|▍         | 5.49M/115M [00:01<00:33, 3.31MiB/s]
Downloading:   5%|▌         | 5.83M/115M [00:01<00:34, 3.20MiB/s]
Downloading:   5%|▌         | 6.16M/115M [00:01<00:37, 2.88MiB/s]
Downloading:   6%|▌         | 6.45M/115M [00:01<00:38, 2.85MiB/s]
Downloading:   6%|▌         | 6.75M/115M [00:02<00:39, 2.75MiB/s]
Downloading:   6%|▌         | 7.03M/115M [00:02<00:39, 2.77MiB/s]
Downloading:   6%|▋         | 7.31M/115M [00:02<00:40, 2.67MiB/s]
Downloading:   7%|▋         | 7.58M/115M [00:02<00:44, 2.43MiB/s]
Downloading:   7%|▋         | 7.83M/115M [00:02<00:52, 2.04MiB/s]
Downloading:   7%|▋         | 8.04M/115M [00:02<00:55, 1.93MiB/s]
Downloading:   7%|▋         | 8.26M/115M [00:02<00:54, 1.95MiB/s]
Downloading:   7%|▋         | 8.46M/115M [00:02<00:54, 1.97MiB/s]
Downloading:   8%|▊         | 8.66M/115M [00:03<00:57, 1.86MiB/s]
Downloading:   8%|▊         | 8.85M/115M [00:03<00:59, 1.79MiB/s]
Downloading:   8%|▊         | 9.04M/115M [00:03<00:59, 1.79MiB/s]
Downloading:   8%|▊         | 9.22M/115M [00:03<01:05, 1.61MiB/s]
Downloading:   8%|▊         | 9.39M/115M [00:03<01:12, 1.46MiB/s]
Downloading:   8%|▊         | 9.60M/115M [00:03<01:06, 1.58MiB/s]
Downloading:   8%|▊         | 9.76M/115M [00:03<01:07, 1.57MiB/s]
Downloading:   9%|▊         | 9.95M/115M [00:03<01:05, 1.60MiB/s]
Downloading:   9%|▉         | 10.1M/115M [00:03<01:11, 1.48MiB/s]
Downloading:   9%|▉         | 10.3M/115M [00:04<01:11, 1.47MiB/s]
Downloading:   9%|▉         | 10.4M/115M [00:04<01:17, 1.34MiB/s]
Downloading:   9%|▉         | 10.5M/115M [00:04<01:18, 1.34MiB/s]
Downloading:   9%|▉         | 10.7M/115M [00:04<01:13, 1.41MiB/s]
Downloading:   9%|▉         | 10.9M/115M [00:04<01:15, 1.39MiB/s]
Downloading:  10%|▉         | 11.0M/115M [00:04<01:17, 1.35MiB/s]
Downloading:  10%|▉         | 11.2M/115M [00:04<01:12, 1.42MiB/s]
Downloading:  10%|▉         | 11.4M/115M [00:04<01:09, 1.49MiB/s]
Downloading:  10%|█         | 11.6M/115M [00:04<01:03, 1.64MiB/s]
Downloading:  10%|█         | 11.7M/115M [00:05<01:03, 1.62MiB/s]
Downloading:  10%|█         | 11.9M/115M [00:05<00:58, 1.76MiB/s]
Downloading:  11%|█         | 12.1M/115M [00:05<01:04, 1.60MiB/s]
Downloading:  11%|█         | 12.3M/115M [00:05<01:00, 1.70MiB/s]
Downloading:  11%|█         | 12.5M/115M [00:05<02:10, 783kiB/s]
Downloading:  11%|█         | 12.6M/115M [00:06<03:09, 539kiB/s]
Downloading:  11%|█         | 12.7M/115M [00:07<04:56, 345kiB/s]
Downloading:  11%|█         | 12.8M/115M [00:07<06:08, 278kiB/s]
Downloading:  11%|█         | 12.9M/115M [00:08<06:54, 246kiB/s]
Downloading:  11%|█         | 12.9M/115M [00:08<07:56, 214kiB/s]
Downloading:  11%|█▏        | 12.9M/115M [00:08<08:16, 206kiB/s]
Downloading:  11%|█▏        | 13.0M/115M [00:08<09:30, 179kiB/s]
Downloading:  11%|█▏        | 13.0M/115M [00:09<09:38, 176kiB/s]
Downloading:  11%|█▏        | 13.0M/115M [00:09<09:36, 177kiB/s]
Downloading:  11%|█▏        | 13.0M/115M [00:09<09:41, 175kiB/s]
Downloading:  11%|█▏        | 13.1M/115M [00:09<07:39, 222kiB/s]
Downloading:  11%|█▏        | 13.1M/115M [00:09<06:19, 268kiB/s]
Downloading:  11%|█▏        | 13.2M/115M [00:09<05:16, 322kiB/s]
Downloading:  12%|█▏        | 13.3M/115M [00:09<04:38, 366kiB/s]
Downloading:  12%|█▏        | 13.3M/115M [00:09<04:07, 411kiB/s]
Downloading:  12%|█▏        | 13.4M/115M [00:10<03:48, 444kiB/s]
Downloading:  12%|█▏        | 13.5M/115M [00:10<03:32, 479kiB/s]
Downloading:  12%|█▏        | 13.5M/115M [00:10<03:38, 465kiB/s]
Downloading:  12%|█▏        | 13.6M/115M [00:10<03:06, 545kiB/s]
Downloading:  12%|█▏        | 13.7M/115M [00:10<02:41, 626kiB/s]
Downloading:  12%|█▏        | 13.8M/115M [00:10<02:31, 669kiB/s]
Downloading:  12%|█▏        | 13.9M/115M [00:10<02:25, 694kiB/s]
Downloading:  12%|█▏        | 14.0M/115M [00:10<02:05, 802kiB/s]
Downloading:  12%|█▏        | 14.1M/115M [00:10<01:57, 860kiB/s]
Downloading:  12%|█▏        | 14.2M/115M [00:11<01:54, 878kiB/s]
Downloading:  12%|█▏        | 14.3M/115M [00:11<01:48, 928kiB/s]
Downloading:  13%|█▎        | 14.4M/115M [00:11<01:45, 955kiB/s]
Downloading:  13%|█▎        | 14.6M/115M [00:11<01:36, 1.04MiB/s]
Downloading:  13%|█▎        | 14.7M/115M [00:11<01:31, 1.10MiB/s]
Downloading:  13%|█▎        | 14.8M/115M [00:11<01:33, 1.07MiB/s]
Downloading:  13%|█▎        | 15.0M/115M [00:11<01:29, 1.12MiB/s]
Downloading:  13%|█▎        | 15.1M/115M [00:11<01:28, 1.12MiB/s]
Downloading:  13%|█▎        | 15.2M/115M [00:11<01:29, 1.12MiB/s]
Downloading:  13%|█▎        | 15.4M/115M [00:12<01:20, 1.23MiB/s]
Downloading:  14%|█▎        | 15.5M/115M [00:12<01:17, 1.29MiB/s]
Downloading:  14%|█▎        | 15.7M/115M [00:12<01:18, 1.27MiB/s]
Downloading:  14%|█▎        | 15.8M/115M [00:12<01:20, 1.23MiB/s]
Downloading:  14%|█▍        | 16.0M/115M [00:12<01:15, 1.31MiB/s]
Downloading:  14%|█▍        | 16.1M/115M [00:12<01:12, 1.37MiB/s]
Downloading:  14%|█▍        | 16.3M/115M [00:12<01:07, 1.47MiB/s]
Downloading:  14%|█▍        | 16.4M/115M [00:12<01:41, 966kiB/s]
Downloading:  14%|█▍        | 16.6M/115M [00:13<01:32, 1.06MiB/s]
Downloading:  15%|█▍        | 16.7M/115M [00:13<01:33, 1.05MiB/s]
Downloading:  15%|█▍        | 16.8M/115M [00:13<01:30, 1.08MiB/s]
Downloading:  15%|█▍        | 17.0M/115M [00:13<01:22, 1.18MiB/s]
Downloading:  15%|█▍        | 17.2M/115M [00:13<01:14, 1.31MiB/s]
Downloading:  15%|█▌        | 17.3M/115M [00:13<01:12, 1.35MiB/s]
Downloading:  15%|█▌        | 17.5M/115M [00:13<01:13, 1.32MiB/s]
Downloading:  15%|█▌        | 17.7M/115M [00:13<01:06, 1.47MiB/s]
Downloading:  16%|█▌        | 17.9M/115M [00:13<01:01, 1.59MiB/s]
Downloading:  16%|█▌        | 18.0M/115M [00:14<00:59, 1.63MiB/s]
Downloading:  16%|█▌        | 18.2M/115M [00:14<01:07, 1.43MiB/s]
Downloading:  16%|█▌        | 18.4M/115M [00:14<01:00, 1.59MiB/s]
Downloading:  16%|█▌        | 18.6M/115M [00:14<00:57, 1.67MiB/s]
Downloading:  16%|█▋        | 18.8M/115M [00:14<00:57, 1.67MiB/s]
Downloading:  16%|█▋        | 19.0M/115M [00:14<00:57, 1.67MiB/s]
Downloading:  17%|█▋        | 19.2M/115M [00:14<00:51, 1.85MiB/s]
Downloading:  17%|█▋        | 19.4M/115M [00:14<00:48, 1.96MiB/s]
Downloading:  17%|█▋        | 19.6M/115M [00:14<00:56, 1.69MiB/s]
Downloading:  17%|█▋        | 19.8M/115M [00:15<00:56, 1.69MiB/s]
Downloading:  17%|█▋        | 20.0M/115M [00:15<00:54, 1.76MiB/s]
Downloading:  18%|█▊        | 20.2M/115M [00:15<00:57, 1.65MiB/s]
Downloading:  18%|█▊        | 20.4M/115M [00:15<00:55, 1.72MiB/s]
Downloading:  18%|█▊        | 20.6M/115M [00:15<00:50, 1.87MiB/s]
Downloading:  18%|█▊        | 20.8M/115M [00:15<00:50, 1.86MiB/s]
Downloading:  18%|█▊        | 21.0M/115M [00:15<00:56, 1.67MiB/s]
Downloading:  18%|█▊        | 21.1M/115M [00:15<01:00, 1.55MiB/s]
Downloading:  19%|█▊        | 21.3M/115M [00:16<01:03, 1.48MiB/s]
Downloading:  19%|█▊        | 21.5M/115M [00:16<01:06, 1.40MiB/s]
Downloading:  19%|█▉        | 21.6M/115M [00:16<01:07, 1.38MiB/s]
Downloading:  19%|█▉        | 21.8M/115M [00:16<01:05, 1.43MiB/s]
Downloading:  19%|█▉        | 21.9M/115M [00:16<01:11, 1.31MiB/s]
Downloading:  19%|█▉        | 22.1M/115M [00:16<01:06, 1.39MiB/s]
Downloading:  19%|█▉        | 22.2M/115M [00:16<01:03, 1.46MiB/s]
Downloading:  19%|█▉        | 22.4M/115M [00:16<01:05, 1.41MiB/s]
Downloading:  20%|█▉        | 22.5M/115M [00:16<01:06, 1.39MiB/s]
Downloading:  20%|█▉        | 22.7M/115M [00:17<01:10, 1.32MiB/s]
Downloading:  20%|█▉        | 22.8M/115M [00:17<01:10, 1.30MiB/s]
Downloading:  20%|█▉        | 22.9M/115M [00:17<01:16, 1.20MiB/s]
Downloading:  20%|██        | 23.1M/115M [00:17<01:20, 1.14MiB/s]
Downloading:  20%|██        | 23.2M/115M [00:17<01:10, 1.30MiB/s]
Downloading:  20%|██        | 23.4M/115M [00:17<01:14, 1.23MiB/s]
Downloading:  20%|██        | 23.5M/115M [00:17<01:14, 1.22MiB/s]
Downloading:  21%|██        | 23.6M/115M [00:17<01:16, 1.20MiB/s]
Downloading:  21%|██        | 23.8M/115M [00:17<01:13, 1.24MiB/s]
Downloading:  21%|██        | 23.9M/115M [00:18<01:12, 1.25MiB/s]
Downloading:  21%|██        | 24.1M/115M [00:18<01:02, 1.45MiB/s]
Downloading:  21%|██        | 24.3M/115M [00:18<01:05, 1.38MiB/s]
Downloading:  21%|██        | 24.4M/115M [00:18<01:10, 1.29MiB/s]
Downloading:  21%|██▏       | 24.5M/115M [00:18<01:13, 1.23MiB/s]
Downloading:  21%|██▏       | 24.7M/115M [00:18<01:17, 1.17MiB/s]
Downloading:  22%|██▏       | 24.8M/115M [00:18<01:18, 1.15MiB/s]
Downloading:  22%|██▏       | 24.9M/115M [00:18<01:26, 1.04MiB/s]
Downloading:  22%|██▏       | 25.0M/115M [00:19<01:19, 1.13MiB/s]
Downloading:  22%|██▏       | 25.2M/115M [00:19<01:22, 1.09MiB/s]
Downloading:  22%|██▏       | 25.3M/115M [00:19<01:24, 1.07MiB/s]
Downloading:  22%|██▏       | 25.4M/115M [00:19<01:20, 1.11MiB/s]
Downloading:  22%|██▏       | 25.5M/115M [00:19<01:24, 1.05MiB/s]
Downloading:  22%|██▏       | 25.6M/115M [00:19<01:24, 1.06MiB/s]
Downloading:  22%|██▏       | 25.7M/115M [00:19<01:25, 1.04MiB/s]
Downloading:  22%|██▏       | 25.8M/115M [00:19<01:35, 929kiB/s]
Downloading:  23%|██▎       | 26.0M/115M [00:19<01:28, 1.01MiB/s]
Downloading:  23%|██▎       | 26.1M/115M [00:20<01:26, 1.03MiB/s]
Downloading:  23%|██▎       | 26.2M/115M [00:20<01:26, 1.03MiB/s]
Downloading:  23%|██▎       | 26.3M/115M [00:20<01:28, 1.00MiB/s]
Downloading:  23%|██▎       | 26.4M/115M [00:20<01:26, 1.02MiB/s]
Downloading:  23%|██▎       | 26.5M/115M [00:20<01:53, 779kiB/s]
Downloading:  23%|██▎       | 26.6M/115M [00:20<02:06, 698kiB/s]
Downloading:  23%|██▎       | 26.7M/115M [00:21<04:09, 354kiB/s]
Downloading:  23%|██▎       | 26.7M/115M [00:21<04:43, 311kiB/s]
Downloading:  23%|██▎       | 26.8M/115M [00:21<05:34, 264kiB/s]
Downloading:  23%|██▎       | 26.8M/115M [00:22<06:52, 214kiB/s]
Downloading:  23%|██▎       | 26.9M/115M [00:22<06:34, 223kiB/s]
Downloading:  23%|██▎       | 26.9M/115M [00:22<11:55, 123kiB/s]
Downloading:  23%|██▎       | 26.9M/115M [00:23<13:04, 112kiB/s]
Downloading:  23%|██▎       | 26.9M/115M [00:23<11:09, 132kiB/s]
Downloading:  23%|██▎       | 27.0M/115M [00:23<10:56, 134kiB/s]
Downloading:  23%|██▎       | 27.0M/115M [00:23<12:44, 115kiB/s]
Downloading:  23%|██▎       | 27.0M/115M [00:24<11:39, 126kiB/s]
Downloading:  24%|██▎       | 27.1M/115M [00:24<08:43, 168kiB/s]
Downloading:  24%|██▎       | 27.1M/115M [00:24<08:28, 173kiB/s]
Downloading:  24%|██▎       | 27.1M/115M [00:24<07:48, 188kiB/s]
Downloading:  24%|██▎       | 27.2M/115M [00:24<07:03, 208kiB/s]
Downloading:  24%|██▎       | 27.2M/115M [00:24<05:48, 252kiB/s]
Downloading:  24%|██▎       | 27.2M/115M [00:24<05:28, 267kiB/s]
Downloading:  24%|██▎       | 27.3M/115M [00:25<05:00, 291kiB/s]
Downloading:  24%|██▍       | 27.3M/115M [00:25<04:38, 315kiB/s]
Downloading:  24%|██▍       | 27.4M/115M [00:25<04:16, 342kiB/s]
Downloading:  24%|██▍       | 27.4M/115M [00:25<04:12, 346kiB/s]
Downloading:  24%|██▍       | 27.5M/115M [00:25<04:14, 344kiB/s]
Downloading:  24%|██▍       | 27.5M/115M [00:25<03:46, 386kiB/s]
Downloading:  24%|██▍       | 27.6M/115M [00:25<03:14, 450kiB/s]
Downloading:  24%|██▍       | 27.7M/115M [00:25<02:53, 503kiB/s]
Downloading:  24%|██▍       | 27.8M/115M [00:25<02:37, 554kiB/s]
Downloading:  24%|██▍       | 27.9M/115M [00:26<02:15, 645kiB/s]
Downloading:  24%|██▍       | 28.0M/115M [00:26<01:59, 726kiB/s]
Downloading:  24%|██▍       | 28.0M/115M [00:26<01:56, 749kiB/s]
Downloading:  24%|██▍       | 28.2M/115M [00:26<01:46, 817kiB/s]
Downloading:  25%|██▍       | 28.3M/115M [00:26<01:49, 793kiB/s]
Downloading:  25%|██▍       | 28.4M/115M [00:26<01:37, 886kiB/s]
Downloading:  25%|██▍       | 28.5M/115M [00:26<01:32, 933kiB/s]
Downloading:  25%|██▍       | 28.6M/115M [00:26<01:32, 938kiB/s]
Downloading:  25%|██▍       | 28.7M/115M [00:27<01:27, 987kiB/s]
Downloading:  25%|██▌       | 28.9M/115M [00:27<01:24, 1.02MiB/s]
Downloading:  25%|██▌       | 29.0M/115M [00:27<01:21, 1.05MiB/s]
Downloading:  25%|██▌       | 29.1M/115M [00:27<01:20, 1.07MiB/s]
Downloading:  25%|██▌       | 29.3M/115M [00:27<01:17, 1.11MiB/s]
Downloading:  26%|██▌       | 29.4M/115M [00:27<01:15, 1.13MiB/s]
Downloading:  26%|██▌       | 29.5M/115M [00:27<01:20, 1.07MiB/s]
Downloading:  26%|██▌       | 29.6M/115M [00:27<01:20, 1.06MiB/s]
Downloading:  26%|██▌       | 29.7M/115M [00:27<01:27, 973kiB/s]
Downloading:  26%|██▌       | 29.9M/115M [00:28<01:19, 1.08MiB/s]
Downloading:  26%|██▌       | 30.0M/115M [00:28<01:26, 987kiB/s]
Downloading:  26%|██▌       | 30.1M/115M [00:28<01:39, 853kiB/s]
Downloading:  26%|██▋       | 30.2M/115M [00:28<01:25, 989kiB/s]
Downloading:  26%|██▋       | 30.3M/115M [00:28<01:19, 1.07MiB/s]
Downloading:  27%|██▋       | 30.6M/115M [00:28<01:01, 1.38MiB/s]
Downloading:  27%|██▋       | 30.8M/115M [00:28<00:57, 1.47MiB/s]
Downloading:  27%|██▋       | 31.0M/115M [00:28<00:51, 1.63MiB/s]
Downloading:  27%|██▋       | 31.2M/115M [00:28<00:45, 1.85MiB/s]
Downloading:  27%|██▋       | 31.5M/115M [00:29<00:41, 1.99MiB/s]
Downloading:  28%|██▊       | 31.7M/115M [00:29<00:42, 1.97MiB/s]
Downloading:  28%|██▊       | 31.9M/115M [00:29<00:42, 1.96MiB/s]
Downloading:  28%|██▊       | 32.1M/115M [00:29<00:40, 2.06MiB/s]
Downloading:  28%|██▊       | 32.3M/115M [00:29<00:41, 1.99MiB/s]
Downloading:  28%|██▊       | 32.6M/115M [00:29<00:39, 2.07MiB/s]
Downloading:  29%|██▊       | 32.9M/115M [00:29<00:36, 2.27MiB/s]
Downloading:  29%|██▉       | 33.1M/115M [00:29<00:35, 2.33MiB/s]
Downloading:  29%|██▉       | 33.3M/115M [00:29<00:36, 2.24MiB/s]
Downloading:  29%|██▉       | 33.7M/115M [00:30<00:32, 2.49MiB/s]
Downloading:  29%|██▉       | 33.9M/115M [00:30<00:35, 2.31MiB/s]
Downloading:  30%|██▉       | 34.2M/115M [00:30<00:35, 2.26MiB/s]
Downloading:  30%|██▉       | 34.4M/115M [00:30<00:39, 2.05MiB/s]
Downloading:  30%|███       | 34.6M/115M [00:30<00:39, 2.03MiB/s]
Downloading:  30%|███       | 34.9M/115M [00:30<00:32, 2.43MiB/s]
Downloading:  31%|███       | 35.2M/115M [00:30<00:33, 2.40MiB/s]
Downloading:  31%|███       | 35.4M/115M [00:30<00:37, 2.12MiB/s]
Downloading:  31%|███       | 35.7M/115M [00:30<00:34, 2.29MiB/s]
Downloading:  31%|███▏      | 36.0M/115M [00:31<00:35, 2.22MiB/s]
Downloading:  31%|███▏      | 36.2M/115M [00:31<00:33, 2.32MiB/s]
Downloading:  32%|███▏      | 36.5M/115M [00:31<00:34, 2.29MiB/s]
Downloading:  32%|███▏      | 36.8M/115M [00:31<00:32, 2.40MiB/s]
Downloading:  32%|███▏      | 37.1M/115M [00:31<00:29, 2.62MiB/s]
Downloading:  32%|███▏      | 37.4M/115M [00:31<00:37, 2.07MiB/s]
Downloading:  33%|███▎      | 37.9M/115M [00:31<00:27, 2.80MiB/s]
Downloading:  33%|███▎      | 38.2M/115M [00:31<00:27, 2.77MiB/s]
Downloading:  33%|███▎      | 38.5M/115M [00:32<00:30, 2.53MiB/s]
Downloading:  34%|███▎      | 38.8M/115M [00:32<00:30, 2.50MiB/s]
Downloading:  34%|███▍      | 39.1M/115M [00:32<00:28, 2.70MiB/s]
Downloading:  34%|███▍      | 39.4M/115M [00:32<00:33, 2.26MiB/s]
Downloading:  35%|███▍      | 39.7M/115M [00:32<00:31, 2.43MiB/s]
Downloading:  35%|███▍      | 40.0M/115M [00:32<00:29, 2.58MiB/s]
Downloading:  35%|███▌      | 40.3M/115M [00:32<00:30, 2.45MiB/s]
Downloading:  35%|███▌      | 40.6M/115M [00:32<00:28, 2.62MiB/s]
Downloading:  36%|███▌      | 41.0M/115M [00:33<00:25, 2.85MiB/s]
Downloading:  36%|███▌      | 41.3M/115M [00:33<00:29, 2.52MiB/s]
Downloading:  36%|███▌      | 41.5M/115M [00:33<00:28, 2.57MiB/s]
Downloading:  36%|███▋      | 41.8M/115M [00:33<00:29, 2.45MiB/s]
Downloading:  37%|███▋      | 42.1M/115M [00:33<00:33, 2.16MiB/s]
Downloading:  37%|███▋      | 42.5M/115M [00:33<00:28, 2.59MiB/s]
Downloading:  37%|███▋      | 42.7M/115M [00:33<00:29, 2.48MiB/s]
Downloading:  37%|███▋      | 43.0M/115M [00:33<00:29, 2.44MiB/s]
Downloading:  38%|███▊      | 43.4M/115M [00:33<00:26, 2.74MiB/s]
Downloading:  38%|███▊      | 43.6M/115M [00:34<00:28, 2.50MiB/s]
Downloading:  38%|███▊      | 43.9M/115M [00:34<00:33, 2.11MiB/s]
Downloading:  38%|███▊      | 44.1M/115M [00:34<00:37, 1.89MiB/s]
Downloading:  39%|███▊      | 44.4M/115M [00:34<00:34, 2.07MiB/s]
Downloading:  39%|███▉      | 44.6M/115M [00:34<00:35, 2.00MiB/s]
Downloading:  39%|███▉      | 44.8M/115M [00:34<00:36, 1.94MiB/s]
Downloading:  39%|███▉      | 45.0M/115M [00:34<00:39, 1.78MiB/s]
Downloading:  39%|███▉      | 45.2M/115M [00:35<00:42, 1.65MiB/s]
Downloading:  39%|███▉      | 45.4M/115M [00:35<00:44, 1.58MiB/s]
Downloading:  40%|███▉      | 45.5M/115M [00:35<00:45, 1.54MiB/s]
Downloading:  40%|███▉      | 45.7M/115M [00:35<00:48, 1.42MiB/s]
Downloading:  40%|███▉      | 45.8M/115M [00:36<01:44, 664kiB/s]
Downloading:  40%|███▉      | 46.0M/115M [00:37<04:21, 264kiB/s]
Downloading:  40%|████      | 46.0M/115M [00:37<04:34, 251kiB/s]
Downloading:  40%|████      | 46.1M/115M [00:38<05:30, 209kiB/s]
Downloading:  40%|████      | 46.1M/115M [00:38<05:58, 192kiB/s]
Downloading:  40%|████      | 46.2M/115M [00:38<06:32, 175kiB/s]
Downloading:  40%|████      | 46.2M/115M [00:39<07:19, 156kiB/s]
Downloading:  40%|████      | 46.3M/115M [00:39<06:33, 175kiB/s]
Downloading:  40%|████      | 46.3M/115M [00:39<05:56, 193kiB/s]
Downloading:  40%|████      | 46.3M/115M [00:39<05:27, 209kiB/s]
Downloading:  40%|████      | 46.4M/115M [00:39<04:03, 281kiB/s]
Downloading:  40%|████      | 46.4M/115M [00:39<03:34, 320kiB/s]
Downloading:  40%|████      | 46.5M/115M [00:39<02:58, 384kiB/s]
Downloading:  41%|████      | 46.6M/115M [00:40<02:11, 521kiB/s]
Downloading:  41%|████      | 46.8M/115M [00:40<01:21, 832kiB/s]
Downloading:  41%|████      | 47.0M/115M [00:40<00:57, 1.17MiB/s]
Downloading:  41%|████      | 47.3M/115M [00:40<00:43, 1.54MiB/s]
Downloading:  41%|████      | 47.4M/115M [00:40<00:43, 1.55MiB/s]
Downloading:  41%|████▏     | 47.6M/115M [00:40<00:41, 1.61MiB/s]
Downloading:  42%|████▏     | 47.8M/115M [00:40<00:41, 1.61MiB/s]
Downloading:  42%|████▏     | 48.0M/115M [00:40<00:40, 1.66MiB/s]
Downloading:  42%|████▏     | 48.2M/115M [00:40<00:44, 1.49MiB/s]
Downloading:  42%|████▏     | 48.3M/115M [00:41<00:45, 1.48MiB/s]
Downloading:  42%|████▏     | 48.5M/115M [00:41<00:46, 1.44MiB/s]
Downloading:  42%|████▏     | 48.6M/115M [00:41<00:48, 1.37MiB/s]
Downloading:  42%|████▏     | 48.8M/115M [00:41<00:42, 1.56MiB/s]
Downloading:  43%|████▎     | 49.0M/115M [00:41<00:42, 1.57MiB/s]
Downloading:  43%|████▎     | 49.1M/115M [00:41<00:41, 1.58MiB/s]
Downloading:  43%|████▎     | 49.3M/115M [00:41<00:44, 1.47MiB/s]
Downloading:  43%|████▎     | 49.5M/115M [00:41<00:44, 1.47MiB/s]
Downloading:  43%|████▎     | 49.6M/115M [00:41<00:49, 1.32MiB/s]
Downloading:  43%|████▎     | 49.7M/115M [00:42<00:53, 1.22MiB/s]
Downloading:  43%|████▎     | 49.9M/115M [00:42<00:47, 1.37MiB/s]
Downloading:  44%|████▎     | 50.1M/115M [00:42<00:42, 1.52MiB/s]
Downloading:  44%|████▍     | 50.3M/115M [00:42<00:37, 1.72MiB/s]
Downloading:  44%|████▍     | 50.5M/115M [00:42<00:36, 1.77MiB/s]
Downloading:  44%|████▍     | 50.7M/115M [00:42<00:42, 1.50MiB/s]
Downloading:  44%|████▍     | 50.9M/115M [00:42<00:42, 1.53MiB/s]
Downloading:  44%|████▍     | 51.1M/115M [00:42<00:40, 1.60MiB/s]
Downloading:  45%|████▍     | 51.2M/115M [00:42<00:44, 1.45MiB/s]
Downloading:  45%|████▍     | 51.4M/115M [00:43<00:43, 1.45MiB/s]
Downloading:  45%|████▍     | 51.5M/115M [00:43<00:52, 1.21MiB/s]
Downloading:  45%|████▍     | 51.7M/115M [00:43<00:50, 1.26MiB/s]
Downloading:  45%|████▌     | 51.8M/115M [00:43<00:48, 1.29MiB/s]
Downloading:  45%|████▌     | 52.0M/115M [00:43<01:00, 1.04MiB/s]
Downloading:  45%|████▌     | 52.1M/115M [00:43<01:01, 1.02MiB/s]
Downloading:  45%|████▌     | 52.2M/115M [00:43<01:04, 979kiB/s]
Downloading:  45%|████▌     | 52.3M/115M [00:44<01:09, 908kiB/s]
Downloading:  46%|████▌     | 52.4M/115M [00:44<01:15, 830kiB/s]
Downloading:  46%|████▌     | 52.5M/115M [00:44<01:21, 768kiB/s]
Downloading:  46%|████▌     | 52.6M/115M [00:44<01:16, 813kiB/s]
Downloading:  46%|████▌     | 52.7M/115M [00:44<01:10, 889kiB/s]
Downloading:  46%|████▌     | 52.8M/115M [00:44<01:06, 936kiB/s]
Downloading:  46%|████▌     | 52.9M/115M [00:44<01:08, 902kiB/s]
Downloading:  46%|████▌     | 53.0M/115M [00:44<01:09, 894kiB/s]
Downloading:  46%|████▌     | 53.1M/115M [00:45<01:10, 881kiB/s]
Downloading:  46%|████▋     | 53.2M/115M [00:45<01:10, 881kiB/s]
Downloading:  46%|████▋     | 53.3M/115M [00:45<01:10, 869kiB/s]
Downloading:  46%|████▋     | 53.4M/115M [00:45<01:08, 899kiB/s]
Downloading:  47%|████▋     | 53.5M/115M [00:45<01:07, 907kiB/s]
Downloading:  47%|████▋     | 53.6M/115M [00:45<01:12, 847kiB/s]
Downloading:  47%|████▋     | 53.7M/115M [00:45<01:12, 846kiB/s]
Downloading:  47%|████▋     | 53.8M/115M [00:45<01:20, 757kiB/s]
Downloading:  47%|████▋     | 53.9M/115M [00:45<01:21, 753kiB/s]
Downloading:  47%|████▋     | 53.9M/115M [00:46<01:21, 752kiB/s]
Downloading:  47%|████▋     | 54.0M/115M [00:46<01:21, 751kiB/s]
Downloading:  47%|████▋     | 54.1M/115M [00:46<01:15, 810kiB/s]
Downloading:  47%|████▋     | 54.2M/115M [00:46<01:05, 929kiB/s]
Downloading:  47%|████▋     | 54.4M/115M [00:46<00:57, 1.05MiB/s]
Downloading:  47%|████▋     | 54.5M/115M [00:46<00:57, 1.05MiB/s]
Downloading:  47%|████▋     | 54.6M/115M [00:46<00:59, 1.01MiB/s]
Downloading:  48%|████▊     | 54.7M/115M [00:46<01:02, 961kiB/s]
Downloading:  48%|████▊     | 54.8M/115M [00:46<01:06, 909kiB/s]
Downloading:  48%|████▊     | 54.9M/115M [00:47<01:08, 874kiB/s]
Downloading:  48%|████▊     | 55.0M/115M [00:47<01:09, 862kiB/s]
Downloading:  48%|████▊     | 55.1M/115M [00:47<01:04, 923kiB/s]
Downloading:  48%|████▊     | 55.2M/115M [00:47<01:03, 944kiB/s]
Downloading:  48%|████▊     | 55.3M/115M [00:47<00:58, 1.02MiB/s]
Downloading:  48%|████▊     | 55.4M/115M [00:47<01:19, 749kiB/s]
Downloading:  48%|████▊     | 55.6M/115M [00:47<01:18, 762kiB/s]
Downloading:  48%|████▊     | 55.7M/115M [00:47<01:16, 771kiB/s]
Downloading:  48%|████▊     | 55.8M/115M [00:48<01:11, 827kiB/s]
Downloading:  49%|████▊     | 55.9M/115M [00:48<01:09, 846kiB/s]
Downloading:  49%|████▊     | 56.0M/115M [00:48<01:07, 874kiB/s]
Downloading:  49%|████▊     | 56.1M/115M [00:48<01:06, 881kiB/s]
Downloading:  49%|████▉     | 56.2M/115M [00:48<01:05, 901kiB/s]
Downloading:  49%|████▉     | 56.3M/115M [00:48<01:05, 897kiB/s]
Downloading:  49%|████▉     | 56.4M/115M [00:48<01:10, 832kiB/s]
Downloading:  49%|████▉     | 56.4M/115M [00:48<01:10, 833kiB/s]
Downloading:  49%|████▉     | 56.5M/115M [00:48<01:12, 802kiB/s]
Downloading:  49%|████▉     | 56.6M/115M [00:49<01:18, 746kiB/s]
Downloading:  49%|████▉     | 56.7M/115M [00:49<01:18, 747kiB/s]
Downloading:  49%|████▉     | 56.8M/115M [00:49<01:24, 692kiB/s]
Downloading:  49%|████▉     | 56.9M/115M [00:49<01:13, 793kiB/s]
Downloading:  50%|████▉     | 57.0M/115M [00:49<01:09, 832kiB/s]
Downloading:  50%|████▉     | 57.1M/115M [00:49<01:15, 768kiB/s]
Downloading:  50%|████▉     | 57.1M/115M [00:49<01:17, 748kiB/s]
Downloading:  50%|████▉     | 57.2M/115M [00:49<01:18, 731kiB/s]
Downloading:  50%|████▉     | 57.3M/115M [00:50<01:16, 749kiB/s]
Downloading:  50%|████▉     | 57.4M/115M [00:50<01:15, 761kiB/s]
Downloading:  50%|████▉     | 57.5M/115M [00:50<01:17, 740kiB/s]
Downloading:  50%|█████     | 57.6M/115M [00:50<01:21, 702kiB/s]
Downloading:  50%|█████     | 57.7M/115M [00:50<02:49, 339kiB/s]
Downloading:  50%|█████     | 57.7M/115M [00:51<03:29, 274kiB/s]
Downloading:  50%|█████     | 57.8M/115M [00:51<04:06, 232kiB/s]
Downloading:  50%|█████     | 57.8M/115M [00:51<04:30, 212kiB/s]
Downloading:  50%|█████     | 57.8M/115M [00:52<04:51, 196kiB/s]
Downloading:  50%|█████     | 57.8M/115M [00:52<06:53, 138kiB/s]
Downloading:  50%|█████     | 57.9M/115M [00:52<05:51, 163kiB/s]
Downloading:  50%|█████     | 57.9M/115M [00:52<06:56, 137kiB/s]
Downloading:  50%|█████     | 58.0M/115M [00:53<04:35, 207kiB/s]
Downloading:  50%|█████     | 58.0M/115M [00:53<04:27, 213kiB/s]
Downloading:  50%|█████     | 58.1M/115M [00:53<04:15, 223kiB/s]
Downloading:  51%|█████     | 58.1M/115M [00:53<04:02, 235kiB/s]
Downloading:  51%|█████     | 58.1M/115M [00:53<03:56, 241kiB/s]
Downloading:  51%|█████     | 58.2M/115M [00:53<03:55, 242kiB/s]
Downloading:  51%|█████     | 58.2M/115M [00:54<04:10, 226kiB/s]
Downloading:  51%|█████     | 58.2M/115M [00:54<04:02, 234kiB/s]
Downloading:  51%|█████     | 58.3M/115M [00:54<03:39, 259kiB/s]
Downloading:  51%|█████     | 58.3M/115M [00:54<03:24, 277kiB/s]
Downloading:  51%|█████     | 58.4M/115M [00:54<03:09, 299kiB/s]
Downloading:  51%|█████     | 58.4M/115M [00:54<03:40, 256kiB/s]
Downloading:  51%|█████     | 58.5M/115M [00:54<02:54, 323kiB/s]
Downloading:  51%|█████     | 58.5M/115M [00:55<02:48, 335kiB/s]
Downloading:  51%|█████     | 58.6M/115M [00:55<02:37, 359kiB/s]
Downloading:  51%|█████     | 58.6M/115M [00:55<02:28, 379kiB/s]
Downloading:  51%|█████     | 58.7M/115M [00:55<02:18, 406kiB/s]
Downloading:  51%|█████     | 58.7M/115M [00:55<02:12, 425kiB/s]
Downloading:  51%|█████     | 58.8M/115M [00:55<02:13, 422kiB/s]
Downloading:  51%|█████     | 58.8M/115M [00:55<02:10, 429kiB/s]
Downloading:  51%|█████     | 58.9M/115M [00:55<02:08, 436kiB/s]
Downloading:  51%|█████▏    | 58.9M/115M [00:55<01:55, 486kiB/s]
Downloading:  51%|█████▏    | 59.0M/115M [00:56<01:40, 558kiB/s]
Downloading:  51%|█████▏    | 59.1M/115M [00:56<01:24, 660kiB/s]
Downloading:  52%|█████▏    | 59.2M/115M [00:56<01:11, 779kiB/s]
Downloading:  52%|█████▏    | 59.4M/115M [00:56<01:03, 876kiB/s]
Downloading:  52%|█████▏    | 59.5M/115M [00:56<00:54, 1.03MiB/s]
Downloading:  52%|█████▏    | 59.7M/115M [00:56<00:48, 1.13MiB/s]
Downloading:  52%|█████▏    | 59.8M/115M [00:56<00:45, 1.21MiB/s]
Downloading:  52%|█████▏    | 60.0M/115M [00:56<00:41, 1.31MiB/s]
Downloading:  52%|█████▏    | 60.2M/115M [00:56<00:32, 1.68MiB/s]
Downloading:  53%|█████▎    | 60.5M/115M [00:56<00:26, 2.08MiB/s]
Downloading:  53%|█████▎    | 60.9M/115M [00:57<00:22, 2.40MiB/s]
Downloading:  53%|█████▎    | 61.1M/115M [00:57<00:22, 2.38MiB/s]
Downloading:  54%|█████▎    | 61.6M/115M [00:57<00:17, 3.05MiB/s]
Downloading:  54%|█████▍    | 62.0M/115M [00:57<00:15, 3.40MiB/s]
Downloading:  54%|█████▍    | 62.4M/115M [00:57<00:14, 3.61MiB/s]
Downloading:  55%|█████▍    | 62.8M/115M [00:57<00:15, 3.36MiB/s]
Downloading:  55%|█████▌    | 63.3M/115M [00:57<00:15, 3.27MiB/s]
Downloading:  55%|█████▌    | 63.8M/115M [00:57<00:13, 3.67MiB/s]
Downloading:  56%|█████▌    | 64.3M/115M [00:57<00:12, 4.07MiB/s]
Downloading:  56%|█████▋    | 64.9M/115M [00:58<00:11, 4.38MiB/s]
Downloading:  57%|█████▋    | 65.5M/115M [00:58<00:10, 4.79MiB/s]
Downloading:  57%|█████▋    | 66.0M/115M [00:58<00:10, 4.73MiB/s]
Downloading:  58%|█████▊    | 66.4M/115M [00:58<00:10, 4.66MiB/s]
Downloading:  58%|█████▊    | 67.2M/115M [00:58<00:08, 5.48MiB/s]
Downloading:  59%|█████▉    | 67.8M/115M [00:58<00:09, 5.13MiB/s]
Downloading:  59%|█████▉    | 68.4M/115M [00:58<00:08, 5.46MiB/s]
Downloading:  60%|█████▉    | 69.0M/115M [00:58<00:10, 4.43MiB/s]
Downloading:  60%|██████    | 69.5M/115M [00:59<00:09, 4.69MiB/s]
Downloading:  61%|██████    | 70.1M/115M [00:59<00:09, 4.87MiB/s]
Downloading:  61%|██████▏   | 70.6M/115M [00:59<00:09, 4.76MiB/s]
Downloading:  62%|██████▏   | 71.1M/115M [00:59<00:09, 4.71MiB/s]
Downloading:  62%|██████▏   | 71.5M/115M [00:59<00:10, 4.22MiB/s]
Downloading:  63%|██████▎   | 72.3M/115M [00:59<00:08, 4.77MiB/s]
Downloading:  63%|██████▎   | 72.8M/115M [00:59<00:08, 4.89MiB/s]
Downloading:  64%|██████▎   | 73.3M/115M [00:59<00:08, 4.81MiB/s]
Downloading:  64%|██████▍   | 73.8M/115M [00:59<00:09, 4.54MiB/s]
Downloading:  65%|██████▍   | 74.3M/115M [01:00<00:09, 4.15MiB/s]
Downloading:  65%|██████▍   | 74.7M/115M [01:00<00:09, 4.27MiB/s]
Downloading:  65%|██████▌   | 75.3M/115M [01:00<00:08, 4.60MiB/s]
Downloading:  66%|██████▌   | 75.8M/115M [01:00<00:09, 4.33MiB/s]
Downloading:  66%|██████▋   | 76.3M/115M [01:00<00:08, 4.72MiB/s]
Downloading:  67%|██████▋   | 76.9M/115M [01:00<00:07, 4.79MiB/s]
Downloading:  67%|██████▋   | 77.3M/115M [01:00<00:07, 4.82MiB/s]
Downloading:  68%|██████▊   | 77.8M/115M [01:00<00:08, 4.58MiB/s]
Downloading:  68%|██████▊   | 78.3M/115M [01:00<00:09, 4.04MiB/s]
Downloading:  69%|██████▊   | 78.9M/115M [01:01<00:08, 4.40MiB/s]
Downloading:  69%|██████▉   | 79.3M/115M [01:01<00:09, 3.89MiB/s]
Downloading:  69%|██████▉   | 79.7M/115M [01:01<00:10, 3.43MiB/s]
Downloading:  70%|██████▉   | 80.1M/115M [01:01<00:11, 3.14MiB/s]
Downloading:  70%|██████▉   | 80.4M/115M [01:01<00:13, 2.65MiB/s]
Downloading:  70%|███████   | 80.7M/115M [01:01<00:13, 2.46MiB/s]
Downloading:  70%|███████   | 81.0M/115M [01:02<00:15, 2.22MiB/s]
Downloading:  71%|███████   | 81.2M/115M [01:02<00:15, 2.21MiB/s]
Downloading:  71%|███████   | 81.4M/115M [01:02<00:16, 2.00MiB/s]
Downloading:  71%|███████   | 81.6M/115M [01:02<00:17, 1.86MiB/s]
Downloading:  71%|███████   | 81.8M/115M [01:02<00:18, 1.80MiB/s]
Downloading:  71%|███████▏  | 82.0M/115M [01:02<00:20, 1.59MiB/s]
Downloading:  71%|███████▏  | 82.2M/115M [01:02<00:22, 1.47MiB/s]
Downloading:  72%|███████▏  | 82.3M/115M [01:02<00:23, 1.37MiB/s]
Downloading:  72%|███████▏  | 82.5M/115M [01:03<00:27, 1.18MiB/s]
Downloading:  72%|███████▏  | 82.6M/115M [01:03<00:27, 1.17MiB/s]
Downloading:  72%|███████▏  | 82.7M/115M [01:03<00:29, 1.11MiB/s]
Downloading:  72%|███████▏  | 82.8M/115M [01:03<00:30, 1.06MiB/s]
Downloading:  72%|███████▏  | 82.9M/115M [01:03<00:29, 1.10MiB/s]
Downloading:  72%|███████▏  | 83.1M/115M [01:03<00:31, 1.00MiB/s]
Downloading:  72%|███████▏  | 83.2M/115M [01:03<00:32, 990kiB/s]
Downloading:  72%|███████▏  | 83.3M/115M [01:03<00:31, 993kiB/s]
Downloading:  72%|███████▏  | 83.4M/115M [01:04<00:32, 989kiB/s]
Downloading:  73%|███████▎  | 83.5M/115M [01:04<00:34, 906kiB/s]
Downloading:  73%|███████▎  | 83.6M/115M [01:04<00:42, 740kiB/s]
Downloading:  73%|███████▎  | 83.6M/115M [01:04<00:45, 685kiB/s]
Downloading:  73%|███████▎  | 83.7M/115M [01:04<00:49, 638kiB/s]
Downloading:  73%|███████▎  | 83.8M/115M [01:04<00:48, 641kiB/s]
Downloading:  73%|███████▎  | 83.9M/115M [01:04<00:46, 677kiB/s]
Downloading:  73%|███████▎  | 83.9M/115M [01:04<00:49, 631kiB/s]
Downloading:  73%|███████▎  | 84.0M/115M [01:05<00:45, 677kiB/s]
Downloading:  73%|███████▎  | 84.1M/115M [01:05<00:43, 710kiB/s]
Downloading:  73%|███████▎  | 84.2M/115M [01:05<00:42, 732kiB/s]
Downloading:  73%|███████▎  | 84.3M/115M [01:05<00:41, 735kiB/s]
Downloading:  73%|███████▎  | 84.4M/115M [01:05<00:41, 732kiB/s]
Downloading:  73%|███████▎  | 84.5M/115M [01:05<00:37, 814kiB/s]
Downloading:  74%|███████▎  | 84.6M/115M [01:05<00:36, 837kiB/s]
Downloading:  74%|███████▎  | 84.7M/115M [01:05<00:34, 869kiB/s]
Downloading:  74%|███████▎  | 84.8M/115M [01:05<00:35, 842kiB/s]
Downloading:  74%|███████▍  | 84.9M/115M [01:06<00:35, 840kiB/s]
Downloading:  74%|███████▍  | 85.0M/115M [01:06<00:34, 876kiB/s]
Downloading:  74%|███████▍  | 85.0M/115M [01:06<00:36, 825kiB/s]
Downloading:  74%|███████▍  | 85.1M/115M [01:06<00:37, 807kiB/s]
Downloading:  74%|███████▍  | 85.2M/115M [01:06<00:33, 882kiB/s]
Downloading:  74%|███████▍  | 85.3M/115M [01:06<00:35, 845kiB/s]
Downloading:  74%|███████▍  | 85.4M/115M [01:06<00:34, 852kiB/s]
Downloading:  74%|███████▍  | 85.5M/115M [01:06<00:32, 920kiB/s]
Downloading:  74%|███████▍  | 85.7M/115M [01:06<00:30, 950kiB/s]
Downloading:  75%|███████▍  | 85.8M/115M [01:07<00:31, 933kiB/s]
Downloading:  75%|███████▍  | 85.8M/115M [01:07<00:31, 932kiB/s]
Downloading:  75%|███████▍  | 86.0M/115M [01:07<00:30, 938kiB/s]
Downloading:  75%|███████▍  | 86.0M/115M [01:07<00:31, 931kiB/s]
Downloading:  75%|███████▍  | 86.2M/115M [01:07<00:29, 980kiB/s]
Downloading:  75%|███████▌  | 86.3M/115M [01:07<00:32, 881kiB/s]
Downloading:  75%|███████▌  | 86.4M/115M [01:07<00:34, 831kiB/s]
Downloading:  75%|███████▌  | 86.5M/115M [01:07<00:33, 864kiB/s]
Downloading:  75%|███████▌  | 86.5M/115M [01:08<00:34, 815kiB/s]
Downloading:  75%|███████▌  | 86.6M/115M [01:08<00:34, 831kiB/s]
Downloading:  75%|███████▌  | 86.7M/115M [01:08<00:35, 806kiB/s]
Downloading:  75%|███████▌  | 86.8M/115M [01:08<00:33, 846kiB/s]
Downloading:  76%|███████▌  | 86.9M/115M [01:08<00:32, 866kiB/s]
Downloading:  76%|███████▌  | 87.0M/115M [01:08<00:29, 935kiB/s]
Downloading:  76%|███████▌  | 87.2M/115M [01:08<00:28, 982kiB/s]
Downloading:  76%|███████▌  | 87.3M/115M [01:08<00:27, 1.01MiB/s]
Downloading:  76%|███████▌  | 87.4M/115M [01:08<00:27, 992kiB/s]
Downloading:  76%|███████▌  | 87.5M/115M [01:08<00:25, 1.09MiB/s]
Downloading:  76%|███████▌  | 87.7M/115M [01:09<00:24, 1.13MiB/s]
Downloading:  76%|███████▋  | 87.8M/115M [01:09<00:24, 1.10MiB/s]
Downloading:  76%|███████▋  | 87.9M/115M [01:09<00:27, 999kiB/s]
Downloading:  77%|███████▋  | 88.0M/115M [01:09<00:23, 1.15MiB/s]
Downloading:  77%|███████▋  | 88.2M/115M [01:09<00:22, 1.18MiB/s]
Downloading:  77%|███████▋  | 88.3M/115M [01:09<00:21, 1.23MiB/s]
Downloading:  77%|███████▋  | 88.5M/115M [01:09<00:21, 1.24MiB/s]
Downloading:  77%|███████▋  | 88.6M/115M [01:09<00:19, 1.35MiB/s]
Downloading:  77%|███████▋  | 88.8M/115M [01:10<00:20, 1.30MiB/s]
Downloading:  77%|███████▋  | 88.9M/115M [01:10<00:19, 1.36MiB/s]
Downloading:  77%|███████▋  | 89.1M/115M [01:10<00:17, 1.46MiB/s]
Downloading:  78%|███████▊  | 89.3M/115M [01:10<00:19, 1.32MiB/s]
Downloading:  78%|███████▊  | 89.4M/115M [01:10<00:17, 1.44MiB/s]
Downloading:  78%|███████▊  | 89.6M/115M [01:10<00:20, 1.26MiB/s]
Downloading:  78%|███████▊  | 89.8M/115M [01:10<00:18, 1.40MiB/s]
Downloading:  78%|███████▊  | 89.9M/115M [01:10<00:19, 1.29MiB/s]
Downloading:  78%|███████▊  | 90.0M/115M [01:10<00:19, 1.28MiB/s]
Downloading:  78%|███████▊  | 90.2M/115M [01:11<00:17, 1.41MiB/s]
Downloading:  79%|███████▊  | 90.4M/115M [01:11<00:25, 950kiB/s]
Downloading:  79%|███████▊  | 90.5M/115M [01:11<00:23, 1.03MiB/s]
Downloading:  79%|███████▉  | 90.7M/115M [01:11<00:21, 1.15MiB/s]
Downloading:  79%|███████▉  | 90.8M/115M [01:11<00:21, 1.14MiB/s]
Downloading:  79%|███████▉  | 91.0M/115M [01:11<00:17, 1.38MiB/s]
Downloading:  79%|███████▉  | 91.3M/115M [01:11<00:15, 1.54MiB/s]
Downloading:  80%|███████▉  | 91.5M/115M [01:11<00:13, 1.72MiB/s]
Downloading:  80%|███████▉  | 91.7M/115M [01:12<00:13, 1.67MiB/s]
Downloading:  80%|███████▉  | 91.9M/115M [01:12<00:12, 1.83MiB/s]
Downloading:  80%|████████  | 92.1M/115M [01:12<00:12, 1.86MiB/s]
Downloading:  80%|████████  | 92.4M/115M [01:12<00:10, 2.10MiB/s]
Downloading:  81%|████████  | 92.6M/115M [01:12<00:10, 2.21MiB/s]
Downloading:  81%|████████  | 92.9M/115M [01:12<00:11, 1.94MiB/s]
Downloading:  81%|████████  | 93.2M/115M [01:12<00:09, 2.33MiB/s]
Downloading:  81%|████████▏ | 93.5M/115M [01:12<00:08, 2.53MiB/s]
Downloading:  82%|████████▏ | 93.8M/115M [01:12<00:08, 2.49MiB/s]
Downloading:  82%|████████▏ | 94.1M/115M [01:13<00:08, 2.56MiB/s]
Downloading:  82%|████████▏ | 94.4M/115M [01:13<00:07, 2.72MiB/s]
Downloading:  82%|████████▏ | 94.6M/115M [01:13<00:08, 2.40MiB/s]
Downloading:  83%|████████▎ | 95.0M/115M [01:13<00:07, 2.54MiB/s]
Downloading:  83%|████████▎ | 95.4M/115M [01:13<00:07, 2.74MiB/s]
Downloading:  83%|████████▎ | 95.6M/115M [01:13<00:07, 2.69MiB/s]
Downloading:  83%|████████▎ | 95.9M/115M [01:13<00:06, 2.77MiB/s]
Downloading:  84%|████████▎ | 96.2M/115M [01:13<00:06, 2.77MiB/s]
Downloading:  84%|████████▍ | 96.5M/115M [01:14<00:07, 2.63MiB/s]
Downloading:  84%|████████▍ | 96.8M/115M [01:14<00:07, 2.41MiB/s]
Downloading:  84%|████████▍ | 97.0M/115M [01:14<00:08, 2.02MiB/s]
Downloading:  85%|████████▍ | 97.5M/115M [01:14<00:06, 2.54MiB/s]
Downloading:  85%|████████▍ | 97.8M/115M [01:14<00:07, 2.46MiB/s]
Downloading:  85%|████████▌ | 98.0M/115M [01:14<00:06, 2.45MiB/s]
Downloading:  85%|████████▌ | 98.3M/115M [01:14<00:06, 2.53MiB/s]
Downloading:  86%|████████▌ | 98.6M/115M [01:14<00:07, 2.21MiB/s]
Downloading:  86%|████████▌ | 98.8M/115M [01:15<00:07, 2.14MiB/s]
Downloading:  86%|████████▌ | 99.2M/115M [01:15<00:06, 2.49MiB/s]
Downloading:  86%|████████▋ | 99.4M/115M [01:15<00:06, 2.27MiB/s]
Downloading:  87%|████████▋ | 99.7M/115M [01:15<00:06, 2.24MiB/s]
Downloading:  87%|████████▋ | 100M/115M [01:15<00:06, 2.34MiB/s]
Downloading:  87%|████████▋ | 100M/115M [01:15<00:05, 2.57MiB/s]
Downloading:  87%|████████▋ | 101M/115M [01:15<00:05, 2.55MiB/s]
Downloading:  88%|████████▊ | 101M/115M [01:15<00:05, 2.37MiB/s]
Downloading:  88%|████████▊ | 101M/115M [01:15<00:06, 2.32MiB/s]
Downloading:  88%|████████▊ | 101M/115M [01:16<00:07, 1.82MiB/s]
Downloading:  88%|████████▊ | 102M/115M [01:16<00:07, 1.84MiB/s]
Downloading:  89%|████████▊ | 102M/115M [01:16<00:06, 2.10MiB/s]
Downloading:  89%|████████▉ | 102M/115M [01:16<00:05, 2.48MiB/s]
Downloading:  89%|████████▉ | 103M/115M [01:16<00:05, 2.50MiB/s]
Downloading:  89%|████████▉ | 103M/115M [01:16<00:04, 2.50MiB/s]
Downloading:  90%|████████▉ | 103M/115M [01:16<00:04, 2.59MiB/s]
Downloading:  90%|████████▉ | 103M/115M [01:17<00:05, 2.09MiB/s]
Downloading:  90%|█████████ | 104M/115M [01:17<00:04, 2.43MiB/s]
Downloading:  90%|█████████ | 104M/115M [01:17<00:04, 2.55MiB/s]
Downloading:  91%|█████████ | 104M/115M [01:17<00:04, 2.38MiB/s]
Downloading:  91%|█████████ | 105M/115M [01:17<00:03, 2.71MiB/s]
Downloading:  91%|█████████ | 105M/115M [01:17<00:03, 2.53MiB/s]
Downloading:  91%|█████████▏| 105M/115M [01:17<00:04, 2.41MiB/s]
Downloading:  92%|█████████▏| 105M/115M [01:17<00:04, 2.35MiB/s]
Downloading:  92%|█████████▏| 106M/115M [01:17<00:03, 2.37MiB/s]
Downloading:  92%|█████████▏| 106M/115M [01:18<00:03, 2.36MiB/s]
Downloading:  92%|█████████▏| 106M/115M [01:18<00:03, 2.52MiB/s]
Downloading:  93%|█████████▎| 106M/115M [01:18<00:03, 2.45MiB/s]
Downloading:  93%|█████████▎| 107M/115M [01:18<00:03, 2.50MiB/s]
Downloading:  93%|█████████▎| 107M/115M [01:18<00:03, 2.37MiB/s]
Downloading:  93%|█████████▎| 107M/115M [01:18<00:03, 2.36MiB/s]
Downloading:  94%|█████████▎| 108M/115M [01:18<00:02, 2.77MiB/s]
Downloading:  94%|█████████▍| 108M/115M [01:18<00:02, 2.64MiB/s]
Downloading:  94%|█████████▍| 108M/115M [01:18<00:02, 2.44MiB/s]
Downloading:  94%|█████████▍| 108M/115M [01:19<00:02, 2.52MiB/s]
Downloading:  95%|█████████▍| 109M/115M [01:19<00:02, 2.69MiB/s]
Downloading:  95%|█████████▍| 109M/115M [01:19<00:02, 2.46MiB/s]
Downloading:  95%|█████████▌| 109M/115M [01:19<00:02, 2.41MiB/s]
Downloading:  95%|█████████▌| 110M/115M [01:19<00:02, 2.41MiB/s]
Downloading:  96%|█████████▌| 110M/115M [01:19<00:02, 2.41MiB/s]
Downloading:  96%|█████████▌| 110M/115M [01:19<00:02, 2.28MiB/s]
Downloading:  96%|█████████▌| 110M/115M [01:19<00:01, 2.34MiB/s]
Downloading:  96%|█████████▋| 111M/115M [01:20<00:01, 2.27MiB/s]
Downloading:  97%|█████████▋| 111M/115M [01:20<00:01, 2.36MiB/s]
Downloading:  97%|█████████▋| 111M/115M [01:20<00:01, 2.31MiB/s]
Downloading:  97%|█████████▋| 111M/115M [01:20<00:01, 1.94MiB/s]
Downloading:  97%|█████████▋| 112M/115M [01:20<00:02, 1.65MiB/s]
Downloading:  97%|█████████▋| 112M/115M [01:21<00:06, 458kiB/s]
Downloading:  97%|█████████▋| 112M/115M [01:22<00:06, 484kiB/s]
Downloading:  97%|█████████▋| 112M/115M [01:23<00:11, 254kiB/s]
Downloading:  98%|█████████▊| 112M/115M [01:23<00:06, 409kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:24<00:08, 281kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:24<00:07, 304kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:24<00:07, 298kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:07, 303kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:06, 328kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:06, 339kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:06, 310kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:06, 323kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:05, 339kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:25<00:05, 338kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:26<00:05, 347kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:26<00:05, 350kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:26<00:04, 367kiB/s]
Downloading:  98%|█████████▊| 113M/115M [01:26<00:04, 429kiB/s]
Downloading:  99%|█████████▊| 113M/115M [01:26<00:03, 436kiB/s]
Downloading:  99%|█████████▊| 113M/115M [01:26<00:03, 447kiB/s]
Downloading:  99%|█████████▊| 113M/115M [01:26<00:02, 584kiB/s]
Downloading:  99%|█████████▉| 114M/115M [01:26<00:01, 771kiB/s]
Downloading:  99%|█████████▉| 114M/115M [01:26<00:01, 1.05MiB/s]
Downloading:  99%|█████████▉| 114M/115M [01:27<00:00, 1.23MiB/s]
Downloading:  99%|█████████▉| 114M/115M [01:27<00:00, 1.25MiB/s]
Downloading:  99%|█████████▉| 114M/115M [01:27<00:00, 1.55MiB/s]
Downloading: 100%|█████████▉| 115M/115M [01:27<00:00, 1.54MiB/s]
Downloading: 100%|█████████▉| 115M/115M [01:27<00:00, 1.60MiB/s]
Downloading: 100%|█████████▉| 115M/115M [01:27<00:00, 1.78MiB/s]
Downloading: 100%|██████████| 115M/115M [01:27<00:00, 1.31MiB/s]

Extracting:   0%|          | 0/216 [00:00<?, ?file/s]
Extracting:   4%|▎         | 8/216 [00:02<00:58,  3.57file/s]
Extracting:   6%|▋         | 14/216 [00:06<01:42,  1.98file/s]
Extracting:  17%|█▋        | 36/216 [00:06<00:25,  7.15file/s]
Extracting:  25%|██▍       | 53/216 [00:06<00:13, 12.49file/s]
Extracting:  32%|███▏      | 70/216 [00:06<00:07, 19.52file/s]
Extracting:  39%|███▉      | 85/216 [00:06<00:04, 27.00file/s]
Extracting:  48%|████▊     | 104/216 [00:07<00:02, 39.66file/s]
Extracting:  56%|█████▌    | 120/216 [00:07<00:01, 50.34file/s]
Extracting:  62%|██████▎   | 135/216 [00:07<00:01, 59.83file/s]
Extracting:  70%|██████▉   | 151/216 [00:07<00:00, 69.85file/s]
Extracting:  81%|████████  | 174/216 [00:07<00:00, 95.22file/s]
Extracting:  88%|████████▊ | 190/216 [00:07<00:00, 101.59file/s]
Extracting:  95%|█████████▍| 205/216 [00:07<00:00, 104.59file/s]
Extracting: 100%|██████████| 216/216 [00:07<00:00, 27.13file/s]
Extracted to /home/kemove/yyz/av-gihub/tutorials/mmwave_PC_source/
using dataset: radHAR DATA

Visualize the voxel image

In[3]:

from matplotlib import pyplot as plt
# Example of the samples in the dataset
index = 9  # Randomly select an index
voxels,activity = train_dataset.__getitem__(index)


print(voxels.shape, type(voxels))

plt.figure(figsize=(10,6))
plt.imshow(voxels[0].transpose(1,2,0).mean(-1))
plt.title("Voxel image for activity: {}".format(activity))
plt.show()
Voxel image for activity: 0
(60, 10, 32, 32) <class 'numpy.ndarray'>

Create model

raHAR utilizes MLP-based model as a baseline har method. From model.har, we can import desired har model designed for mmWave PC. The model parameter for har_MLP reimplemented for radHAR is as follows:

In[4]:

from pysensing.mmwave.PC.model.har import har_MLP
model = har_MLP(dataset="radHAR", num_classes=5)
print(model)
har_MLP(
  (fc): Sequential(
    (0): Linear(in_features=614400, out_features=64, bias=True)
    (1): ReLU()
    (2): Dropout(p=0.5, inplace=False)
    (3): Linear(in_features=64, out_features=64, bias=True)
    (4): ReLU()
    (5): Dropout(p=0.5, inplace=False)
    (6): Linear(in_features=64, out_features=64, bias=True)
    (7): ReLU()
    (8): Dropout(p=0.5, inplace=False)
  )
  (classifier): Sequential(
    (0): Linear(in_features=64, out_features=5, bias=True)
    (1): Softmax(dim=-1)
  )
)

Model Train

pysensing library support quick training of model with the following steps. The training interface incorporates pytorch loss functions, optimizers and dataloaders to facilate training. An example is provided for how to define the aforemetioned terms.

# In[5]:

# Create pytorch dataloaders
train_loader = torch.utils.data.DataLoader(train_dataset, shuffle=True, batch_size=128, num_workers=16)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=128, shuffle=False, num_workers=16)


# Define pytorch loss function as criterion
criterion = nn.CrossEntropyLoss()


# Define pytorch optimizer for training
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)


# GPU acceleration with cuda
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

A quick training using har_train. The resulted model parameters will be saved into “train_{num_epochs}.pth”.

In[6]:

# Pysensing training interface
from pysensing.mmwave.PC.inference.har import har_train
# har_train(model, train_loader, num_epochs=1, optimizer=optimizer, criterion=criterion, device=device)

Model inference

Load the pretrained model, e.g. from https://pysensing.oss-ap-southeast-1.aliyuncs.com/pretrain/mmwave_pc/HAR/radHAR_MLP.pth , and perform human action recognition!

In[7]:

# load pretrained model
from pysensing.mmwave.PC.inference import load_pretrain
model = load_pretrain(model, "radHAR", "har_MLP").to(device)
model.eval()
Use pretrained model!

har_MLP(
  (fc): Sequential(
    (0): Linear(in_features=614400, out_features=64, bias=True)
    (1): ReLU()
    (2): Dropout(p=0.5, inplace=False)
    (3): Linear(in_features=64, out_features=64, bias=True)
    (4): ReLU()
    (5): Dropout(p=0.5, inplace=False)
    (6): Linear(in_features=64, out_features=64, bias=True)
    (7): ReLU()
    (8): Dropout(p=0.5, inplace=False)
  )
  (classifier): Sequential(
    (0): Linear(in_features=64, out_features=5, bias=True)
    (1): Softmax(dim=-1)
  )
)

Test the model on testing dataset.

In[8]:

from pysensing.mmwave.PC.inference.har import har_test
# har_test(model, test_loader, criterion=criterion, device=device)

Model inference on sample and deep feature embedding of input modality in HAR task.

In[9]:

idx = 5
pc, label= test_dataset.__getitem__(idx)
print(pc.shape)
pc = torch.tensor(pc).unsqueeze(0).float().to(device)
predicted_result = model(pc)
print("The predicted gesture is {}, while the ground truth is {}".format(label,torch.argmax(predicted_result).cpu()))

# Deep feature embedding
from pysensing.mmwave.PC.inference.embedding import embedding
emb = embedding(input = pc, model=model, dataset_name = "radHAR", model_name = "har_MLP", device=device)
print("The shape of feature embedding is: ", emb.shape)
(60, 10, 32, 32)
The predicted gesture is 0, while the ground truth is 0
The shape of feature embedding is:  torch.Size([1, 64])

Total running time of the script: (1 minutes 45.125 seconds)

Gallery generated by Sphinx-Gallery

Docs

Access documentation for Pysensing

View Docs

Tutorials

Get started with tutorials and examples

View Tutorials

Get Started

Find resources and how to start using pysensing

View Resources