code: def test_memory_efficient_logic(self):
      self._test_logic_prepare()
      # =================this is baseline class===============
      cpu_sum_base = []
      for p in self._generate_params(self.MEoptim_c.param_groups):
          cpu_sum = float(p.data.float().sum())
          cpu_sum_base.append(cpu_sum)
      self._test_memory_efficient_logic_baseline()
      for p in self._generate_params(self.MEoptim_c.param_groups):
          cpu_sum_e = float(p.data.float().sum())
          cpu_sum_base.append(cpu_sum_e)
  
      # =================this is experiment class==================
      cpu_sum_exp = []
      for p in self._generate_params(self.MEoptim.param_groups):
          cpu_sum_x = float(p.data.float().sum())
          cpu_sum_exp.append(cpu_sum_x)
      self._test_memory_efficient_logic_exp()
      for p in self._generate_params(self.MEoptim.param_groups):
          cpu_sum_p = float(p.data.float().sum())
          cpu_sum_exp.append(cpu_sum_p)
  
      for i, j in zip(cpu_sum_base, cpu_sum_exp):
          self.assertEqual(i, j)
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import copy
  import unittest
  import torch
  from pytext.optimizer import fp16_optimizer
  from torch.autograd import Variable
label_desc: Use image node_id 16 for calling the TestFp16Optimizer obj's underlying member method code with example usage: obj.test_memory_efficient_logic() without return types