code: def test_powt(self, n, m, d, gc, dc, seed):
      np.random.seed(seed)
      X = np.random.rand(n, m, d).astype(np.float32) + 1.0
      Y = np.random.rand(n, m, d).astype(np.float32) + 2.0
  
      def powt_op(X, Y):
          return [np.power(X, Y)]
  
      # two gradients Y*X^(Y-1) and X^Y * ln(X)
      def powt_grad(g_out, outputs, fwd_inputs):
          [X, Y] = fwd_inputs
          Z = outputs[0]
          return [Y * np.power(X, Y - 1), Z * np.log(X)] * g_out
  
      op = core.CreateOperator("Pow", ["X", "Y"], ["Z"])
  
      self.assertReferenceChecks(
          device_option=gc,
          op=op,
          inputs=[X, Y],
          reference=powt_op,
          output_to_grad="Z",
          grad_reference=powt_grad,
          ensure_outputs_are_inferred=True,
      )
  
imports: from caffe2.python import core, workspace
  from hypothesis import given, assume, settings
  import caffe2.python.hypothesis_test_util
  import hypothesis.strategies
  import numpy
  import unittest
label_desc: Use image node_id 4 for calling the TestElementwiseOps obj's underlying member method code with example usage: obj.test_powt(n, m, d, gc, dc, seed) and returns: list, unknown