Hi @ptrblck , Thank you for the helping.
I try to what you saying and here is the debugging result.
I did “print(type(labels))” in train function and test function.
When I did in train, It worked well. (before and after to() type print ‘torch.Tensor’)
But, in test function, It wasn’t.
Until 59s, It worked well.(Print 13 times like below)
CatDataset print → label type : class ‘str’ (data_path label)->class ‘int’(label)
Test print → labels type : <class ‘torch.Tensor’> → <class ‘torch.Tensor’>
And after 59s, It print like below.
CatDataset print → label type : class ‘str’ (data_path label)->class ‘str’(label)
Test print → labels type : <class ‘Tuple’’>
I’m not sure which point make it to change tuple.
Here is my debug result in test.
data_path label <class 'str'>
label <class 'int'>
...
first labels <class 'torch.Tensor'>
second labels <class 'torch.Tensor'>
tensor([[ 5.1988, -10.0191, 5.5972],
[ 5.4772, -8.9061, 4.4289],
...
[ 2.7645, -6.2371, 3.9978]])
...
x 13 times
...
data_path label <class 'str'>
label <class 'str'>
first labels<class 'torch.Tensor'>
second labels<class 'torch.Tensor'>
tensor([[-2.4606, 4.5739, -2.4098],
[-1.8784, 4.2095, -2.1987]])
first labels <class 'tuple'>
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-30-b1da10816353> in <module>()
----> 1 test(model, test_loader, device)
<ipython-input-28-297ea79abffe> in test(model, data_loader, device)
10 imgs = imgs.to(device)
11 print("first labels",type(labels))
---> 12 labels = labels.to(device)
13 print("second labels",type(labels))
AttributeError: 'tuple' object has no attribute 'to'