code: def _conv_general_shape_tuple(self, lhs_shape, rhs_shape, window_strides,
                                  padding, dimension_numbers):
      
      lhs_perm, rhs_perm, out_perm = self._conv_general_permutations(
          dimension_numbers)
      lhs_trans = onp.take(lhs_shape, lhs_perm)
      rhs_trans = onp.take(rhs_shape, rhs_perm)
      out_trans = self._conv_shape_tuple(
          lhs_trans, rhs_trans, window_strides, padding)
      return tuple(onp.take(out_trans, onp.argsort(out_perm)))
docs: Generalized computation of conv shape.