code: def test_multiple_epoch_does_recompile():
      length = 60
      batch_size = 8
      with NamedTemporaryFile() as handle:
          file_name = handle.name
          dataset = DummyDataset(length)
          writer = DatasetWriter(
              file_name, {"index": IntField(), "value": FloatField()}
          )
  
          writer.from_indexed_dataset(dataset)
  
          Compiler.set_enabled(True)
  
          loader = Loader(
              file_name,
              batch_size,
              num_workers=min(5, cpu_count()),
              seed=17,
              recompile=True,
              pipelines={
                  "value": [FloatDecoder(), Doubler(), ToTensor()]
              },
          )
  
          it = iter(loader)
          code = loader.code
          it = iter(loader)
          new_code = loader.code
          assert_that(code).is_not_equal_to(new_code)
  
imports: from dataclasses import replace
  import torch
  from ffcv.pipeline.allocation_query import AllocationQuery
  from ffcv.pipeline.compiler import Compiler
  import numpy
  from typing import Callable
  from assertpy import assert_that
  from torch.utils.data import Dataset
  import logging
  import os
  from assertpy import assert_that
  from tempfile import NamedTemporaryFile
  from ffcv.pipeline.operation import Operation
  from ffcv.transforms.ops import ToTensor
  from multiprocessing import cpu_count
  from ffcv.writer import DatasetWriter
  from ffcv.reader import Reader
  from ffcv.loader import Loader
  from ffcv.fields import IntField, FloatField, BytesField
  from ffcv.fields.basics import FloatDecoder
  from ffcv.pipeline.state import State
  from test_writer import DummyDataset
label_desc: Use image node_id 4 for calling a global function with example usage: test_multiple_epoch_does_recompile() without return types