import tensorflow as tf

      tf.set_random_seed(93820985)
      p = self._testParams()
      mdl = p.Instantiate()
      mdl.FPropDefaultTheta()
      decoder_theta = mdl._MakeDecoderTheta(theta=mdl.theta, input_batch=None)
      mdl.BProp()
      self.assertEqual(decoder_theta, mdl.theta.decoder)

  def testFProp(self):
    with self.session(use_gpu=False):
      tf.set_random_seed(93820985)
      p = self._testParams()
      mdl = p.Instantiate()
      mdl.FPropDefaultTheta()
      tf.global_variables_initializer().run()
      test_utils.CompareToGoldenSingleFloat(self, 4.472597, mdl.loss.eval())

      actual_var_names = [_.name for _ in tf.all_variables()]
      print('all vars \n', '\n'.join(actual_var_names))
      expected_var_names = [
          'global_step:0', 'test_mdl/enc/conv_L0/w/var:0',
          'test_mdl/enc/conv_L0/beta/var:0', 'test_mdl/enc/conv_L0/gamma/var:0',
          'test_mdl/enc/conv_L0/moving_mean/var:0',
          'test_mdl/enc/conv_L0/moving_variance/var:0',
          'test_mdl/enc/conv_L1/w/var:0', 'test_mdl/enc/conv_L1/beta/var:0',
          'test_mdl/enc/conv_L1/gamma/var:0',
          'test_mdl/enc/conv_L1/moving_mean/var:0',
          'test_mdl/enc/conv_L1/moving_variance/var:0',
