code: def repeat_op(repetitions, inputs, op, *args, **kwargs):
    
    scope = kwargs.pop('scope', None)
    with tf.variable_scope(scope, 'RepeatOp', [inputs]):
      tower = inputs
      for _ in range(repetitions):
        tower = op(tower, *args, **kwargs)
      return tower
docs: Build a sequential Tower starting from inputs by using an op repeatedly.
  
    It creates new scopes for each operation by increasing the counter.
    Example: given repeat_op(3, _, ops.conv2d, 64, [3, 3], scope='conv1')
      it will repeat the given op under the following variable_scopes:
        conv1/Conv
        conv1/Conv_1
        conv1/Conv_2
  
    Args:
      repetitions: number or repetitions.
      inputs: a tensor of size [batch_size, height, width, channels].
      op: an operation.
      *args: args for the op.
      **kwargs: kwargs for the op.
  
    Returns:
      a tensor result of applying the operation op, num times.
    Raises:
      ValueError: if the op is unknown or wrong.