class_docstr: Test that SparseSoftmaxCrossEntropyWithLogits operates reproducibly.
  
  Inheriting from sparse_xent_op_test_base.SparseXentOpTestBase ensures that
  regular op functionality is correct when the deterministic code-path is
  selected.
  
  Note that because nn_ops.sparse_softmax_cross_entropy_with_logits_v2 calls
  nn_ops.sparse_softmax_cross_entropy_with_logits directly, the focus of
  testing is on the former in order to test both.
class_docstr_tok: ["Test","that","SparseSoftmaxCrossEntropyWithLogits","operates","reproducibly",".","Inheriting","from","sparse_xent_op_test_base.SparseXentOpTestBase","ensures","that","regular","op","functionality","is","correct","when","the","deterministic","code-path","is","selected",".","Note","that","because","nn_ops.sparse_softmax_cross_entropy_with_logits_v2","calls","nn_ops.sparse_softmax_cross_entropy_with_logits","directly",",","the","focus","of","testing","is","on","the","former","in","order","to","test","both","."]
docstr: Test exception-throwing for non-statically-shaped, zero-rank labels.
  
  The deterministic implementation cannot check for this case because it does
  not have a specific implementation of SparseSoftmaxXentWithLogitsOp.
  Instead tf.gather, which is used to create the deterministic implementation,
  throws an error.
docstr_tok: ["Test","exception-throwing","for","non-statically-shaped",",","zero-rank","labels",".","The","deterministic","implementation","can","not","check","for","this","case","because","it","does","not","have","a","specific","implementation","of","SparseSoftmaxXentWithLogitsOp",".","Instead","tf.gather",",","which","is","used","to","create","the","deterministic","implementation",",","throws","an","error","."]
code: def testLabelsPlaceholderScalar(self):
      """Test exception-throwing for non-statically-shaped, zero-rank labels.
  
      The deterministic implementation cannot check for this case because it does
      not have a specific implementation of SparseSoftmaxXentWithLogitsOp.
      Instead tf.gather, which is used to create the deterministic implementation,
      throws an error.
      """
      self._testLabelsPlaceholderScalar(
          expected_error_message="Expected batch_dims in the range \[0, 0\], "
          + "but got 1"
      )
  
imports: import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.framework import config
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors_impl
  from tensorflow.python.framework import test_util
  from tensorflow.python.kernel_tests.sparse_ops import sparse_xent_op_test_base
  from tensorflow.python.ops.nn_grad import _SparseSoftmaxCrossEntropyWithLogitsGrad
  from tensorflow.python.ops import gen_nn_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 8 for calling the SparseXentOpDeterministicTest obj's underlying member method code with example usage: obj.testLabelsPlaceholderScalar() without return types