mpc001 / Lipreading_using_Temporal_Convolutional_Networks

ICASSP'22 Training Strategies for Improved Lip-Reading; ICASSP'21 Towards Practical Lipreading with Distilled and Efficient Models; ICASSP'20 Lipreading using Temporal Convolutional Networks
Other
395 stars 102 forks source link

IndexError: list index out of range #16

Closed evialv closed 3 years ago

evialv commented 3 years ago

Hi, I'm trying to compile main and I get the IndexError. My datasets folder consists of only the ABOUT folder(npz format) due to memory restrictions and my labels folder only the txt provided with only the ABOUT word inside. I try to compile and get the following error. I tried to figure it out with debugging but no luck. Have you faced an issue like this one before?

Thank you

To be more specific :

Model and log being saved in: D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\train_logs\tcn Traceback (most recent call last): File "D:/new_lipreading/Lipreading_using_Temporal_Convolutional_Networks/main.py", line 260, in main() File "D:/new_lipreading/Lipreading_using_Temporal_Convolutional_Networks/main.py", line 202, in main dset_loaders = get_data_loaders(args) File "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataloaders.py", line 52, in get_data_loaders ) for partition in ['train', 'val', 'test']} File "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataloaders.py", line 52, in ) for partition in ['train', 'val', 'test']} File "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataset.py", line 30, in init self.load_dataset() File "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataset.py", line 39, in load_dataset self._get_files_for_partition() File "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataset.py", line 76, in _get_files_for_partition self._data_files = [ f for f in self._data_files if f.split('/')[self.label_idx] in self._labels ] File "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataset.py", line 76, in self._data_files = [ f for f in self._data_files if f.split('/')[self.label_idx] in self._labels ] IndexError: list index out of range

Process finished with exit code 1

mpc001 commented 3 years ago

Hi,

thanks for your interests!

At file "D:\new_lipreading\Lipreading_using_Temporal_Convolutional_Networks\lipreading\dataset.py", can you try to change the path separator / need change to \ to see if it works?

evialv commented 3 years ago

Hello,

Thank you for your response, unfortunately the path to dataset.py is automatically generated via the import in the main.py file ---> from lipreading.dataloaders import get_data_loaders, get_preprocessing_pipelines since these functions belong to dataset.py so I didn't hardcode the path to the file anywhere

mpc001 commented 3 years ago

Hi,

At line 76, I split the path to get the filename. I assume you are parsing a Windows path, where the pathnames are formatted differently from Unix. It seems that no item could be matched to the list self._labels. Can you please check it?

evialv commented 3 years ago

Great! Yes the path splitting was the issue (replaced / with \ since as you mentioned paths are different in Windows). Thank you for your help