From a4fb1580b3b04d0ee49236beed4cecc27d5c0483 Mon Sep 17 00:00:00 2001 From: Justin Date: Sat, 28 Dec 2019 12:57:59 -0600 Subject: [PATCH 1/4] Fixed UCF101 Bug --- torchvision/datasets/ucf101.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/torchvision/datasets/ucf101.py b/torchvision/datasets/ucf101.py index 43d8124bd4b..5affc15a3c1 100644 --- a/torchvision/datasets/ucf101.py +++ b/torchvision/datasets/ucf101.py @@ -91,7 +91,8 @@ def _select_fold(self, video_list, annotation_path, fold, train): data = [x[0] for x in data] selected_files.extend(data) selected_files = set(selected_files) - indices = [i for i in range(len(video_list)) if video_list[i][len(self.root) + 1:] in selected_files] + #Remove root directory from selected_files, if the resulting video is in selected_files, add its index + indices = [i for i in range(len(video_list)) if video_list[i][len(self.root) + 0:] in selected_files] return indices def __len__(self): From b1507b9bbc70691b31f710a2634babb2ceda5cce Mon Sep 17 00:00:00 2001 From: Justin Date: Sat, 28 Dec 2019 13:33:06 -0600 Subject: [PATCH 2/4] Fixed path issues for UCF --- torchvision/datasets/ucf101.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/torchvision/datasets/ucf101.py b/torchvision/datasets/ucf101.py index 5affc15a3c1..b0ff31543c9 100644 --- a/torchvision/datasets/ucf101.py +++ b/torchvision/datasets/ucf101.py @@ -1,5 +1,6 @@ import glob import os +from pathlib import Path from .utils import list_dir from .folder import make_dataset @@ -91,8 +92,11 @@ def _select_fold(self, video_list, annotation_path, fold, train): data = [x[0] for x in data] selected_files.extend(data) selected_files = set(selected_files) - #Remove root directory from selected_files, if the resulting video is in selected_files, add its index - indices = [i for i in range(len(video_list)) if video_list[i][len(self.root) + 0:] in selected_files] + indices = [] + for i in range(len(video_list)): + path = Path(video_list[i]) + if str(path.relative_to(path.parent.parent)) in selected_files: + indices.append(i) return indices def __len__(self): From 1c90c43e9ee1e9cd4671872415d9ea537e6f5854 Mon Sep 17 00:00:00 2001 From: Justin Date: Sat, 4 Jan 2020 11:33:10 -0600 Subject: [PATCH 3/4] transform images in video and added changes to hmdb51 --- torchvision/datasets/hmdb51.py | 17 ++++++++++++++--- torchvision/datasets/ucf101.py | 11 ++++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/torchvision/datasets/hmdb51.py b/torchvision/datasets/hmdb51.py index bd06ea6e5c9..3cb4547b82e 100644 --- a/torchvision/datasets/hmdb51.py +++ b/torchvision/datasets/hmdb51.py @@ -1,8 +1,11 @@ import glob import os +from pathlib import Path + +import torch -from .utils import list_dir from .folder import make_dataset +from .utils import list_dir from .video_utils import VideoClips from .vision import VisionDataset @@ -99,7 +102,11 @@ def _select_fold(self, video_list, annotation_path, fold, train): data = [x[0] for x in data if int(x[1]) == target_tag] selected_files.extend(data) selected_files = set(selected_files) - indices = [i for i in range(len(video_list)) if os.path.basename(video_list[i]) in selected_files] + indices = [] + for i in range(len(video_list)): + path = Path(video_list[i]) + if str(path.relative_to(path.parent.parent)) in selected_files: + indices.append(i) return indices def __len__(self): @@ -110,6 +117,10 @@ def __getitem__(self, idx): label = self.samples[self.indices[video_idx]][1] if self.transform is not None: - video = self.transform(video) + transformed_video = [] + for counter, image in enumerate(video): + image = self.transform(image) + transformed_video.append(image) + video = torch.stack(transformed_video) return video, audio, label diff --git a/torchvision/datasets/ucf101.py b/torchvision/datasets/ucf101.py index b0ff31543c9..e8b4ecd6e8e 100644 --- a/torchvision/datasets/ucf101.py +++ b/torchvision/datasets/ucf101.py @@ -2,8 +2,10 @@ import os from pathlib import Path -from .utils import list_dir +import torch + from .folder import make_dataset +from .utils import list_dir from .video_utils import VideoClips from .vision import VisionDataset @@ -98,7 +100,6 @@ def _select_fold(self, video_list, annotation_path, fold, train): if str(path.relative_to(path.parent.parent)) in selected_files: indices.append(i) return indices - def __len__(self): return self.video_clips.num_clips() @@ -107,6 +108,10 @@ def __getitem__(self, idx): label = self.samples[self.indices[video_idx]][1] if self.transform is not None: - video = self.transform(video) + transformed_video = [] + for counter, image in enumerate(video): + image = self.transform(image) + transformed_video.append(image) + video = torch.stack(transformed_video) return video, audio, label From 163b65f92e1bd2dcc64ad5ec755a528d4964c296 Mon Sep 17 00:00:00 2001 From: Justin Date: Sat, 4 Jan 2020 11:35:27 -0600 Subject: [PATCH 4/4] Added transforms to kinetics --- torchvision/datasets/kinetics.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/torchvision/datasets/kinetics.py b/torchvision/datasets/kinetics.py index 07db91cc195..8066edeca8c 100644 --- a/torchvision/datasets/kinetics.py +++ b/torchvision/datasets/kinetics.py @@ -1,5 +1,5 @@ -from .utils import list_dir from .folder import make_dataset +from .utils import list_dir from .video_utils import VideoClips from .vision import VisionDataset @@ -74,6 +74,10 @@ def __getitem__(self, idx): label = self.samples[video_idx][1] if self.transform is not None: - video = self.transform(video) + transformed_video = [] + for counter, image in enumerate(video): + image = self.transform(image) + transformed_video.append(image) + video = torch.stack(transformed_video) return video, audio, label