Example #1
0
 def testRank(self):
   rank_op = lambda x: array_ops.rank_internal(x, optimize=False)
   for dtype in self.numeric_types:
     self._assertOpOutputMatchesExpected(
         rank_op, dtype(7), expected=np.int32(0))
     self._assertOpOutputMatchesExpected(
         rank_op, np.array([[], []], dtype=dtype), expected=np.int32(2))
     self._assertOpOutputMatchesExpected(
         rank_op, np.array([-1, 1], dtype=dtype), expected=np.int32(1))
     self._assertOpOutputMatchesExpected(
         rank_op, np.array([[-1, 1]], dtype=dtype), expected=np.int32(2))
     self._assertOpOutputMatchesExpected(
         rank_op,
         np.array([[-1], [1], [4]], dtype=dtype),
         expected=np.int32(2))
Example #2
0
 def testRank(self):
   rank_op = lambda x: array_ops.rank_internal(x, optimize=False)
   for dtype in self.numeric_types:
     self._assertOpOutputMatchesExpected(
         rank_op, dtype(7), expected=np.int32(0))
     self._assertOpOutputMatchesExpected(
         rank_op, np.array([[], []], dtype=dtype), expected=np.int32(2))
     self._assertOpOutputMatchesExpected(
         rank_op, np.array([-1, 1], dtype=dtype), expected=np.int32(1))
     self._assertOpOutputMatchesExpected(
         rank_op, np.array([[-1, 1]], dtype=dtype), expected=np.int32(2))
     self._assertOpOutputMatchesExpected(
         rank_op,
         np.array([[-1], [1], [4]], dtype=dtype),
         expected=np.int32(2))
Example #3
0
    def testRank(self):
        tf_val = tf.rank(tf.constant(0.0, shape=[1, 2, 3]))
        c_val = tf.contrib.util.constant_value(tf_val)

        self.assertEqual(np.ndarray, type(c_val))
        self.assertEqual((), c_val.shape)
        self.assertEqual(3, c_val)

        # Repeat test using array_ops.rank_internal to avoid the optimization that
        # happens in the rank function.
        tf_val = array_ops.rank_internal(tf.constant(0.0, shape=[1, 2, 3]),
                                         optimize=False)
        c_val = tf.contrib.util.constant_value(tf_val)

        self.assertEqual(np.ndarray, type(c_val))
        self.assertEqual((), c_val.shape)
        self.assertEqual(3, c_val)
        self.assertEqual([3], c_val)
  def testRank(self):
    tf_val = tf.rank(tf.constant(0.0, shape=[1, 2, 3]))
    c_val = tf.contrib.util.constant_value(tf_val)

    self.assertEqual(np.ndarray, type(c_val))
    self.assertEqual((), c_val.shape)
    self.assertEqual(3, c_val)

    # Repeat test using array_ops.rank_internal to avoid the optimization that
    # happens in the rank function.
    tf_val = array_ops.rank_internal(tf.constant(0.0, shape=[1, 2, 3]),
                                     optimize=False)
    c_val = tf.contrib.util.constant_value(tf_val)

    self.assertEqual(np.ndarray, type(c_val))
    self.assertEqual((), c_val.shape)
    self.assertEqual(3, c_val)
    self.assertEqual([3], c_val)
Example #5
0
def assert_variables_initialized(var_list=None):
    """Returns an Op to check if variables are initialized.

  NOTE: This function is obsolete and will be removed in 6 months.  Please
  change your implementation to use `report_uninitialized_variables()`.

  When run, the returned Op will raise the exception `FailedPreconditionError`
  if any of the variables has not yet been initialized.

  Note: This function is implemented by trying to fetch the values of the
  variables. If one of the variables is not initialized a message may be
  logged by the C++ runtime. This is expected.

  Args:
    var_list: List of `Variable` objects to check. Defaults to the
      value of `global_variables().`

  Returns:
    An Op, or None if there are no variables.
  """
    if var_list is None:
        var_list = global_variables() + local_variables()
    # Backwards compatibility for old-style variables. TODO(touts): remove.
    if not var_list:
        var_list = []
        for op in ops.get_default_graph().get_operations():
            if op.type in ["Variable", "AutoReloadVariable"]:
                var_list.append(op.outputs[0])
    if not var_list:
        return None
    else:
        ranks = []
        for var in var_list:
            with ops.colocate_with(var.op):
                ranks.append(array_ops.rank_internal(var, optimize=False))
        if len(ranks) == 1:
            return ranks[0]
        else:
            return array_ops.pack(ranks)
Example #6
0
def assert_variables_initialized(var_list=None):
    """Returns an Op to check if variables are initialized.

  NOTE: This function is obsolete and will be removed in 6 months.  Please
  change your implementation to use `report_uninitialized_variables()`.

  When run, the returned Op will raise the exception `FailedPreconditionError`
  if any of the variables has not yet been initialized.

  Note: This function is implemented by trying to fetch the values of the
  variables. If one of the variables is not initialized a message may be
  logged by the C++ runtime. This is expected.

  Args:
    var_list: List of `Variable` objects to check. Defaults to the
      value of `all_variables().`

  Returns:
    An Op, or None if there are no variables.
  """
    if var_list is None:
        var_list = all_variables() + local_variables()
    # Backwards compatibility for old-style variables. TODO(touts): remove.
    if not var_list:
        var_list = []
        for op in ops.get_default_graph().get_operations():
            if op.type in ["Variable", "AutoReloadVariable"]:
                var_list.append(op.outputs[0])
    if not var_list:
        return None
    else:
        ranks = []
        for var in var_list:
            with ops.colocate_with(var.op):
                ranks.append(array_ops.rank_internal(var, optimize=False))
        if len(ranks) == 1:
            return ranks[0]
        else:
            return array_ops.pack(ranks)