def METHOD_NAME(features):
    layer1 = core.Dense(1)
    layer1(features)
    layer2 = core.Dense(1)
    layer2(features)
    # We rely on names and orders to make sure replica references the
    # same MirroredVariable. Uniquifying names may involve global
    # states, merge_call switches threads so we need to test things work
    # after merge_call.
    tf.distribute.get_replica_context().merge_call(lambda _: _)
    layer3 = core.Dense(1)
    layer3(features)
    return [
        (layer1.kernel, layer1.bias),
        (layer2.kernel, layer2.bias),
        (layer3.kernel, layer3.bias),
    ]