def testAsArray(self): for a, dtype in itertools.product(self.all_arrays, self.all_types): self.match(array_ops.asarray(a, dtype=dtype), np.asarray(a, dtype=dtype)) zeros_list = array_ops.zeros(5) # Same instance is returned if no dtype is specified and input is ndarray. self.assertIs(array_ops.asarray(zeros_list), zeros_list) # Different instance is returned if dtype is specified and input is ndarray. self.assertIsNot(array_ops.asarray(zeros_list, dtype=int), zeros_list)
def trace(a, offset=0, axis1=0, axis2=1, dtype=None): # pylint: disable=missing-docstring if dtype: dtype = utils.result_type(dtype) a = array_ops.asarray(a, dtype).data if offset == 0: a_shape = a.shape if a_shape.rank is not None: rank = len(a_shape) if (axis1 == -2 or axis1 == rank - 2) and (axis2 == -1 or axis2 == rank - 1): return utils.tensor_to_ndarray(tf.linalg.trace(a)) a = array_ops.diagonal(a, offset, axis1, axis2) return array_ops.sum(a, -1, dtype)
def _scalar(tf_fn, x, promote_to_float=False): """Computes the tf_fn(x) for each element in `x`. Args: tf_fn: function that takes a single Tensor argument. x: array_like. Could be an ndarray, a Tensor or any object that can be converted to a Tensor using `tf.convert_to_tensor`. promote_to_float: whether to cast the argument to a float dtype (`dtypes.default_float_type`) if it is not already. Returns: An ndarray with the same shape as `x`. The default output dtype is determined by `dtypes.default_float_type`, unless x is an ndarray with a floating point type, in which case the output type is same as x.dtype. """ x = array_ops.asarray(x) if promote_to_float and not np.issubdtype(x.dtype, np.inexact): x = x.astype(dtypes.default_float_type()) return utils.tensor_to_ndarray(tf_fn(x.data))
def meshgrid(*xi, **kwargs): """This currently requires copy=True and sparse=False.""" sparse = kwargs.get('sparse', False) if sparse: raise ValueError('tf.numpy doesnt support returning sparse arrays yet') copy = kwargs.get('copy', True) if not copy: raise ValueError('tf.numpy only supports copy=True') indexing = kwargs.get('indexing', 'xy') xi = [array_ops.asarray(arg).data for arg in xi] kwargs = {'indexing': indexing} outputs = tf.meshgrid(*xi, **kwargs) outputs = [utils.tensor_to_ndarray(output) for output in outputs] return outputs