code: def test_build_train_op(self):
      with context.graph_mode():
          dummy_weight = tf.Variable(0.0, name="dummy_weight")
          dummy_loss = dummy_weight * 2.0
          ensembler = ensemble.ComplexityRegularizedEnsembler(
              optimizer=tf_compat.v1.train.GradientDescentOptimizer(0.1)
          )
          train_op = ensembler.build_train_op(
              self._build_easy_ensemble([self._build_subnetwork()]),
              dummy_loss,
              [dummy_weight],
              labels=None,
              iteration_step=None,
              summary=None,
              previous_ensemble=None,
          )
          config = tf.compat.v1.ConfigProto(
              gpu_options=tf.compat.v1.GPUOptions(allow_growth=True)
          )
          with tf_compat.v1.Session(config=config) as sess:
              sess.run(tf_compat.v1.global_variables_initializer())
              sess.run(train_op)
              self.assertAllClose(-0.2, sess.run(dummy_weight))
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  import contextlib
  from absl.testing import parameterized
  from adanet import ensemble
  from adanet import subnetwork
  from adanet import tf_compat
  from adanet.core.summary import Summary
  import mock
  import tensorflow.compat.v2
  from tensorflow.python.eager import context
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 8 for calling the ComplexityRegularizedEnsemblerTest obj's underlying member method code with example usage: obj.test_build_train_op() without return types