class_docstr: Test if some models that were pretrained with APEX.
  
  They should load on CPU and GPU, even if the user doesn't have apex installed.
code: def test_fp16(self):
      # nice clean fallback if no fp16
      valid, test = testing_utils.eval_model(
          dict(
              model_file="zoo:unittest/apex_fp16/model",
              task="integration_tests:nocandidate",
              num_examples=4,
          )
      )
      assert valid["accuracy"] == 1.0
      assert test["accuracy"] == 1.0
  
      # also no problem if we explicitly turn it on
      valid, test = testing_utils.eval_model(
          dict(
              model_file="zoo:unittest/apex_fp16/model",
              task="integration_tests:nocandidate",
              num_examples=4,
              fp16=True,
          )
      )
      assert valid["accuracy"] == 1.0
      assert test["accuracy"] == 1.0
  
      with self.assertRaises(RuntimeError):
          # we will have some fp16 tokens missing if we turn of fp16
          # note: this test could be made unnecessary in the future if we improve
          # the fp16 logic
          valid, test = testing_utils.eval_model(
              dict(
                  model_file="zoo:unittest/apex_fp16/model",
                  task="integration_tests:nocandidate",
                  num_examples=4,
                  fp16=False,
              )
          )
  
      valid, test = testing_utils.eval_model(
          dict(
              model_file="zoo:unittest/apex_fp16/model",
              task="integration_tests:nocandidate",
              num_examples=4,
              force_fp16_tokens=False,
          )
      )
      assert valid["accuracy"] == 1.0
      assert test["accuracy"] == 1.0
  
imports: import unittest
  from parlai.core.agents import create_agent
  from parlai.core.params import ParlaiParser
  import parlai.utils.testing
label_desc: Use image node_id 2 for calling the TestNoApex obj's underlying member method code with example usage: obj.test_fp16() without return types