Note
Go to the end to download the full example code.
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()

(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)