I’m trying to modify the CIFAR10 class in torchivision.datasets (which is inherited from Dataset class).
What I did is just add a member variable self.niter=0 in __init__ method, and add 1 at when __getitem__  is called  by adding one line self.niter+=1
Then, I printed self.niter and index in the __getitem__ for 10 epochs (I used only 90 data and batch_size 10 for debugging). I found that the self.niter seems to be initialized to 0 at every epoch as follows.
('Epoch: ', 0)
index:  2 , niter:  0
index:  5 , niter:  1
index:  1 , niter:  2
index:  4 , niter:  3
index:  7 , niter:  4
index:  3 , niter:  5
index:  6 , niter:  6
index:  0 , niter:  7
('Epoch: ', 1)
index:  3 , niter:  0
index:  2 , niter:  1
index:  6 , niter:  2
index:  5 , niter:  3
index:  0 , niter:  4
index:  1 , niter:  5
index:  7 , niter:  6
index:  4 , niter:  7
('Epoch: ', 2)
index:  4 , niter:  0
index:  6 , niter:  1
index:  3 , niter:  2
index:  5 , niter:  3
index:  1 , niter:  4
index:  2 , niter:  5
index:  7 , niter:  6
index:  0 , niter:  7
('Epoch: ', 3)
index:  0 , niter:  0
index:  2 , niter:  1
index:  7 , niter:  2
index:  4 , niter:  3
index:  1 , niter:  4
index:  3 , niter:  5
index:  6 , niter:  6
index:  5 , niter:  7

...

('Epoch: ', 9)
index:  1 , niter:  0
index:  5 , niter:  1
index:  0 , niter:  2
index:  6 , niter:  3
index:  7 , niter:  4
index:  3 , niter:  5
index:  2 , niter:  6
index:  4 , niter:  7

What I expected was the self.niter is getting larger without any bound. I don’t know why it is like that even though I don’t add any line to initialize it. Is there any way I can make it not to be initialized?