code: def test_checkpoint_eval():
      model = nn.Sequential(nn.Linear(1, 1))
      model = Pipe(model, balance=[1], devices=["cpu"], chunks=2)
      input = torch.rand(2, 1)
  
      def find_grad_fn(grad_fn, name):
          if grad_fn is None:
              return False
          if grad_fn.__class__.__name__ == name:
              return True
          for next_grad_fn, _ in grad_fn.next_functions:
              if find_grad_fn(next_grad_fn, name):
                  return True
          return False
  
      model.train()
      train_output = model(input)
      assert find_grad_fn(train_output.grad_fn, "CheckpointBackward")
      assert find_grad_fn(train_output.grad_fn, "RecomputeBackward")
  
      model.eval()
      eval_output = model(input)
      assert not find_grad_fn(eval_output.grad_fn, "CheckpointBackward")
      assert not find_grad_fn(eval_output.grad_fn, "RecomputeBackward")
  
imports: from collections import OrderedDict
  from copy import deepcopy
  import time
  import pytest
  import torch
  from torch import nn
  from fairscale.nn.pipe import Pipe
label_desc: Use image node_id 13 for calling a global function with example usage: test_checkpoint_eval() and returns: False, False, True, True