code: def testLogSoftmax(self):
      x_shape = [5, 10]
      x_np = np.random.randn(*x_shape).astype(np.float32)
      y_np = self._log_softmax(x_np)
      x_wt = _get_weak_tensor(x_np)
      y_wt = nn_ops.log_softmax_v2(x_wt)
      y_tf_np = self.evaluate(y_wt)
      eps = 1e-3
  
      self.assertIsInstance(y_wt, weak_tensor.WeakTensor)
      self.assertAllClose(y_tf_np, y_np, eps)
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import test_util
  from tensorflow.python.framework import weak_tensor
  from tensorflow.python.ops import gradient_checker_v2
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_impl
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import weak_tensor_ops
  from tensorflow.python.ops import weak_tensor_test_util
  import tensorflow.python.ops.nn_grad
  from tensorflow.python.platform import test
label_desc: Use image node_id 2 for calling the LogSoftmaxTest obj's underlying member method code with example usage: obj.testLogSoftmax() without return types