diff --git a/src/taggingbackends/data/dataset.py b/src/taggingbackends/data/dataset.py
index 74c39aca8936d9a7db4be84b7f7992905a975130..0700b0ac2795c3b941b220f1a0ff5568bbc5990c 100644
--- a/src/taggingbackends/data/dataset.py
+++ b/src/taggingbackends/data/dataset.py
@@ -202,7 +202,11 @@ class LarvaDataset:
         elif subset.startswith("test"):
             dataset = self.test_set
         if nbatches == "all":
-            nbatches = len(dataset)
+            if isinstance(dataset, itertools.cycle):
+                logging.warning("drawing unlimited number of batches from circular dataset")
+                nbatches = np.inf
+            else:
+                nbatches = len(dataset)
         try:
             while 0 < nbatches:
                 nbatches -= 1