表題の通り、pytorchのtorch.utils.data.DataLoaderは無限イテレータに対応していない。以下でそれを確かめる。
import torch.utils.data
def data_generator():
while True:
yield torch.Tensor([1,2,3])
dataloader = torch.utils.data.DataLoader(my_data, batch_size=2)
for i, z in enumerate(dataloader):
print(z)
if i > 10:
break
上のコードを実行すると次のようになる。
TypeError: object of type 'generator' has no len()
len()
を持っていないとダメみたいです。動きませんね。