class_docstr: Applies NetVLAD to the input.
  
  This is a fully-differentiable version of "Vector of Locally Aggregated Descriptors" commonly used in image
  retrieval.
  
  See [NetVLAD: CNN architecture for weakly supervised place recognition](https://arxiv.org/abs/1511.07247), and.
  [Towards Learning a Universal Non-Semantic Representation of Speech](https://arxiv.org/abs/2002.12764)
  
  Args:
      num_clusters: The number of clusters to use.
  Input shape:
      3D tensor with shape: `(batch_size, time, feature_dim)`.
  Output shape:
      2D tensor with shape: `(batch_size, feature_dim * num_clusters)`.
code: def compute_output_shape(self, input_shape):
      input_shape = tf.TensorShape(input_shape).as_list()
      return tf.TensorShape(
          [input_shape[0], input_shape[-1] * self.num_clusters]
      )
  
file_path: addons/tensorflow_addons/layers/netvlad.py
imports: import math
  import tensorflow
  from typeguard import typechecked
label_desc: Use image node_id 4 for calling the NetVLAD obj's underlying member method code with example usage: obj.compute_output_shape(input_shape) and returns: tf