code: def test_multi_label_dot_product_loss_call_shapes():
      num_neg = 1
      layer = MultiLabelDotProductLoss(num_neg)
      batch_inputs_embed = tf.constant(
          [[[0, 1, 2]], [[-2, 0, 2]]], dtype=tf.float32
      )
      batch_labels_embed = tf.constant(
          [[[0, 0, 1], [1, 0, 0]], [[0, 1, 0], [1, 0, 0]]],
          dtype=tf.float32,
      )
      batch_labels_ids = tf.constant(
          [[[2], [0]], [[1], [0]]], dtype=tf.float32
      )
      all_labels_embed = tf.constant(
          [[1, 0, 0], [0, 1, 0], [0, 0, 1]], dtype=tf.float32
      )
      all_labels_ids = tf.constant([[0], [1], [2]], dtype=tf.float32)
      mask = None
  
      loss, accuracy = layer(
          batch_inputs_embed,
          batch_labels_embed,
          batch_labels_ids,
          all_labels_embed,
          all_labels_ids,
          mask,
      )
  
      assert len(tf.shape(loss)) == 0
      assert len(tf.shape(accuracy)) == 0
  
imports: from typing import Text, List, Tuple, Union, Optional
  import pytest
  from _pytest.monkeypatch import MonkeyPatch
  import numpy
  import tensorflow
  from rasa.utils.tensorflow.layers import DotProductLoss, MultiLabelDotProductLoss, RandomlyConnectedDense, DenseForSparse
  from rasa.utils.tensorflow.constants import INNER, SOFTMAX, LABEL, LABEL_PAD_ID
  import rasa.utils.tensorflow.layers_utils
  from rasa.shared.nlu.constants import TEXT, INTENT, ACTION_NAME, ACTION_TEXT, FEATURE_TYPE_SENTENCE, FEATURE_TYPE_SEQUENCE
  from rasa.core.constants import DIALOGUE
label_desc: Use image node_id 2 for calling a global function with example usage: test_multi_label_dot_product_loss_call_shapes() without return types