class_docstr: An AdaNet weighted subnetwork.
  
  A weighted subnetwork is a weight applied to a subnetwork's last layer
  or logits (depending on the mixture weights type).
  
  Args:
    name: String name of :code:`subnetwork` as defined by its
      :class:`adanet.subnetwork.Builder`.
    iteration_number: Integer iteration when the subnetwork was created.
    weight: The weight :class:`tf.Tensor` or dict of string to weight
      :class:`tf.Tensor` (for multi-head) to apply to this subnetwork. The
      AdaNet paper refers to this weight as :math:`w` in Equations (4), (5),
      and (6).
    logits: The output :class:`tf.Tensor` or dict of string to weight
      :class:`tf.Tensor` (for multi-head) after the matrix multiplication of
      :code:`weight` and the subnetwork's :code:`last_layer`. The output's shape
      is [batch_size, logits_dimension]. It is equivalent to a linear logits
      layer in a neural network.
    subnetwork: The :class:`adanet.subnetwork.Subnetwork` to weight.
  
  Returns:
    An :class:`adanet.ensemble.WeightedSubnetwork` object.
code: def __new__(
      cls,
      name="",
      iteration_number=0,
      weight=None,
      logits=None,
      subnetwork=None,
  ):
      return super(WeightedSubnetwork, cls).__new__(
          cls,
          name=name,
          iteration_number=iteration_number,
          weight=weight,
          logits=logits,
          subnetwork=subnetwork,
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  from absl import logging
  from adanet import tf_compat
  from adanet.ensemble.ensembler import Ensemble
  from adanet.ensemble.ensembler import Ensembler
  import tensorflow.compat.v2
label_desc: Use image node_id 1 for calling the WeightedSubnetwork obj's underlying member method code with example usage: obj.__new__(cls, name, iteration_number, weight, logits, subnetwork) and returns: super