Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error at Training the re-identification model. AssertionError: [!] Dataset not found: None #146

Open
ducmanhnguyen opened this issue Sep 2, 2021 · 4 comments

Comments

@ducmanhnguyen
Copy link

Hi,
At the step Training the re-identification model we ran:

python experiments/scripts/train_reid.py

After finish load the Train set, when it start to load the Val, the error came out as bellow:

INFO - main - [*] Val:
ERROR - train_reid - Failed after 0:29:46!
Traceback (most recent calls WITHOUT Sacred internals):
File "experiments/scripts/train_reid.py", line 82, in main
db_val = Datasets(db_val['split'], dataset_kwargs)
File "/root/tracking_wo_bnw/src/tracktor/datasets/factory.py", line 72, in init
assert dataset in _sets, f"[!] Dataset not found: {dataset}"
AssertionError: [!] Dataset not found: None

After check the config file provided at experiments/cfgs/reid.yaml I found out the the split of db_val is set as None . But I suppose it should be some valid name here.

After read through the code of factor.py , the reid set are defined from line 37-39, and only defined for train set, which not include the None:

for split in ['train', '02', '04', '05', '09', '10', '11','13',]:
name = f'mot_reid_{split}'
_sets[name] = (lambda *args, split=split: MOTreIDWrapper(split, *args))

Please help us check what happened!

Thank you very much!

@tjusyy
Copy link

tjusyy commented Sep 4, 2021

Hi,
At the step Training the re-identification model we ran:

python experiments/scripts/train_reid.py

After finish load the Train set, when it start to load the Val, the error came out as bellow:

INFO - main - [*] Val:
ERROR - train_reid - Failed after 0:29:46!
Traceback (most recent calls WITHOUT Sacred internals):
File "experiments/scripts/train_reid.py", line 82, in main
db_val = Datasets(db_val['split'], dataset_kwargs)
File "/root/tracking_wo_bnw/src/tracktor/datasets/factory.py", line 72, in init
assert dataset in _sets, f"[!] Dataset not found: {dataset}"
AssertionError: [!] Dataset not found: None

After check the config file provided at experiments/cfgs/reid.yaml I found out the the split of db_val is set as None . But I suppose it should be some valid name here.

After read through the code of factor.py , the reid set are defined from line 37-39, and only defined for train set, which not include the None:

for split in ['train', '02', '04', '05', '09', '10', '11','13',]:
name = f'mot_reid_{split}'
_sets[name] = (lambda *args, split=split: MOTreIDWrapper(split, *args))

Please help us check what happened!

Thank you very much!

Hello, I have the same problem as you.
could you please tell me that have you solved it?

@timmeinhardt
Copy link
Collaborator

timmeinhardt commented Sep 6, 2021

The MOT17 dataset has no validation set. So when training on the entire training set you can not validate. For the code to work just set:

db_val:
  split: mot_reid_train

Edit: I just pushed the newest version which works with a new reid module based on torchreid.

@ducmanhnguyen
Copy link
Author

Thank you so much for your reply!

So basically, put the val set name as mot_reid_train is just like a trick to pass the error, and the training code will not run the validation at all, right? so I could set it as mot_reid_02, mot_reid_04 , etc. as long as it in the sets to not trigger the assertion error. is it true?

@timmeinhardt
Copy link
Collaborator

I should run the validation. But you are validating the same thing as you are training on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants