code: def test_multi_label_dot_product_loss__loss_sigmoid_is_ln2_when_all_similarities_zero():
      batch_size = 2
      num_candidates = 2
      sim_pos = tf.zeros([batch_size, 1, 1], dtype=tf.float32)
      sim_candidates_il = tf.zeros(
          [batch_size, 1, num_candidates], dtype=tf.float32
      )
      pos_neg_labels = tf.cast(
          tf.random.uniform([batch_size, num_candidates]) < 0.5,
          tf.float32,
      )
  
      layer = MultiLabelDotProductLoss(
          num_candidates, scale_loss=False, similarity_type=INNER
      )
      loss = layer._loss_sigmoid(
          sim_pos, sim_candidates_il, pos_neg_labels
      )
      assert abs(loss.numpy() - np.math.log(2.0)) < 1e-6
  
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 8 for calling a global function with example usage: test_multi_label_dot_product_loss__loss_sigmoid_is_ln2_when_all_similarities_zero() without return types